Django форма для добавления электронных писем, связанных с моделями
Это немного трудно объяснить, но я постараюсь сделать все возможное.
Я разрабатываю сайт, где мне нужна функция, где администраторы могут добавить уведомление по электронной почте, связанное с определенной моделью. Админ должен иметь возможность
- Choose a model on the website,
- What event it should trigger on (
create,updateordelete), - 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.