【发布时间】:2019-06-06 20:03:44
【问题描述】:
我无法获取收件人的 to_email 字段。
使用 Django 2.1 并在用户注册到某个页面后自动发送电子邮件。
现在电子邮件发送到reciever@gmail.com,这显然是不正确的。
它需要发送到表单中输入的任何电子邮件。
我尝试更改为 to_email= request.POST['email'] 和 to_email = form.cleaned_data['email'],但这些都不起作用。
to_email = form.cleaned_data['email'] 给出错误
TypeError at /users/list "to" argument must be a list or tuple
然后改成
to_email = form.cleaned_data['email',]
给出错误
KeyError at /users/list ('email',)
有人可以帮我吗?
views.py
def list_view(request):
if request.method == 'POST':
form = ListForm(request.POST)
if form.is_valid():
form.save()
messages.success(request, f"signed up!")
subject = "Yay."
html_message = render_to_string('mail/mail_template.html', {'context': 'values'})
plain_message = strip_tags(html_message)
from_email = settings.EMAIL_HOST_USER
to_email = ['receiver@gmail.com',]
html_message.content_subtype = "html"
send_mail( subject, plain_message, from_email, to_email, html_message=html_message )
return redirect('landing')
forms.py
class ListForm(forms.ModelForm):
email = forms.EmailField(required=True)
class Meta:
model = List
fields = ['email']
【问题讨论】:
-
不起作用如何?会发生什么?
-
它将始终向上述电子邮件 ID 发送电子邮件,因为那里是硬编码的
to_email = ['receiver@gmail.com',] -
@DanielRoseman 我收到
form.cleaned_data不是元组的错误,所以我在['email'],之后添加了一个逗号,然后我在/users/list ('email',)收到KeyError -
请显示您使用的确切代码和完整的错误。
-
@DanielRoseman 我已经在上面添加了
标签: django django-forms django-views