Sobes.tech
Back to questions
Junior — Middle
61

Какова роль и использование сигналов в фреймворке Django?

Answer from AI

sobes.tech AI

В Django сигналы используются для реализации паттерна наблюдателя, позволяя компонентам приложения реагировать на определённые события без тесной связи между ними.

Например, когда создаётся новый пользователь, сигнал post_save может автоматически запускать функцию, которая отправляет приветственное письмо.

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

from django.db.models.signals import post_save
from django.dispatch import receiver
from django.contrib.auth.models import User

@receiver(post_save, sender=User)
def send_welcome_email(sender, instance, created, **kwargs):
    if created:
        # логика отправки письма
        print(f"Отправляем письмо пользователю {instance.email}")

Таким образом, сигналы помогают отделить логику реакции на события от основной бизнес-логики, улучшая модульность и расширяемость приложения.