Back to questions
Junior — Middle
62
Какие типы сигналов используются в Django и для чего они применяются?
Companies where asked
Оптимакрос
Answer from AI
sobes.tech AI
В Django сигналы — это механизм, позволяющий компонентам приложения реагировать на определённые события, не создавая жёстких связей между ними. Сигналы используются для уведомления о событиях, таких как создание, обновление или удаление объектов, начало или завершение запроса и др.
Основные типы сигналов в Django:
pre_saveиpost_save: вызываются до и после сохранения объекта модели.pre_deleteиpost_delete: вызываются до и после удаления объекта.m2m_changed: вызывается при изменении связей многие-ко-многим.request_startedиrequest_finished: сигнализируют о начале и завершении HTTP-запроса.
Применение сигналов позволяет, например, автоматически создавать связанные объекты, логировать изменения, очищать кэш и выполнять другие действия при наступлении событий.
Пример использования сигнала post_save:
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}')