2013-05-16 64 views
0

對於GET form_page.html,
我的視圖有一個特定的my_id來實例化一個表單。
(即,當用戶第一次看到這個form_page,已經爲他創建一個實例,
和他實際上修改它的第一次)django使用ModelForm對象的特定實例

form = MyForm(instance=MyClass.objects.get(pk=my_id)) 

對於POST form_page.html,
我d喜歡使用相同的my_id更新同一個實例。

我想我可以有一個單獨的隱藏字段這個my_id並得到它時,用戶發佈表單。
但這似乎並不像我想象的那麼容易。

我該如何嵌入此my_id以便我可以使用它來更新同一個實例?

回答

1

通常我把ID在URL

url(r'^(?P<id>[\d]+)/edit/$', "edit"), 


def edit(request, id=None, **kwargs): 
    if id: 
     instance = get_object_or_404(Model, pk=id) 
    else: 
     instance = Model() 
    form = ModelForm(request.POST or None, request.FILES or None, instance=instance) 

    if request.method == 'POST' and form.is_valid(): 
     instance = form.save() 
     return redirect(instance) 

    return TemplateResponse(request, 'edit.html', {'form': form, }) 
相關問題