Django сигналы / система уведомлений
Является ли хорошим подходом использование сигналов Django для реализации системы уведомлений по электронной почте? У меня есть CustomUser
модель, связанная с CustomUserPreferences
, которая планируется следующим образом:
class CustomUserPreferences(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL, default=None, on_delete = models.CASCADE, primary_key = True)
lesson_notification = models.BooleanField(default=True)
journal_notification = models.BooleanField(default=False)
login_notification = models.BooleanField(default=False)
excercise_notification = models.BooleanField(default=False)
homework_notification = models.BooleanField(default=True)
class CustomUser(AbstractUser):
...
email = models.EmailField(_('email address'), unique=True)
preferences = models.OneToOneField(CustomUserPreferences, null = True ,default=None, on_delete = models.CASCADE)
students = models.ManyToManyField(to = 'self', related_name = 'teachers', symmetrical = False, blank = True)
Когда создается новый объект, скажем Lesson
, я хочу отправить пользователю электронное письмо, и это нормально - потому что это не перегрузит ни один сервер.
Вопрос в том, окупится ли использование сигналов для списка пользователей, который содержит, скажем, 100 или 1000 пользователей? Я боюсь, что это замедлит работу всего приложения.
Есть ли другой "ясный и элегантный" способ сделать это? Django docs советует не использовать сигналы, когда это возможно.