# Signal trong Django (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 - [Câu hỏi phỏng vấn: Django](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van.md) ## 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. ## Còn 15 câu hỏi nữa - Đố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? - Nên đặt code receiver của signal ở đâu trong một ứng dụng Django? Đăng ký miễn phí: https://sharpskill.dev/vi/login ## Các chủ đề phỏng vấn Django khác - [Kiến thức cơ bản về Python](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/python-basics.md): 25 câu hỏi, Junior - [Python hướng đối tượng](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/python-oop.md): 20 câu hỏi, Junior - [Kiến thức cơ bản về Django](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/django-fundamentals.md): 20 câu hỏi, Junior - [Models Django - Cơ bản](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/django-models-basics.md): 22 câu hỏi, Junior - [Django Views](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/django-views.md): 20 câu hỏi, Junior - [Template Django](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/django-templates.md): 18 câu hỏi, Junior - [Django Forms](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/django-forms.md): 22 câu hỏi, Mid-Level - [QuerySets nâng cao](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/django-querysets.md): 25 câu hỏi, Mid-Level - [Xác thực Django](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/django-authentication.md): 22 câu hỏi, Mid-Level - [Middleware Django](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/django-middleware.md): 18 câu hỏi, Mid-Level - [Django Admin](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/django-admin.md): 20 câu hỏi, Mid-Level - [Django REST Framework](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/django-rest-framework.md): 30 câu hỏi, Mid-Level - [Tải tệp lên](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/django-file-upload.md): 20 câu hỏi, Mid-Level - [Caching trong Django](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/django-caching.md): 20 câu hỏi, Mid-Level - [Session Django](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/django-sessions.md): 18 câu hỏi, Mid-Level - [Email trong Django](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/django-email.md): 18 câu hỏi, Mid-Level - [Kiểm thử Django](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/django-testing.md): 22 câu hỏi, Mid-Level - [Bảo mật Django](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/django-security.md): 22 câu hỏi, Mid-Level - [Triển khai Django](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/django-deployment.md): 24 câu hỏi, Mid-Level - [Django ORM nâng cao](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/django-orm-advanced.md): 28 câu hỏi, Senior - [Hiệu năng Django](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/django-performance.md): 24 câu hỏi, Senior - [Django & Celery](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/django-celery.md): 22 câu hỏi, Senior - [Django Channels](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/django-channels.md): 24 câu hỏi, Senior - [Django & GraphQL](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/django-graphql.md): 24 câu hỏi, Senior - [Django & Docker](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/django-docker.md): 20 câu hỏi, Senior - [Django trong hệ sinh thái Microservices](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/django-microservices.md): 24 câu hỏi, Senior - [Lệnh Django tùy chỉnh](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/django-custom-commands.md): 18 câu hỏi, Senior - [Quốc tế hóa trong Django](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/django-internationalization.md): 20 câu hỏi, Senior - [Design Patterns trong Django](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/django-design-patterns.md): 24 câu hỏi, Senior - [Django Async & ASGI](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/django-async-asgi.md): 26 câu hỏi, Senior - [Settings & Cấu hình Production](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/django-settings-configuration.md): 22 câu hỏi, Senior - [Observability & Monitoring](https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/django-observability.md): 24 câu hỏi, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/vi/technologies/django/cau-hoi-phong-van/django-signals