Форум сайта python.su
NaotaЭто не спасет отца русской демократии ….
Беру свои слова назад) Кустомайзинг джанго админки очень радует.
Офлайн
regallНе соглашусь, в идеале шаблон вообще должен получать имя параметра и значение, в нем не должно быть известно как связаны объекты, и то что вы там делаете длинный путь это уже часть логики которой там не должно быть.
regall написал:
{{ <Словарь>.<объект>.<свойство>.<индекс> }}
По-моему тут чисто отображение и никакой логики.
Офлайн
EvgДа, а если таких свойств у моего ‘user’ - 1000 штук, мне что все поименно передавать?
В идеале даже лучше передавать например не user
а потом в шаблоне делать user.username
EvgНу, нужно мне отображать многоуровневые списки, так как мне это сделать. Самый классный вариант - словари, хуже - туплы туплов и т д.
в идеале шаблон вообще должен получать имя параметра и значение
Отредактировано (Ноя. 12, 2009 10:14:57)
Офлайн
regallв идеале да) иначе ваш шаблон будет жестко завязан на логику в кот учитываются все эти пути. И например в другом месте его уже не заинклудить.
Да, а если таких свойств у моего ‘user’ - 1000 штук, мне что все поименно передавать?
regallсудя по примеру вам нужно отображать не многоуровневые списки а иметь доступ из шаблона лазить по таким структурам, так вот такой логики в шаблонах не должно быть. Лучше шаблоны связывать с отображением одной сущности, а логику связей выносить в вид или в тег.
Ну, нужно мне отображать многоуровневые списки, так как мне это сделать. Самый классный вариант - словари, хуже - туплы туплов и т д.
Как мне в таких случаях поступать?
Офлайн
EvgИз этого примера да, а если нцжно отображать списки многоуровневые? Я с этой проблемой столкнулся, решал примерно следующим образом.
судя по примеру вам нужно отображать не многоуровневые списки
{<title1>:
{<title2>:
(<element1>,<elements2>, ..., <element n>, )}
}
{'title':<title1>, 'sublist':
{'title':<title2>,'sublist':(<element1>,<elements2>, ..., <element n>, )}}
Офлайн
У вас там выводы каких то мудренных статистик что-ли? у меня просто таких проблем не бывает обычно, и я думаю их не должно быть, передаю модели максимум в шаблон, если у нее есть подсписок то он через метод забирается в шаблоне и для него через тег или инклуд строится его вывод. Ну а если там какая то мудренная статистика то может стоит ее адаптировать к выводу через некий объект, чтобы в шаблоне это было все просто и явно.
Те я о том что у вас там как то все намешано в кучу, я подозреваю что вместо вот этого:
regallнужно передовать не всю эту кашу, а просто начальный список объектов.
{'title':<title1>, ‘sublist’: {'title':<title2>,'sublist':(<element1>,<elements2>, …, <element n>, )}}
{% for o in objs1 %}
{{o.title}}
{%for o2 in o.getsublist%}
{{o2.title}}
{%for o3 in o2.getsublist%}
{{o3.title}}
{% endfor %}
{% endfor %}
{% endfor %}
Отредактировано (Ноя. 12, 2009 14:02:17)
Офлайн
EvgВообще-то, какая разница, какая задача? Есть средство и оно должно решать задачу…
У вас там выводы каких то мудренных статистик что-ли?
EvgДа, так и есть, это информация фактически “выдрана кусками” из самых различных частей БД в 100 таблиц, и иначе как словарем не получится (так как писать для 15 различных классов специально для шаблонизатора методы “getsublist”, уж увольте =)).
А вы как будто все это повыдрали кусками и зачем-то выдаете в словаре.
Офлайн
regallСмотря какая задача и какое средство)
Вообще-то, какая разница, какая задача? Есть средство и оно должно решать задачу…
regallА с бд вы тоже напрямую работайте, не через ОРМ джанги?)
Да, так и есть, это информация фактически “выдрана кусками” из самых различных частей БД в 100 таблиц
Офлайн
Evg
Смотря какая задача и какое средство)
EvgВидно вы только с сайтами-визитками сталкивались, в моем случае БД модифицируется/расширяется очень часто, если не будет правильнее сказать постоянно; порой приходится делать вот такие вот “выдирания из разных частей базы”, как ни прискорбно, но задачи такие, что от этого не уйдешь =(
А с бд вы тоже напрямую работайте, не через ОРМ джанги?)
Отредактировано (Ноя. 12, 2009 15:39:44)
Офлайн
regallА модели через которые идет работа с бд при этом у вас не меняются, я так понял?)
в моем случае БД модифицируется/расширяется очень часто
Офлайн