使用HttpResponseRedirect返回对象列表

时间:2012-02-28 17:23:32

标签: python django

我有一个添加和编辑Meeting对象的视图,我将在保存Meeting对象后显示该对象的参与者列表,如何返回参与者列表HttpResponseRedirect?我认为不可能通过query string发送大量对象!

views.py

中的

def addMeeting(request,meeting_id=None):
   message=u''
   participants=Participant.objects.filter(meeting__id=meeting_id)
   if request.GET.get('save'):
      message='your recorded was registered'
   if meeting_id:
      meeting_instance=Meeting.objects.get(pk=meeting_id)
   else:
      meeting_instance=Meeting()
   if request.method=='POST':
      meetingform=MeetingForm(request.POST,instance=meeting_instance)
      if meetingform.is_valid():
         meeting=meetingform.save()
         meeting.save()
         redirect_url=reverse('MeetingManagerHub.views.addMeeting', args=[meeting.pk])
         return HttpResponseRedirect(redirect_url+'?save=True')
   else:
      meetingform=MeetingForm(instance=meeting_instance)
   return render_to_response('MeetingHub/addmeeting.html', {'meetingform': meetingform,'message':message},context_instance=RequestContext(request))
urls.py

中的

(r'^meeting/add/$','MeetingManagerHub.views.addMeeting'),
(r'^meeting/add/(?P<meeting_id>\d+)/$','MeetingManagerHub.views.addMeeting'),

我googled很多,最后发现HttpResponseRedirect只是将我们重定向到一个新地址,但不能与context一起使用!

我该怎么做?

1 个答案:

答案 0 :(得分:3)

这是一个秘密。重定向应指向获取会议和参与者的视图。

通常,这是一个简单的视图函数,可以处理简单的GET请求并返回会议和参与者列表。

如果您要重定向回此addMeeting视图功能,则GET处理需要查询会议和参与者。 这意味着render_to_response必须包括会议和参与者。

return render_to_response('MeetingHub/addmeeting.html', 
    {'meetingform': meetingform, 'message':message,
    'meeting': meeting, 'participants': participants,
    #... and anything else that might be helpful to show on the page
    },
    context_instance=RequestContext(request))