Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 赋值前引用的局部变量_Python_Django_Django Models_Django Views - Fatal编程技术网

Python 赋值前引用的局部变量

Python 赋值前引用的局部变量,python,django,django-models,django-views,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(): cl

我想知道你们是否能帮忙。我试图创建一个简单的视图,将用户发送到客户端创建表单,但我一直遇到以下错误:

赋值前引用的局部变量“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))

有人告诉我哪里出了问题吗?

事情就是这样的:

  • 如果未输入
    块,则显示
  • 未定义
    表单
    变量
  • 然后尝试引用
    return
    语句中的
    表单
    变量

  • 至于如何修复它,这真的由你来决定。如果请求方法不是
    POST

    您几乎可以肯定要缩进此部分,那么修复的内容取决于您希望代码执行的操作:

    else:
        form = AddClientForm()
    

    也就是说,在页面的初始GET上,使用一个空白的客户端表单,然后在发布页面时,使用RequestPost数据填充表单对象

    请包含完整的回溯,它将告诉您问题发生在哪一行。代码示例中的缩进是否正确?当请求方法不是
    POST
    时,您希望返回什么?我尝试的是生成一个表单,用户可以在其中输入信息并提交。。如果用户没有满足表单的需要,则不要提交表单。
    request.method!='发布“
    ”。只有你知道。例如,是否要执行
    将render\u返回到\u响应(…)
    ?谢谢,这在我的一些代码中有所帮助,这些代码在PyCharm中给了我相同的消息