通过models.py进行Django表单验证

时间:2018-10-10 19:25:51

标签: python django

我正在尝试在特定模型中创建对象后,管理员点击“保存”按钮后发送自动电子邮件。

一种实现方法是验证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)

也许可以用其他方法做到这一点。 预先感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用Django signals,根据需要可以使用post_save

当表单有效且模型成功保存后,post_save事件将立即触发并运行您连接到它的功能。

这是执行此类任务的非常有用的方法。建议教程-https://simpleisbetterthancomplex.com/tutorial/2016/07/28/how-to-create-django-signals.html

仍然对此有任何疑问。