2013-03-07 3 views
1

Я новичок в django У меня есть render_to_response, перенаправляющий пользователя на хороший URL. Но в браузере URL не изменится, так это обращаться с плохим видом ...django render_to_response перенаправить на другое изображение

здесь это

return render_to_response('newworkflow.html/',  
{'form':form,},context_instance=RequestContext(request)) 

Вот мои URLs конф:

url(r'newworkflow/$','access_mgmt.views.newworkflowform'), 
url(r'newuser/$','access_mgmt.views.newuser'), 

сразу на newworkflow.html У меня есть форма, которая не обрабатывается хорошим представлением, на самом деле это дескриптор того, где это render_to_response.

возможно ли изменить URL-адрес браузера одновременно с помощью render_to_response?

пользователя Я render_to_response потому, что на обоих (источника и цели) я активировал csrf_token

+0

Трудно понять, что такое ваша эмблема, показать свою «конфигурацию URL» и вашу связанную с ней часть ваших «просмотров» и подробно рассказать о своей проблеме. – FallenAngel

+0

Я обновлю вопрос – user2142291

+0

Я понимаю ваш вопрос, но я не могу получить его поток ваших кодов, можете ли вы поместить свои полные коды в представлениях – catherine

ответ

3

HttpResponseRedirect может быть использован для перенаправления клиента на другой URL.

render_to_response «Оказывает данный шаблон с заданным контекстным словарем и возвращает объект HttpResponse с этим визуализированным текстом».

Нет смысла визуализировать шаблон в ответе, если клиент будет игнорировать тело ответа и перейти на другой URL-адрес.

Вместо этого перенаправьте клиента на соответствующий URL-адрес, а затем предоставите отработанный ответ из представления, связанного с этим URL-адресом.

+0

Хорошо, даже если у меня есть csrf_token, активированный на исходной странице и целевой (цель, на которую мне нужно передать некоторые аргументы), потому что обе страницы являются формами – user2142291

+0

Что вы надеетесь достичь, отринув ответ клиенту и перенаправив его на другой URL-адрес на том же шаге? –

+0

Я хочу сохранить информацию о заполненных формах, прежде чем перейти во вторую форму с активированным этим csrf_token. Если я использую httpresponse, у меня есть ошибка csrf_token во второй форме – user2142291

0

понять «URL»

Пишешь

является возможность изменить URL в браузере в то же время с render_to_response?

Я думаю, что у вас слишком смутное понимание того, что такое «URL». Если браузер запрашивает URL-адрес X, он рассмотрит все, что вы его отправляете. будет ответом на URL-адрес X, независимо от того, что это такое.

Итак, если сервер (вы!) Отправляет фактический HTML-контент, URL-адрес никогда не изменится в браузере.

Чтобы изменить URL-адрес браузера, вам необходимо отправить ответ переадресации (с использованием Django's HttpResponseRedirect) в браузер. браузер будет принимать URL Y, содержащийся в нем и сделать другой запрос на сервер с URL Y - который затем также показан в адресной строке браузера.

Затем сервер отправляет содержимое HTML для Y. У вас не может быть оба этих шага в одном запросе: перенаправление и отправка контента.

Смежные вопросы