Django-多态预保存信号

时间:2018-03-03 16:22:20

标签: django signals django-polymorphic

我试图在我的电子商务项目中切换到django-polymorphic模型,但发现预保存信号存在问题。

通过管理员创建新产品时,我需要填写' Slug'我的对象的字段具有独特的价值。在非多态版本中,它是通过来自Parent' Product'的所有子类的预保存信号实现的。模型:

for subclass in Product.__subclasses__():
    print(subclass)
    pre_save.connect(product_pre_save_receiver, sender=subclass)

现在模型层次结构看起来如下(简化):

class Product(PolymorphicModel):
    title           = models.CharField(max_length=120)

class Camera(Product):
    serial_number   = models.TextField(max_length=20, blank=True, null=True)

接收器:

def product_pre_save_receiver(sender, instance, *args, **kwargs):
if not instance.slug:
    instance.slug = unique_slug_generator(instance)

创建Polymorphic Child Model实例时,sender类是什么? 或者甚至是在django-polymorphic中触发任何pre_save信号?

即使在没有定义发件人类的情况下使用pre_save.connect,我也不会收到任何信号。

pre_save.connect(product_pre_save_receiver)

谢谢!

0 个答案:

没有答案