1

我有一个 urlpattern,它带来了一个模板,允许查看模型实例的字段:

(r'^display/(?P<id>\w+)/', display_record),

我还有一个允许编辑单个实例的视图功能。保存对象后,它只是返回到相同的模板:

if form.is_valid():
        form.save()
        return HttpResponseRedirect('/')

保存后,如何返回显示模板,而不是刷新相同的视图?代码如下所示,但我需要一种将对象“id”传递给 HttpResponse 请求的方法:

def edit_record(request, id):
        if request.method == 'POST':
                a=ProjectRecord.objects.get(pk=id)
                form = RecordForm(request.POST, instance=a)
                if form.is_valid():
                        form.save()
                        return HttpResponseRedirect**('/display/(?P<id>\w+)/')**
        else:
                a=ProjectRecord.objects.get(pk=id)
                form = RecordForm(instance=a)
        return render_to_response('productionModulewire.html', {'form': form})
4

1 回答 1

6

你把事情复杂化了。您已经知道 ID 是什么,那么为什么不能将其放回 URL 中呢?

return HttpResponseRedirect('/display/%s/' % id)

或者,更好的是,因为它不会将您绑定到特定的硬编码 URL:

return HttpResponseRedirect(reverse('edit_record', kwargs={'id':id}))
于 2009-12-27T20:19:26.033 回答