Signal là cách Django hiện thực observer pattern — chúng cho phép một số sender thông báo cho một tập các receiver khi các sự kiện cụ thể xảy ra (như một model được lưu hoặc xóa). Chúng cho phép mã tách rời (decoupled): một phần của app phản ứng với sự kiện ở phần khác mà không có sự gắn kết trực tiếp.
Các signal tích hợp phổ biến
pre_save / post_save → trước / sau khi một instance của model được lưu
pre_delete / post_delete → trước / sau khi một instance của model bị xóa
m2m_changed → một quan hệ ManyToMany thay đổi
request_started / finished→ vòng đời request
user_logged_in / out → sự kiện xác thực
