Moo*_*lue 0 forms django views
我正在尝试让我的电子邮件联系表在我的 Django 网站上工作。我的浏览器出现如下错误:
异常类型:TypeError 异常值:“to”参数必须是列表或元组异常位置:/home/Gassymule/Skeletonv3.1/myvenv/lib/python3.6/site-packages/django/core/mail/message.py在init 中,第 264 行
它特别强调
try:
send_mail(name, company, phone, subject, message, from_email, ['kkeeper.ch@gmail.com'])
Run Code Online (Sandbox Code Playgroud)
从我的 views.py 但我不完全确定它需要我修复什么。我从中获取的教程网站使用了这种确切的格式。
视图.py
from django.http import HttpResponse
from django.shortcuts import render, redirect
from django.views.generic import TemplateView
from website.forms import ContactForm
from django.core.mail import send_mail, BadHeaderError
def email(request):
if request.method == 'GET':
form = ContactForm()
else:
form = ContactForm(request.POST)
if form.is_valid():
subject = form.cleaned_data['subject']
from_email = form.cleaned_data['from_email']
message = form.cleaned_data['message']
name = form.cleaned_data['name']
company = form.cleaned_data['company']
phone = form.cleaned_data['phone']
try:
send_mail(name, company, phone, subject, message, from_email, ['kkeeper.ch@gmail.com'])
except BadHeaderError:
return HttpResponse('Invalid header found.')
return redirect('thanks')
return render(request, "email.html", {'form': form})
def thanks(request):
return HttpResponse('Thank you for your message.')
Run Code Online (Sandbox Code Playgroud)
这是我的联系表单模板中的相关代码。
电子邮件.html
<form action="" method="post">
{% csrf_token %}
<ul class="contactList">
<li id="name" class="contact">{{ form.name }}</li>
<li id="company" class="contact">{{ form.company }}</li>
<li id="email" class="contact">{{ form.from_email }}</li>
<li id="phone" class="contact">{{ form.phone }}</li>
<li id="subject" class="contact">{{ form.subject }}</li>
<li id="message" class="contact">{{ form.message }}</li>
</ul>
<input id=submitb type="submit" value="Submit">
</form>
</div>
Run Code Online (Sandbox Code Playgroud)
这是我的 forms.py
表格.py
from django import forms
class ContactForm(forms.Form):
from_email = forms.EmailField(required=True)
subject = forms.CharField(required=False,)
message = forms.CharField(widget=forms.Textarea(attrs={'cols': 43, 'rows': 8}))
name = forms.CharField(required=True)
phone = forms.CharField(required=False)
company = forms.CharField(required=False)
def __init__(self, *args, **kwargs):
super(ContactForm, self).__init__(*args, **kwargs)
self.fields['from_email'].widget.attrs['placeholder'] = 'Email'
self.fields['subject'].widget.attrs['placeholder'] = 'Subject'
self.fields['message'].widget.attrs['placeholder'] = 'Message'
self.fields['name'].widget.attrs['placeholder'] = 'Name'
self.fields['phone'].widget.attrs['placeholder'] = 'Phone'
self.fields['company'].widget.attrs['placeholder'] = 'Company'
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
在send_mail
你需要传递这样的参数。
(subject, message, from_email, recipient_list)
Run Code Online (Sandbox Code Playgroud)
recipient_list
要向其发送邮件的 email_addresses 列表或元组在哪里。
您正在传递其他参数:只需执行此操作
send_mail(subject, message, from_email, ['kkeeper.ch@gmail.com'])
Run Code Online (Sandbox Code Playgroud)
它会正常工作。
归档时间: |
|
查看次数: |
1941 次 |
最近记录: |