На каком архитектурном паттерне строятся сигналы модели в Django
Python
Senior
Без компании
На каком архитектурном паттерне строятся сигналы модели в Django
Ответы
Сигналы в Django построены на паттерне **Наблюдатель (Observer)**. Они позволяют объектам подписываться на события и реагировать на них, когда эти события происходят.
Пример:
```
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}")
```
Ключевые моменты:
- Отправитель (sender) инициирует событие
- Получатели (receivers) подписываются через декоратор @receiver
- Сигналы обеспечивают слабую связность между компонентами
Django предоставляет встроенные сигналы для моделей (pre_save, post_save и др.), запросов и других событий.