首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UnboundLocalError /contact/ -Django 1.8

UnboundLocalError /contact/ -Django 1.8
EN

Stack Overflow用户
提问于 2015-09-23 20:52:39
回答 1查看 283关注 0票数 0

在这个特殊的行中,我一直得到“赋值前引用的局部变量'form_message‘”错误:“form_full_name,”

以下是django 1.8中的代码:

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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个空格替换所有制表符,然后将编辑器配置为在用作缩进时展开选项卡。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32749263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档