HttpResponseRedirect вопрос - PullRequest
       10

HttpResponseRedirect вопрос

2 голосов
/ 05 апреля 2010

Не можем мы отправить словарную переменную при использовании HttpResponseRedirect

        render_to_response('edited/display.html',context_instance=RequestContext(request,{'newlist': newlist}))

    //How can the dictionary and the request sent back again

    //sumthing like this

    return HttpResponseRedirect('edited/display.html',context_instance=RequestContext(request,{'newlist': newlist}))

Ответы [ 4 ]

4 голосов
/ 05 апреля 2010

Перенаправление ответа, как следует из названия, перенаправляет браузер пользователя на новый URL, поэтому нет смысла передавать что-либо еще, кроме нового местоположения в HttpResponseRedirect

Если вы хотите передать некоторые данные, чтобы в view нового URL-адреса местоположения вы могли проверить эти данные, передайте их в качестве аргументов url, например,

return HttpResponseRedirect('edited/display.html?msg=I was redirected')
2 голосов
/ 18 декабря 2011

Итак, позвольте мне добавить еще один ответ к существующим:

my_url = reverse("my_app.views.my_path") + "?action_result=124"
return HttpResponseRedirect(my_url)

обратная функция: from django.core.urlresolvers import reverse

0 голосов
/ 05 апреля 2010

То, что вы действительно ищете, я думаю, это функция redirect, представленная в 1.1

Вместо этого вы можете использовать для своего случая

redirect(view_name,view_parameter)

Для этого может потребоваться сначала изменить представление, принять параметр new_list или передать ему slug или id, который требуется.

0 голосов
/ 05 апреля 2010

С документация :

Конструктор принимает один аргумент - путь для перенаправления. Это может быть полный URL-адрес (например, 'http://www.yahoo.com/search/') или абсолютный URL-адрес без домена) (например,' /search/').

...