0

重複の可能性:
新しいエントリを保存する代わりに、フォーム送信時にエントリを更新する

フォームを編集して送信していますが、更新されておらず、代わりに別のエントリに保存されています。

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

1 に答える 1

1

taskはでない場合にのみ初期化されるため、 を呼び出した場合、タスクは初期化されません。isNonesearchinventory2(request)

次のようにする必要があります。

if id is not None:
    task = Inventory.objects.get(id = id)
else:
    task = something that can be then used 
于 2013-01-30T10:49:26.780 に答える