Django форма для добавления электронных писем, связанных с моделями

Это немного трудно объяснить, но я постараюсь сделать все возможное.

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

  1. Choose a model on the website,
  2. What event it should trigger on (create, update or delete),
  3. The email body and text.

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

Я пытаюсь реализовать новую модель, содержащую некоторые ссылки на модели, используя post_save() для отправки электронных писем, но это оказывается сложнее, чем я думал. Я искал далеко и широко, чтобы найти какой-нибудь аддон, который делает это, но не нашел.

У кого-нибудь есть советы по конкретным функциям, которые могут помочь в этом, или если есть хороший аддон, с которого я могу начать?

Создать новую модель (например, с названием "SendEmail"), которая будет содержать отношения и данные электронных писем - хорошая идея. Возможно, вы сможете переопределить методы save и delete на других моделях. В ваших представлениях, прежде чем сохранить или удалить объект, проверьте в вашей новой модели "SendEmail", нужно ли отправить письмо и передайте этот объект в метод сохранения/удаления.

По вашему мнению, после проверки, если вы должны отправить электронное письмо:

foo.save(sendemail=sendemail) #where sendemail is a SendEmail object.

если нет:

foo.save()

В ваших существующих моделях:

Class Foo(models.Model):
   ----
   ----
   def save(self, *args, **kwargs, sendemail=None):
       if sendemail:
           **the code to send the email**
       super().save(*args, **kwargs)  # Call the "real" save() method.
Вернуться на верх