Уведомления

Группа в Telegram: @pythonsu

#1 Июль 29, 2009 04:33:31

Nick2009
От:
Зарегистрирован: 2009-06-24
Сообщения: 161
Репутация: +  0  -
Профиль   Отправить e-mail  

Как лучше передавать параметры?

На страничке несколько блоков, в каждом есть <a href = урл с дним изменяемым параметром>
Пользователь еще не авторизорван, но может кликать по этим ссылкам, меняя таким образом, параметры.
Каждый урл, конечно связан с представлением, каждое представление возвращает свой стандартный шаблон, унаследованный от базового шаблона. Основной контент страницы должен каждый раз меняться в зависимости от сочетания параметров.
Проблема в том, что в каждом урле передается только один параметр, а не все.
Поддержка сочетания параметров между запросами превращается в головоломку, а код становится запутанным.
Использовать данные сеанса пока нельзя, т.к. юзер не авторизован. Стандартная Джанговская система аутентификации и сеансов вроде бы на этом этапе еще не работает.

Если бы я это делал без фреймворка, то намутил бы что-нибудь с JavaScript и POST запросами, и перекидывал бы массив данных туда-сюда между сервером и клиентом, но это самопал. Как эту задачу эффективнее всего решить средствами Джанги?



Отредактировано (Июль 29, 2009 04:36:47)

Офлайн

#2 Июль 29, 2009 08:23:58

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

Как лучше передавать параметры?

Даже когда юзер не авторизован, система сеансов работает. Она не работает только если кукисы отключены



Офлайн

#3 Июль 29, 2009 08:38:38

Nick2009
От:
Зарегистрирован: 2009-06-24
Сообщения: 161
Репутация: +  0  -
Профиль   Отправить e-mail  

Как лучше передавать параметры?

rahs
Даже когда юзер не авторизован, система сеансов работает. Она не работает только если кукисы отключены
Придется работать одновременно с двумя системами сеансов? Своей и django.session?
Попроще бы…



Отредактировано (Июль 29, 2009 13:17:05)

Офлайн

#4 Июль 29, 2009 13:59:18

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Как лучше передавать параметры?

Nick2009
Внимательнее прочитайте предыдущий ответ. О какой “своей системе сеансов” вы говорите?

Офлайн

#5 Июль 29, 2009 21:45:44

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

Как лучше передавать параметры?

Nick2009
Как эту задачу эффективнее всего решить средствами Джанги?
Не поверите - передавать параметры урлами. Вам надо написать лишь какой-то слой абстракции, в котором вы сможете задать возможные параметры с допустимыми значениями и переходы между ними. И в зависимости от страницы и входного параметра генерировать правильным образом другие урлы.

Подобная система реализована, например, на этом сайте.



Офлайн

#6 Июль 30, 2009 14:15:49

Nick2009
От:
Зарегистрирован: 2009-06-24
Сообщения: 161
Репутация: +  0  -
Профиль   Отправить e-mail  

Как лучше передавать параметры?

Daevaorn
Не поверите - передавать параметры урлами. Вам надо написать лишь какой-то слой абстракции, в котором вы сможете задать возможные параметры с допустимыми значениями и переходы между ними. И в зависимости от страницы и входного параметра генерировать правильным образом другие урлы.
Угу, именно так пока и сделал. Недостаток в том, что в каждом урле дублируется весь массив параметров, хотя это мелочи.



Офлайн

#7 Июль 30, 2009 14:41:41

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

Как лучше передавать параметры?

Nick2009
Недостаток в том, что в каждом урле дублируется весь массив параметров
Это огромное достоинство и шаг к RESTful идеологии.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version