docs: def get_parent_object(self, parent_queryset=None):
          """
          Returns the parent object the view is displaying.
          You may want to override this if you need to provide non-standard
          queryset lookups.  Eg if parent objects are referenced using multiple
          keyword arguments in the url conf.
          """
          if self._parent_object_cache is not None:
              return self._parent_object_cache
  
          if parent_queryset is None:
              parent_queryset = self.get_parent_queryset()
  
          if self.parent_model is None:
              raise ImproperlyConfigured(
                  "'%s' must define 'parent_model'" % self.__class__.__name__
              )
  
          if self.parent_lookup_field is None:
              raise ImproperlyConfigured(
                  "'%s' must define 'parent_lookup_field'" % self.__class__.__name__  # noqa
              )
  
          lookup_url_kwarg = '_'.join([
              self.parent_model_name or self.parent_model._meta.model_name,
              self.parent_lookup_field
          ])
  
          lookup = self.kwargs.get(lookup_url_kwarg, None)
  
          if lookup is not None:
              filter_kwargs = {self.parent_lookup_field: lookup}
  
          else:
              raise ImproperlyConfigured(
                  'Expected view %s to be called with a URL keyword argument '
                  'named "%s". Fix your URL conf, or set the '
                  '`parent_lookup_field` attribute on the view correctly.' %
                  (self.__class__.__name__, lookup_url_kwarg)
              )
  
          obj = get_object_or_404(parent_queryset, **filter_kwargs)
  
          self.check_parent_object_permissions(self.request, obj)
          self._parent_object_cache = obj
  
          return obj