我想在下面的代码中使用sender.__class__
获取发送者的类。在我有一个从基类继承的模型之前,这是有效的
例如,sender是class Profile,但是sender.__class__
给出了从MPTTModelBase继承的基本bass Profile(即abstract = True
)。与.Meta
等相同
@receiver(post_save)
def send_func(sender, instance, created, **kwargs):
print(sender) #<class 'demo.apps.t.models.Profile'>
print(sender.__class__) # <class 'mptt.models.MPTTModelBase'>
如何让类忽略继承的模型(如果它有继承模型的话)
对于大多数django信号,信号的发送者是类本身。这里,
sender
作为类,实际对象是instance
所以你会得到:
sender.__class__
:模型的metaclass李>sender._meta
:model's Meta选项。在这里得到它是因为Django从模型中删除了Meta
,并将选项作为_meta
提供,它通过一些方法对其进行了扩充李>相关问题 更多 >
编程相关推荐