分配前引用的局部变量

The*_*eve 4 python django django-models django-views

我想知道你们是否可以提供帮助.我正在尝试做一个简单的视图,它将用户发送到客户端创建表单,但我不断收到此错误:

在赋值之前引用的局部变量'form'

看着我的代码,我看不出什么错.

def add_client(request):
    user = request.user
    if request.method =='POST':
        form = AddClientForm(request.POST)
        if form.is_valid():
            client = form.save(commit=False)
            client.save()
            return HttpResponseRedirect('/')
        else:
            form = AddClientForm()

    return render_to_response('clients/addClient.html', { 'form': form, 'user': user, }, context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)

有谁告诉我哪里出错了?

Dav*_*nan 13

这就是发生的事情:

  1. if块未被输入.
  2. form变量没有定义.
  3. 然后,您尝试formreturn语句中引用该变量.

至于如何修复它,这真的是你要决定的.修复的内容取决于您希望代码在请求方法不是的情况下执行的操作POST.


Rus*_*ove 7

你几乎肯定想要缩进这部分:

else:
    form = AddClientForm()
Run Code Online (Sandbox Code Playgroud)

也就是说,在页面的初始GET上,使用空白客户端表单,然后当页面被POST时,使用请求POST数据填写表单对象.