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

Что такое сигнал в Django

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

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

  • Встроенные сигналы: pre_save, post_save, pre_delete, post_delete и др.
  • Пользовательские сигналы: можно создавать свои сигналы через django.dispatch.Signal.

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

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}")

Особенности:

  • Сигналы работают асинхронно
  • Позволяют избегать циклических импортов
  • Могут замедлять работу при злоупотреблении

Лучшие практики:

  • Выносить обработчики в отдельный модуль signals.py
  • Подключать через ready() метод в apps.py
  • Избегать сложной логики в обработчиках
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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