3

I'm trying to switch to django-polymorphic models in my ecommerce project, but found problem with pre-save signals.

When creating new product via Admin I need to fill 'Slug' field of my object with unique value. In non polymorphic version it was implemented by pre save signal from all subclasses of Parent 'Product' model:

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

Now models hierarchy looks following (simplified):

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

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

Receiver:

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

What is the sender class when creating Polymorphic Child Model instance? Or is any pre_save signal even triggered in django-polymorphic?

I don't receive any signals even when using pre_save.connect without defined sender class.

pre_save.connect(product_pre_save_receiver)

Thanks!

0 Answers0