基本クラスのクエリから返された後、Django データベース オブジェクトの「実際の」クラスを特定する方法はありますか?
たとえば、これらのモデルがある場合...
class Animal(models.Model):
name= models.CharField(max_length=128)
class Person(Animal):
pants_size = models.IntegerField(null=True)
class Dog(Animal):
panting_rate = models.IntegerField(null=True)
そして、これらのインスタンスを作成します...
Person(name='Dave').save()
Dog(name='Mr. Rufflesworth').save()
のようなクエリを実行すると、 のインスタンスと のインスタンスではなく、Animal.objects.all()
2 つのインスタンスになります。どのインスタンスがどのタイプであるかを判断する方法はありますか?Animal
Person
Dog
参考:私はすでにこれをやろうとしました...
isinstance(Animal.objects.get(name='Dave'),Person) # <-- Returns false!
しかし、それはうまくいかないようです。