【问题标题】:Django Sending Modelform as an emailDjango 将 Modelform 作为电子邮件发送
【发布时间】:2020-05-08 20:08:44
【问题描述】:

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

这是我的 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 然后作为电子邮件附加会更好吗?我看了这个,也有那个部分的问题。

【问题讨论】:

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


    【解决方案1】:

    我猜这个错误是在send_mail 引起的,因为

     message = form.cleaned_data
    

    因为这是一个 dict,而来自 django 的 send_mail 期望该消息是一个 string

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

    也许this 有助于制作漂亮的电子邮件。 (documentation)

    【讨论】:

      猜你喜欢
      • 2011-10-18
      • 1970-01-01
      • 2013-02-18
      • 2023-03-23
      • 1970-01-01
      • 2019-07-10
      • 2014-10-26
      • 2012-05-20
      • 1970-01-01
      相关资源
      最近更新 更多