Форум сайта python.su
Подскажите 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})
Офлайн
somaniacВ urls.py как прописан index?
Если делаю редирект без параметров работает, а при различных вариантах обределения index, выдает приблизительно следующее:
Reverse for ‘<function index at 0x0108AF70>’ with arguments ‘(’fgsdfs','fsdfdf',)' and keyword arguments ‘{}’ not found.
Офлайн
просто (r'^parse/$', index), а как нужно?
И еще вопрос - доп. атрибуты передаются как GET-запрос?
Офлайн
Тут налицо явное непонимание как работы reverse. Reverse строит url. Пармерты args и kwargs нужны для постройки урла, а не строки GET запроса. Соответственно, работать в вашем случае он будет, только если вы уберете параметры args. Строку GET запроса надо формировать самому.
Офлайн
Офлайн
Спасибо, теперь понял, почему не работало. А вопрос вдогонку можно: как передать эти данные через POST запрос?
Офлайн
Можно ли использовать HttpResponseRedirect c POST-запросами?
Офлайн
Вообще POST-запросы идут от клиента к серверу а редирект формируется от сервера. Почитайте основы HTTP
somaniacчерез форму c методом POST для этого есть в html тэг <form >
как передать эти данные через POST запрос?
Офлайн