相关疑难解决方法(0)

如何确定Django模型中的类实例是否是另一个模型的子类?

我有一个名为BankAccount基类的类.我也有CheckingAccountSavingsAccount继承的类BankAccount.

BankAccount不是一个抽象类,但我不是从它创建一个对象,只是继承类.

然后,我执行这样的查询:

account = BankAccount.objects.get(id=10)
Run Code Online (Sandbox Code Playgroud)

我怎么知道,如果帐户CheckingAccountSavingsAccount

我现在这样做的方式是这样的:

checking_account = CheckingAccount.objects.get(id=account.id)
Run Code Online (Sandbox Code Playgroud)

如果存在,则为a CheckingAccount,否则为a SavingsAccount.

python django inheritance subclass django-models

11
推荐指数
2
解决办法
1万
查看次数

在基类查询后确定Django模型实例类型

有没有办法确定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)
Run Code Online (Sandbox Code Playgroud)

并创建这些实例......

Person(name='Dave').save()
Dog(name='Mr. Rufflesworth').save()
Run Code Online (Sandbox Code Playgroud)

如果我进行类似的查询Animal.objects.all(),我最终得到两个Animal实例,而不是实例Person和实例Dog.有没有办法确定哪个实例属于哪种类型?


仅供参考:我已经尝试过这样做了......

isinstance(Animal.objects.get(name='Dave'),Person) # <-- Returns false!
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用.

django inheritance django-models django-inheritance

11
推荐指数
3
解决办法
9506
查看次数