私のモデルは次のように構成されています。
class Animal(models.Model):
  first_name = models.CharField(max_length=128, unique=True)
class Cat(Animal):
  def make_sound(self):
    return "mreooooow"
class Dog(Animal):
  def make_sound(self):
    return "AARF!"
class EvilMonkey(Animal):
  def make_sound(self):
    return "muahahaha ..."
ご覧のとおり、さまざまな動物は「動物」と呼ばれるクラスから継承しています。各サブクラスにはメソッドもありmake_soundます。
しかし、私の見解ではmake_sound、一般的な動物を呼び出すと、Djangoは、Animalオブジェクトには、というメソッドがないと不平を言いますmake_sound。これは、のサブクラスのオブジェクトのみがメソッドを持っているため、理にかなっていますAnimal。
Animalのサブクラスのすべてのオブジェクトがメソッドを持っていることを保証できることをどういうわけかDjangoに伝えることができますmake_soundか?Javaインターフェイスのようなものを介して?Djangoのドキュメントに「フィールド名の「非表示」は許可されていません」と記載されていることは知っていますが、メソッドのオーバーライドは継承にとって非常に基本的であるため、Djangoはそれをサポートする必要があると思います。
my_animal.cat.make_sound()動物のオブジェクトを一般的に扱いたいので、具体的に言う必要はありません。