在这个特殊的行中,我一直得到“赋值前引用的局部变量'form_message‘”错误:“form_full_name,”
以下是django 1.8中的代码:
def contact(request):
form = ContactForm(request.POST or None)
if form.is_valid():
form_full_name = form.cleaned_data.get("full_name")
form_email = form.cleaned_data.get("email")
form_message = form.cleaned_data.get("message")
subject = 'Site contact form'
from_email = settings.EMAIL_HOST_USER
to_email = [from_email]
contact_message = "%s: %s via %s"%(
form_full_name,
form_message,
form_email)
send_mail(subject,
contact_message,
from_email,
to_email,
fail_silently=False)
context = {
"form": form,
}
return render(request, "forms.html", context)发布于 2015-09-23 20:56:49
您的代码混合制表符和空格。Python将选项卡扩展到8个空格,而不是4个空格,但编辑器和Stack溢出会这样做。
因此,您的if form.is_valid():块以form_message = form.cleaned_data.get("message")行结束,您的函数的其余部分是而不是if测试的部分:

缩进中的每一行都是一个选项卡,我已经将编辑器设置为为每个选项卡使用8个空格,这样您就可以看到Python如何看待您的函数。
因此,每当if form.is_valid():为false时,仍将执行contact_message行,而未定义form_full_name。
让文本编辑器用4个空格替换所有制表符,然后将编辑器配置为在用作缩进时展开选项卡。
https://stackoverflow.com/questions/32749263
复制相似问题