将值传递给HttpResponse请求

时间:2009-12-27 20:03:49

标签: django django-views

我有一个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})

1 个答案:

答案 0 :(得分:6)

你的事情太复杂了。你已经知道ID是什么了,为什么你不能把它放回URL?

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

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

return HttpResponseRedirect(reverse('edit_record', kwargs={'id':id}))