0

对于GETform_page.html,
我的视图有一个特定的 my_id 来实例化一个表单。
(即,当用户第一次看到这个 form_page 时,已经为他创建了一个实例,
而他实际上是第一次修改它)

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

对于POSTform_page.html,
我想使用相同的 my_id 更新相同的实例。

我想我可以为这个 my_id 设置一个单独的隐藏字段,并在用户发布表单时获取它。
但这似乎不像我想象的那么容易。

我应该如何/在哪里嵌入这个 my_id 以便我可以使用它来更新同一个实例?

4

1 回答 1

1

通常我会在 url 中保留 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, })
于 2013-05-16T06:39:05.403 回答