我有两个类作为抽象类的子类(下面的示例)。如何检查queryset模型是否为这些类之一?
class Parent(models.Model)
field_a = models.CharField(primary_key = True, max_length = 24)
field_b = models.CharField(primary_key = True, max_length = 24)
class Meta:
abstract = True
class A(Parent)
pass
class B(Parent)
pass
我已经厌倦了像这样的事情,但是它不起作用:
if type(queryset.model) == type(A):
do something...
elif type(queryset.model) == type(B):
do something else...
因为当我检查类型(queryset.model)时,它返回类型(Parent),甚至queryset.model都是A或B类。
您需要使用issubclass()
if issubclass(A, Parent):
do something...
elif issubclass(B, Parent):
do something else...