Django How to save image on my custom path when triggering signals
When I trigger this signal, the image is copied from my ImageModel and uploaded to my OrderItem model in the order_image_file field. The product image is being saved to its original ImageModel destination even though I have defined a custom path in my OrderItem model.
def orderImage_upload_path(instance, filename):
return f'order_image/{generate_sku()}_{filename}'
class OrderItem(models.Model):
product_image = models.ForeignKey(ProductImage, on_delete=models.SET_NULL,blank=True,null=True)
order_image_file = models.ImageField(blank=True,null=True,upload_to=orderImage_upload_path)
my signals
@receiver(post_save, sender=OrderItem)
def OrderItem_Signals(sender,created ,instance, **kwargs):
if created:
if not instance.order_image_file and instance.product_image:
instance.order_image_file = instance.product_image.image
instance.save()
Image in signal
instance.product_image.image already has a path. So you need to override it.
instance.order_image_file = instance.product_image.image
instance.order_image_file.path = f'order_image/{generate_sku()}_{instance.product_image.image.name}'