Untuk solusi yang juga berfungsi bahkan ketika Anda memiliki UUIDField
sebagai kunci utama (yang seperti yang dicatat orang lain tidak None
jika Anda hanya menimpanya save
), Anda dapat mencolokkan sinyal post_save Django . Tambahkan ini ke models.py Anda :
from django.db.models.signals import post_save
from django.dispatch import receiver
@receiver(post_save, sender=MyModel)
def mymodel_saved(sender, instance, created, **kwargs):
if created:
# do extra work on your instance, e.g.
# instance.generate_avatar()
# instance.send_email_notification()
pass
Callback ini akan memblokir save
metode ini, sehingga Anda dapat melakukan hal-hal seperti memicu notifikasi atau memperbarui model lebih lanjut sebelum respons Anda dikirim kembali melalui kabel, apakah Anda menggunakan formulir atau kerangka Django REST untuk panggilan AJAX. Tentu saja, gunakan secara bertanggung jawab dan bongkar tugas berat ke antrian pekerjaan alih-alih membuat pengguna Anda menunggu :)
UUIDField pk