2009-12-27 57 views
0

我有带来一个模板,它允许要观看的模型实例的字段URLPATTERN:传递一个值到一个HttpResponse请求

(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}) 

回答

6

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

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

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

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

感谢丹尼尔。这就是我想要做的。不知道正确的语法。再次感谢。 – kjarsenal 2009-12-27 20:21:56

+0

这不适用于我,我不知道为什么。这是我的: – ThatAintWorking 2012-04-19 16:03:14

相关问题