我正在尝试在特定模型中创建对象后,管理员点击“保存”按钮后发送自动电子邮件。
一种实现方法是验证models.py文件中的表单。问题是我该怎么办?我已经在views.py中尝试过,如下所示:
def admin_email_sender(request):
if request.method == 'POST':
form = FaturaForm(request.POST)
if form.is_valid():
subject = 'Notificação de fatura'
from_email = settings.DEFAULT_FROM_EMAIL
to_email = [str(form.cleaned_data['cliente'].email)]
signup_message = 'Olá, ' + str(form.cleaned_data['cliente']) + '\n' + \
'Você possui uma fatura para pagar até o dia ' + \
str(form.cleaned_data['dia']) + ' de ' + str(form.cleaned_data['mes']) + ' de ' + str(form.cleaned_data['ano'])
send_mail(subject,
signup_message,
from_email,
to_email,
fail_silently=False)
也许可以用其他方法做到这一点。 预先感谢。
答案 0 :(得分:0)
您可以使用Django signals,根据需要可以使用post_save。
当表单有效且模型成功保存后,post_save
事件将立即触发并运行您连接到它的功能。
这是执行此类任务的非常有用的方法。建议教程-https://simpleisbetterthancomplex.com/tutorial/2016/07/28/how-to-create-django-signals.html
仍然对此有任何疑问。