Django通过电子邮件发送Modelform

时间:2020-05-08 20:08:44

标签: python django python-3.x django-forms django-email

我创建了一个网站,我的技术人员使用模型表格提交了库存。一切都按预期工作,但我想添加功能,当他们提交清单时以电子邮件形式发送整个表格。这将使我的库存团队无需登录并检查网站即可验证计数。

这是我的view.py,我知道如果删除电子邮件位并将其保存到模型中,它将起作用。当前返回错误: 'dict'对象没有属性'splitlines'

    form = Inventory_Form()
    if request.method == 'POST':
        form = Inventory_Form(request.POST)
        tech_field = form.save(commit=False)
        tech_field.technician = request.user
        tech_field.save()
        if form.is_valid():
            form.save()
            name = form.cleaned_data['initials_date']
            from_email = 'operations@imbadatthis.com'
            subject = 'Weekly Inventory', form.cleaned_data['initials_date']
            message = form.cleaned_data
            try:
                send_mail(subject, message, from_email, ['myemail@n00b.com'], name)
            except BadHeaderError:
                return HttpResponse('Invalid header found.')

            return response, redirect('inventory_submitted')

    return render(request, 'inventory.html', {'form': form})

将表单保存到csv,然后将其作为电子邮件附加会更好吗?我看着这个,在那部分也有问题。

1 个答案:

答案 0 :(得分:1)

我猜是由于{p>

send_mail

因为这是 message = form.cleaned_data ,而来自django的dict希望邮件是send_mail

您必须将字典转换为字符串。

也许this有助于使电子邮件看起来更漂亮。 (documentation