возвращение списка объектов с помощью HttpResponseRedirect - PullRequest
1 голос
/ 28 февраля 2012

У меня есть представление, которое добавляет и редактирует 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))

in urls.py

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

Я много гуглил и наконец узнал, что HttpResponseRedirect просто перенаправляет нас на новый адрес и не работает с context!

как я могу это сделать?

1 Ответ

3 голосов
/ 28 февраля 2012

В этом есть секрет. Перенаправление должно указывать на представление, которое получает собрание И участников.

Часто это простая функция просмотра, которая обрабатывает простые запросы 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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...