我试图在我的电子商务项目中切换到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)
谢谢!