title: Django - Override Default Manager in Admin - InheritanceManager
body: <p>(This seems to be a common question based on the "Questions that may already have your answer" list, but none of those has helped me.)</p>
  
  <p>I have a several models with multi-table inheritance.</p>
  
  <p>In admin (and later, in the front-end app), I need to have a list of all things in the base class, and also be able to identify which child (or grandchild) class they belong to.</p>
  
  <p>I am trying to use <a href="https://django-model-utils.readthedocs.org/en/latest/managers.html#inheritancemanager" rel="nofollow">Inheritance Manager</a> for this. No luck so far.</p>
  
  <pre><code>class Entry(models.Model):
      name = models.CharField(max_length=200)
      description = models.TextField(max_length=500)
      uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
      slug = models.SlugField(unique=True)
      objects = InheritanceManager()
  
      def get_queryset(self, request):
          qs = self.model.objects.get_queryset()
          ordering = self.get_ordering(request)
          if ordering:
              qs = qs.order_by(*ordering)
          return qs
  
      def __str__ (self):
          return self.name + " entry"
  
  
  class Person(Entity):
      first_name = models.CharField(max_length=100)
      last_name = models.CharField(max_length=100)
  
      def __str__ (self):
          return self.name + " Person"
  </code></pre>
  
  <p>Adding the string "person" and "Entry" is just a test.</p>
  
  <p>Lists of Entities just show <code>Entry</code>, even if  is also(actually) a person.</p>
  
  <p>I would like to be able to write into <code>Entry.__str__</code> something that would show the final subclass. That way I could get a list of entries and see:</p>
  
  <pre><code>Bob (Person)
  ABC Co. (Organization)
  Great Expectations (Book)
  </code></pre>