对于GET
form_page.html,
我的视图有一个特定的my_id来实例化一个表单
(即,当用户第一次看到此form_page时,已经为他创建了一个实例,
他实际上是第一次修改它
form = MyForm(instance=MyClass.objects.get(pk=my_id))
对于POST
form_page.html,
我想使用相同的my_id更新同一个实例。
我想我可以为此my_id设置一个单独的隐藏字段,并在用户POST表单时获取它 但这似乎并不像我预期的那么容易。
我应该如何/在哪里嵌入my_id以便我可以使用它来更新同一个实例?
答案 0 :(得分:1)
通常我会将ID保留在网址
中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, })