Djangoには次のモデルがあります。Animal
抽象基本クラスを作成しない理由があります。
class Animal(models.Model):
sound = "none"
def ClassType(self):
return 'animal'
class Cat(Animal):
animal_id = models.OneToOneField(Animal,parent_link=True)
sound = "meow"
def ClassType(self):
return 'cat'
class Dog(Animal):
animal_id = models.OneToOneField(Animal,parent_link=True)
sound = "bow"
def ClassType(self):
return 'dog'
動物のセットを次のようにクエリします
query = Animal.objects.all()
結果は必然的に Dogs と Cats のみのリストになります。ただし、電話をかけると
query[0].ClassType
私は得るだけですanimal
。「クエリ」内のすべてのオブジェクトは、インスタンスを取得したり依存したりanimal
したいときに私に与えてくれます。Python ポリモーフィックの世界で理解できないことと、それを修正するにはどうすればよいですか?dog
cat