Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Передача параметров между представлениями [RSS Feed]

#1 Апрель 9, 2010 15:33:17

vaxXxa
От: Kyiv, Ukraine
Зарегистрирован: 2009-06-16
Сообщения: 278
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача параметров между представлениями

Что-то не могу осилить даную задачу. В одной вьюшке высчитываю нужное значение, а теперь надо сделат некий редирект и передать значение туда…

пользуюсь HttpResponseRedirect(reverse('my_view')

Вопрос: как передавать значение между представлениями делая при этом редирект на него?

Спасибо.



Офлайн

#2 Апрель 9, 2010 15:41:44

vaxXxa
От: Kyiv, Ukraine
Зарегистрирован: 2009-06-16
Сообщения: 278
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача параметров между представлениями

И вопрос в догонку reverse('xxxx).
xxx - Это имя вьюшки или name из url ?
В доках написано, что может быть и то и другое. А если есть вьюшка и name из url - разные по смыслу, но названия одинаковые? что приоритетнее?



Офлайн

#3 Апрель 9, 2010 17:14:18

Evg
От:
Зарегистрирован: 2008-12-25
Сообщения: 346
Репутация: +  -1  -
Профиль   Отправить e-mail  

Передача параметров между представлениями

vaxXxa
В одной вьюшке высчитываю нужное значение, а теперь надо сделат некий редирект и передать значение туда…
собственно а почему бы не посчитать его во 2-й вьюшке?)
ну а вообще параметром же в урле можно передать или через сессию на край.



Офлайн

#4 Апрель 9, 2010 18:04:37

vaxXxa
От: Kyiv, Ukraine
Зарегистрирован: 2009-06-16
Сообщения: 278
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача параметров между представлениями

Evg
собственно а почему бы не посчитать его во 2-й вьюшке?)
Потому что считаю нужное значение на основе данных из формы в первой вьюшке.

Сделал сам. Рассказываю. Вьюшка - это всего лишь Питоновская ф-ция, которая первым параметром держит request (принимает HttpRequest и отдает HttpResponse).
Дальше я делаю так:
def view2(request, value):
print(value)
return render_to_response('template2.html')

def view1(request, value):
if request.method == 'POST':
form = YourModelForm(request.POST)
if form.is_valid():
value=calculate()
return view2(request, value=value)
else:
form = YourModelForm()
return render_to_response('template1.html')



Отредактировано (Апрель 9, 2010 18:05:19)

Офлайн

#5 Апрель 9, 2010 20:56:32

Evg
От:
Зарегистрирован: 2008-12-25
Сообщения: 346
Репутация: +  -1  -
Профиль   Отправить e-mail  

Передача параметров между представлениями

vaxXxa
делая при этом редирект на него?
тогда это лишнее)



Офлайн

#6 Апрель 9, 2010 21:08:10

vaxXxa
От: Kyiv, Ukraine
Зарегистрирован: 2009-06-16
Сообщения: 278
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача параметров между представлениями

Тут поигрался со всем этим и понял, что так плохо дело будет…
Самое четкое - это сделать редирект на новый урл с новой вьюхой и передать значение… но как? сессия, база - это чуто не то…
тут надо внутри все как-то провернуть…



Офлайн

#7 Апрель 9, 2010 21:22:02

vaxXxa
От: Kyiv, Ukraine
Зарегистрирован: 2009-06-16
Сообщения: 278
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача параметров между представлениями

эм… ну, чуток не то.. короче, я хочу сделал систему оформления заказа..
Форма. Юзер заполнил… Создался экземпляр класса ЗАКАЗ. Дальше переход на страничку подтверждения: надо передать созданный экземпляр туда. Юзер просматривает - 2 кнопки: Подтвердить и Назад. Подтвердить - экземпляр идет в базу, Назад - назад на форму с введенной ранее инфой.

Идеи)))



Офлайн

#8 Апрель 10, 2010 09:29:37

Evg
От:
Зарегистрирован: 2008-12-25
Сообщения: 346
Репутация: +  -1  -
Профиль   Отправить e-mail  

Передача параметров между представлениями

Заказ надеюсь модель, так передайте ее ид через урл.

vaxXxa
Подтвердить - экземпляр идет в базу
Пусть сразу идет только со статусом не подтвержлен, далее ид чеерз урл, далее статус переходит в подтвержден.



Отредактировано (Апрель 10, 2010 09:32:32)

Офлайн

#9 Апрель 10, 2010 10:19:16

vaxXxa
От: Kyiv, Ukraine
Зарегистрирован: 2009-06-16
Сообщения: 278
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача параметров между представлениями

Evg, можно и так…)



Офлайн

  • Начало
  • » Django
  • » Передача параметров между представлениями[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version