【问题标题】:UnboundLocalError: local variable 'form' referenced before assignmentUnboundLocalError:分配前引用的局部变量“表单”
【发布时间】:2019-02-01 13:50:21
【问题描述】:

我想新建一个项目创建页面,目标是用户可以验证他的表单,我在下面的代码中有错误

这是消息错误:

local variable 'form' referenced before assignment

Request Method:     GET
Request URL:    http://127.0.0.1:8000/dash/create/
Django Version:     2.1.4
Exception Type:     UnboundLocalError
Exception Value:    

local variable 'form' referenced before assignment

【问题讨论】:

    标签: python django


    【解决方案1】:

    针对可见性进行了更正。

    @login_required
    def createproject(request):
        form = None # added line
        if request.method == 'POST':
            form = forms.CreateProject(request.POST)
            if form.is_valid():
                return redirect('dashboard:dashboard-createproject')
            else:
                form = forms.CreateProject
        return render(request, 'dashboard/createproject.html', {'form': form})
    

    【讨论】:

      【解决方案2】:

      并非所有路径都定义了表单实例(例如,用户使用 GET 来查看页面),要解决此问题,只需在 if 语句之前将表单初始化为 None 或其他内容

      【讨论】:

      • 仍有错误:``` if request.method == 'POST': form = forms.CreateProject(request.POST or None) if form.is_valid(): return redirect('dashboard :dashboard-createproject') else: form = forms.CreateProject return render(request, 'dashboard/createproject.html', {'form': form}) ```
      猜你喜欢
      • 2017-08-10
      • 2020-01-16
      • 2019-12-05
      • 2017-09-19
      • 2020-09-26
      • 2022-01-02
      • 2019-03-22
      • 2019-01-24
      • 2021-07-01
      相关资源
      最近更新 更多