code: def get_result_class(cls):
      
      base_class = cls._meta.get_field('path').model
      if cls._meta.proxy_for_model == base_class:
          return cls
      else:
          return base_class
docs: For the given model class, determine what class we should use for the
      nodes returned by its tree methods (such as get_children).
  
      Usually this will be trivially the same as the initial model class,
      but there are special cases when model inheritance is in use:
  
      * If the model extends another via multi-table inheritance, we need to
        use whichever ancestor originally implemented the tree behaviour (i.e.
        the one which defines the 'path' field). We can't use the
        subclass, because it's not guaranteed that the other nodes reachable
        from the current one will be instances of the same subclass.
  
      * If the model is a proxy model, the returned nodes should also use
        the proxy class.