我有带来一个模板,它允许要观看的模型实例的字段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})
有帮助吗?

解决方案

您会过于复杂的事情。你已经知道的ID是什么,为什么你就不能把它放回URL?

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

,或者更好,因为它不配合你特定的硬编码网址:

return HttpResponseRedirect(reverse('edit_record', kwargs={'id':id}))
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top