【问题标题】:Error when submitting form [duplicate]提交表单时出错[重复]
【发布时间】:2013-01-14 03:38:50
【问题描述】:

可能重复:
Updating an entry on form submit instead of saving new entry

我正在编辑表单并提交它,但它没有得到更新,而是存储在另一个条目中。

def searchinventory2(request, id = None):
    print "sssssssssss", id

    if id is not None:
        task = Inventory.objects.get(id = id)
    else:
           pass     
    if request.method == 'POST': # If the form has been submitted...
        print "dfdf"
        form = Inventory_List(request.POST, request.FILES, instance=task)
        print "hhhhhhhhhhhhh"
        if form.is_valid():
            print "ksjhjksfh"    
            form.save()
            return task(request, 'Task #%s created successfully.' % (task.id))
    else:
        print "in else"
        form = Inventory_List(instance = task)
    return render_to_response("smartlogis/inventoryedit.html", {'form':form,})

我收到此错误:

local variable 'task' referenced before assignment

【问题讨论】:

  • 第一:调整缩进(所有代码部分都要加4个空格。
  • 第二个:我没有看到标题和问题之间的联系

标签: python python-2.7 django-forms django-1.4 django-sessions


【解决方案1】:

task 仅在is 不是None 时才被初始化,因此如果您调用searchinventory2(request),则不会初始化任务。

你应该这样做:

if id is not None:
    task = Inventory.objects.get(id = id)
else:
    task = something that can be then used 

【讨论】:

    猜你喜欢
    • 2021-08-29
    • 2018-05-10
    • 2014-05-09
    • 2018-09-06
    • 2016-10-25
    • 1970-01-01
    • 2012-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多