docs: def current_site_id():
      """
      Responsible for determining the current ``Site`` instance to use
      when retrieving data for any ``SiteRelated`` models. If we're inside an
      override_current_site_id context manager, return the overriding site ID.
      Otherwise, try to determine the site using the following methods in order:
  
        - ``site_id`` in session. Used in the admin so that admin users
          can switch sites and stay on the same domain for the admin.
        - The id of the Site object corresponding to the hostname in the current
          request. This result is cached.
        - ``YACMS_SITE_ID`` environment variable, so management
          commands or anything else outside of a request can specify a
          site.
        - ``SITE_ID`` setting.
  
      If a current request exists and the current site is not overridden, the
      site ID is stored on the request object to speed up subsequent calls.
      """
  
      if hasattr(override_current_site_id.thread_local, "site_id"):
          return override_current_site_id.thread_local.site_id
  
      from yacms.utils.cache import cache_installed, cache_get, cache_set
      request = current_request()
      site_id = getattr(request, "site_id", None)
      if request and not site_id:
          site_id = request.session.get("site_id", None)
          if not site_id:
              domain = request.get_host().lower()
              if cache_installed():
                  # Don't use yacms's cache_key_prefix here, since it
                  # uses this very function we're in right now to create a
                  # per-site cache key.
                  bits = (settings.CACHE_MIDDLEWARE_KEY_PREFIX, domain)
                  cache_key = "%s.site_id.%s" % bits
                  site_id = cache_get(cache_key)
              if not site_id:
                  try:
                      site = Site.objects.get(domain__iexact=domain)
                  except Site.DoesNotExist:
                      pass
                  else:
                      site_id = site.id
                      if cache_installed():
                          cache_set(cache_key, site_id)
      if not site_id:
          site_id = os.environ.get("YACMS_SITE_ID", settings.SITE_ID)
      if request and site_id and not getattr(settings, "TESTING", False):
          request.site_id = site_id
      return site_id