97👍
✅
Have a look at docs: https://docs.djangoproject.com/en/stable/ref/signals/#post-save
There is a created
named argument which will be set to True
if it’s a new object.
30👍
As Docs stated and @seler pointed out, but with an example:
def keep_track_save(sender, instance, created, **kwargs):
action = 'save' if created else 'update'
save_duplicate((instance.id, instance.__class__.__name__, action))
post_save.connect(keep_track_save, sender=Group)
- [Django]-Django: Get model from string?
- [Django]-NumPy array is not JSON serializable
- [Django]-Explicitly set MySQL table storage engine using South and Django
11👍
I just leave it here, maybe it’ll be helpful for someone.
from django.db import models
from django.db.models.signals import post_save
from django.dispatch import receiver
class Deal(models.Model):
name = models.CharField(max_length=255)
@receiver(post_save, sender=Deal)
def print_only_after_deal_created(sender, instance, created, **kwargs):
if created:
print(f'New deal with pk: {instance.pk} was created.')
- [Django]-Django change default runserver port
- [Django]-Django: how save bytes object to models.FileField?
- [Django]-Django-Bower + Foundation 5 + SASS, How to configure?
Source:stackexchange.com