在从对基类的查询中返回后,有没有办法确定 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()
,我最终会得到两个Animal
实例,而不是 的实例Person
和 的实例Dog
。有什么方法可以确定哪个实例属于哪种类型?
仅供参考:我已经尝试过这样做......
isinstance(Animal.objects.get(name='Dave'),Person) # <-- Returns false!
但这似乎不起作用。