django - Django send_mail“to_email”字段
问题描述
我无法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',)
有人能帮我吗?
视图.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')
表格.py
class ListForm(forms.ModelForm):
email = forms.EmailField(required=True)
class Meta:
model = List
fields = ['email']
解决方案
该错误会告诉您确切的问题:"to" argument must be a list or tuple
. 所以,把它放在一个列表或元组中。
to_email = (form.cleaned_data['email'],)
推荐阅读
- amazon-web-services - 如何将证书 (.crt) 文件导入 AWS CloudHSM 平台
- python - 我有目录中的文件列表,需要以公用名作为降序输入的文件
- android - 显示没有视图引用但应用程序上下文的快餐栏
- ios - 使用两个生产 APN 证书
- java - 在 spring-boot 中使用 2 个数据库的问题。无法自动装配。找不到 EntityManagerFactoryBuilder 的 bean
- java - 尽管添加了 android:usesCleartextTraffic 和 android:networkSecurityConfig,但不允许明文 HTTP 流量
- c++ - 从单链表的头中删除节点后指向垃圾值的头指针
- r - 使用 anomalize::time_decompose() 时出错 - “断言长度不是 1”
- javascript - 如何重命名表格中的列标题
- c# - 列表