【发布时间】:2014-05-09 19:36:21
【问题描述】:
尝试从联系表单发送电子邮件时,我的 django 应用出现了一个奇怪的错误。
在 DEBUG 中提交我的联系表单时出现 unicode 错误。
查看traceback后,导致unicode错误的字符串是utils.py中函数CachedDnsName()中的DNS_NAME
该函数返回我的笔记本电脑的名称,即“Portátil-HP”
我收到 unicode 错误,但为什么会这样?
settings.py
# Email setup
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'myemail@gmail.com'
EMAIL_HOST_PASSWORD = 'mypass'
EMAIL_PORT = 587
views.py
class Contactos(FormView):
@staticmethod
def get(request):
return render(request, 'site/contactos.html', {'form': Formulario()})
def post(self, request):
form = Formulario(request.POST or None)
if form.is_valid():
# All validation rules pass
# Process the data in form.cleaned_data
name = form.cleaned_data['name']
email = form.cleaned_data['email']
message = form.cleaned_data['message']
send_mail(name, message, EMAIL_HOST_USER, [EMAIL_HOST_USER], fail_silently=False)
return render(request, 'site/contactos.html', {'form': Formulario()})
else:
return render(request, 'site/contactos.html', {'form': Formulario()})
【问题讨论】: