Study
Django

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).

Editor Latihan

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.