Встречается на собеседованиях • сегодня

Как работают сигналы в Django

Сигналы в Django — это механизм для отправки и получения уведомлений при определенных событиях в приложении. Они реализуют паттерн "наблюдатель", позволяя разным частям кода реагировать на изменения, не будучи жестко связанными.

Основные компоненты:

  • Отправитель (sender) — модель или другой объект, генерирующий сигнал
  • Сигнал — сам объект сигнала (например, post_save)
  • Получатель (receiver) — функция, которая обрабатывает сигнал

Пример использования:

python
from django.db.models.signals import post_save
from django.dispatch import receiver
from myapp.models import MyModel

@receiver(post_save, sender=MyModel)
def my_handler(sender, instance, created, **kwargs):
    if created:
        print(f"Создан новый объект {instance}")

Основные встроенные сигналы:

  • pre_save/post_save — до/после сохранения модели
  • pre_delete/post_delete — до/после удаления
  • m2m_changed — при изменении ManyToMany поля

Сигналы помогают сохранять слабую связность кода, но могут усложнить отладку. Рекомендуется документировать их использование.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы