Django

Signal trong Django

Signal tích hợp, pre_save, post_save, pre_delete, signal tùy chỉnh, receiver, các best practice về signal

18 câu hỏi phỏng vấn·
Mid-Level
1

Signal trong Django là gì?

Câu trả lời

Signal là một cơ chế cho phép một số phần của ứng dụng được thông báo khi các hành động cụ thể xảy ra ở nơi khác trong framework. Signal giúp tách biệt (decoupling) giữa nơi phát ra sự kiện và các receiver phản ứng với sự kiện đó. Django cung cấp nhiều signal tích hợp như pre_save, post_save, pre_delete và post_delete cho các thao tác trên model.

2

Signal nào được phát ra ngay trước khi một đối tượng được lưu vào cơ sở dữ liệu?

Câu trả lời

Signal pre_save được phát ra trước khi phương thức save() của một model được thực thi. Nó cho phép thực hiện các thay đổi trên instance trước khi lưu, chẳng hạn như tính toán giá trị dẫn xuất hoặc chuẩn hóa dữ liệu. Signal này hữu ích vì nó được gọi dù đối tượng đang được tạo mới hay cập nhật.

3

Nên dùng decorator nào để kết nối một hàm receiver với một signal của Django?

Câu trả lời

Decorator @receiver từ django.dispatch cho phép kết nối một hàm với một signal theo cách khai báo. Nó nhận signal cần lắng nghe làm tham số và tùy chọn nhận sender để lọc các nguồn phát. Cách tiếp cận này dễ đọc hơn phương thức connect() và giúp bảo trì code dễ dàng hơn.

4

Đối số nào của signal post_save cho phép phân biệt giữa việc tạo mới và cập nhật?

5

Nên đặt code receiver của signal ở đâu trong một ứng dụng Django?

+15 câu hỏi phỏng vấn

Nắm vững Django cho lần phỏng vấn tiếp theo

Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.

Bắt đầu miễn phí