赋值前引用的局部变量
Posted
技术标签:
【中文标题】赋值前引用的局部变量【英文标题】:Local Variable referenced before assignment 【发布时间】:2011-11-06 06:51:41 【问题描述】:我想知道你们是否可以帮忙。我正在尝试做一个简单的视图,它将用户发送到客户端创建表单,但我不断收到此错误:
'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))
谁能告诉我哪里出错了?
【问题讨论】:
请包含完整的回溯,它会告诉你问题发生在哪一行。 您的代码示例中的缩进是否正确? 【参考方案1】:您几乎肯定想要取消缩进这部分:
else:
form = AddClientForm()
即在页面的初始GET上,使用一个空白的客户端表单,然后在页面被POST的时候,使用请求POST数据来填写表单对象。
【讨论】:
谢谢,这有助于我的一些代码在 PyCharm 中给我同样的信息【参考方案2】:这是正在发生的事情:
if
块未被输入。
form
变量未定义。
然后您尝试在return
语句中引用form
变量。
至于如何修复它,这真的由您决定。如果请求方法不是POST
,解决方法取决于您希望代码执行的操作。
【讨论】:
当请求方法不是POST
时你想返回什么?
我要做的是生成一个表单,用户可以在其中输入信息并提交..如果用户不满足表单的需求,则不要提交表单跨度>
不知道request.method != 'POST'
时需要写什么代码来处理这种情况。只有你知道。比如你想做return render_to_response(...)
吗?以上是关于赋值前引用的局部变量的主要内容,如果未能解决你的问题,请参考以下文章