docs: def get_complete_slug(self, language=None, hideroot=True):
          """Return the complete slug of this page by concatenating
          all parent's slugs.
  
          :param language: the wanted slug language."""
          if not language:
              language = settings.PAGE_DEFAULT_LANGUAGE
  
          if self._complete_slug and language in self._complete_slug:
              return self._complete_slug[language]
  
          self._complete_slug = cache.get(self.PAGE_URL_KEY % (self.pk))
          if self._complete_slug is None:
              self._complete_slug = {}
          elif language in self._complete_slug:
              return self._complete_slug[language]
  
          if hideroot and settings.PAGE_HIDE_ROOT_SLUG and self.is_first_root():
              url = ''
          else:
              url = '%s' % self.slug(language)
  
          key = self.ANCESTORS_KEY % self.pk
          ancestors = cache.get(key, None)
          if ancestors is None:
              ancestors = self.get_ancestors(ascending=True)
              cache.set(key, ancestors)
  
          for ancestor in ancestors:
              url = ancestor.slug(language) + '/' + url
  
          self._complete_slug[language] = url
          cache.set(self.PAGE_URL_KEY % (self.pk), self._complete_slug)
          return url