Django: Должен ли я иметь сложные имена шаблонных переменных или сложные представления - PullRequest
0 голосов
/ 27 июля 2011

В django, что я обычно предпочитаю и почему?

  • длинные имена шаблонных переменных, передавая как можно меньше «корневых объектов» (например, запроса):

    {% if request.current_page.get_children.0.get_absolute_url %}

  • или пропустите множество различных «корневых объектов» и оставьте имя переменной шаблона простым:

    {% if first_child_url %}

  • где-то посередине, например, прохождение children

    {% if children.0.get_absolute_url %}

    или прохождение first_child

    {% if first_child.get_absolute_url %}

Преимущество первого подхода заключается в более слабой связи, поскольку мне не нужно менять представление каждый раз, когда мне нужно использовать другую переменную;Преимущество второго подхода заключается в том, что шаблон проще и намного чище.

Если я использую общие представления (или сторонние представления), которые не позволяют мне добавлять дополнительные переменные контекста (следовательно, единственный способдобавить контекстные переменные, написав промежуточное программное обеспечение или контекстные процессоры), это что-нибудь изменит?

Ответы [ 2 ]

2 голосов
/ 27 июля 2011

Нет правильного ответа на это, но я могу дать вам кое-что еще рассмотреть:

1) Неверно набранные имена переменных в шаблоне молча, поэтому я обычно стараюсь избегать таких вещей, как

{% if request.current_page.get_children.0.get_absolute_url %}

2) В отличие от этого, любые проблемы в представлении немедленно вызовут исключения и станут очевидными для отладки

first_child_url = request.current_page.get_children[0].get_absolute_url

3) То, что я иногда делаю, когда ситуация требует этого, - это добавление в модель ярлыков, которые позволяют мне вызывать метод из шаблона, но при этом сохраняя сложность на стороне уравнения Python.

Все это говорит о том, что если вы не можете добавить дополнительный контекст и вам нужно сделать это с помощью шаблонных тегов (как упомянуто в ваших комментариях), я думаю, что лучше всего, если вы выберете вариант сложного шаблона. Я использую пользовательские теги шаблонов только тогда, когда это единственный способ что-то сделать, а не как ярлык.

Надеюсь, это поможет ....

2 голосов
/ 27 июля 2011

Если вы единственный разработчик, это в основном дело вкуса.Однако, если тот, кто кодирует представления, - это не тот, кто пишет шаблоны, гораздо проще взаимодействовать с четко определенными «контрактами» между представлением и шаблоном.

Я склонен думать о параметрах представления для шаблонатак же, как я думаю об интерфейсах API.Логика моего веб-сайта может измениться, но до тех пор, пока я уважаю структуру данных, переданную в шаблон, мне не нужно ничего переписывать - и при работе в группе это жизненно важно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...