比较Django中抽象模型的Django子类

问题描述 投票:0回答:1

我有两个类作为抽象类的子类(下面的示例)。如何检查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类。

django python-3.x django-models django-orm
1个回答
0
投票

您需要使用issubclass()

if issubclass(A, Parent):
    do something...
elif issubclass(B, Parent):
    do something else...
© www.soinside.com 2019 - 2024. All rights reserved.