Signals
Penjelasan
Signals memungkinkan kode tertentu berjalan otomatis saat event tertentu terjadi, tanpa memodifikasi kode model itu sendiri — mis. post_save untuk mengirim notifikasi setelah data baru dibuat, atau pre_delete untuk validasi sebelum data dihapus.
Contoh Konsep
from django.db.models.signals import post_save
from django.dispatch import receiver
@receiver(post_save, sender=Catatan)
def catatan_dibuat(sender, instance, created, **kwargs):
if created:
print(f'Catatan baru: {instance.judul}')
Praktikum
Buat signal receiver post_save untuk model Catatan yang mencetak pesan hanya saat instance baru dibuat (created=True).
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Signal gampang membuat alur kode sulit dilacak (side effect tersembunyi) kalau dipakai berlebihan — gunakan hanya untuk hal yang benar-benar lintas-app, kalau masih dalam satu app pertimbangkan override method save() saja.