在views.py中处理其表单后获取对象的id

时间:2013-02-25 19:51:16

标签: django django-forms django-views

我需要获取我刚才保留的对象的id,以便在HttpResponseRedirect中传递它:

def pujar_track(request):
if request.method=='POST':
    formulari = TrackForm(request.POST, request.FILES)
    if formulari.is_valid():                    
        formulari.save()            
        # code to get the track_id ???          
        return HttpResponseRedirect('/track/pujar/acoplar',track_id)
else:
    formulari = TrackForm()

return render(request,'principal/trackForm.html',
    {'formulari':formulari})

提前致谢!

1 个答案:

答案 0 :(得分:0)

假设TrackForm扩展了ModelForm:

formulari = formulari.save()
return HttpResponseRedirect('/track/pujar/acoplar',formulari.id)

在不知道你如何接受变量的情况下,我无法告诉你如何最好地传递参数。但是,我建议您使用reverse而不是硬编码网址,如下所示:

return HttpResponseRedirect(reverse('view_name', args=(),
    kwargs={'track_id': formulai.id}))

假设您的视图接受track_id

的关键字参数