Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Передача параметров через HttpResponseRedirect [RSS Feed]

#1 Фев. 26, 2009 17:51:29

somaniac
От:
Зарегистрирован: 2009-01-30
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача параметров через HttpResponseRedirect

Подскажите pls, такой момент: есть вид, который отображает форму и проводит ее валидацию, и в случае если все ок, делает редирект на другой вид, каким образом передать значения полей формы при редиректе? Если делаю редирект без параметров работает, а при различных вариантах обределения index, выдает приблизительно следующее:
Reverse for ‘<function index at 0x0108AF70>’ with arguments ‘(’fgsdfs','fsdfdf',)' and keyword arguments ‘{}’ not found.
Где туплю - не понимаю :(
views.py

def input(request):
if request.method == 'POST':
inpForm=cineforms.CinegenSelectForm(request.POST)
if inpForm.is_valid():
... обработка значений формы ...
return HttpResponseRedirect(reverse('cinemahit.cinegen.views.index', args=["fgsdfs","fsdfdf"]))
else:
inpForm=cineforms.CinegenSelectForm()
return render_to_response('input_form.html', {'inpForm': inpForm})

def index(request, *args):
...
return render_to_response('parsed_output.html', {'output': output})



Офлайн

#2 Фев. 26, 2009 19:00:27

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Передача параметров через HttpResponseRedirect

somaniac
Если делаю редирект без параметров работает, а при различных вариантах обределения index, выдает приблизительно следующее:
Reverse for ‘<function index at 0x0108AF70>’ with arguments ‘(’fgsdfs','fsdfdf',)' and keyword arguments ‘{}’ not found.
В urls.py как прописан index?



Офлайн

#3 Фев. 26, 2009 19:11:02

somaniac
От:
Зарегистрирован: 2009-01-30
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача параметров через HttpResponseRedirect

просто (r'^parse/$', index), а как нужно?
И еще вопрос - доп. атрибуты передаются как GET-запрос?



Офлайн

#4 Фев. 26, 2009 19:54:01

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Передача параметров через HttpResponseRedirect

Тут налицо явное непонимание как работы reverse. Reverse строит url. Пармерты args и kwargs нужны для постройки урла, а не строки GET запроса. Соответственно, работать в вашем случае он будет, только если вы уберете параметры args. Строку GET запроса надо формировать самому.



Офлайн

#5 Фев. 26, 2009 20:33:35

romankrv
От:
Зарегистрирован: 2008-05-23
Сообщения: 513
Репутация: +  0  -
Профиль   Отправить e-mail  

Офлайн

#6 Фев. 26, 2009 20:37:33

somaniac
От:
Зарегистрирован: 2009-01-30
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача параметров через HttpResponseRedirect

Спасибо, теперь понял, почему не работало. А вопрос вдогонку можно: как передать эти данные через POST запрос?



Офлайн

#7 Фев. 27, 2009 15:16:17

somaniac
От:
Зарегистрирован: 2009-01-30
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача параметров через HttpResponseRedirect

Можно ли использовать HttpResponseRedirect c POST-запросами?



Офлайн

#8 Фев. 27, 2009 18:42:31

romankrv
От:
Зарегистрирован: 2008-05-23
Сообщения: 513
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача параметров через HttpResponseRedirect

Вообще POST-запросы идут от клиента к серверу а редирект формируется от сервера. Почитайте основы HTTP

somaniac
как передать эти данные через POST запрос?
через форму c методом POST для этого есть в html тэг <form >

Офлайн

  • Начало
  • » Django
  • » Передача параметров через HttpResponseRedirect[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version