как поставить запятую в шаблонах Django - PullRequest
2 голосов
/ 11 июня 2011

Я хотел бы вывести следующее, используя шаблоны django:

Manhattan, NY, USA

со следующим кодом:

{{ city }}, {{ state }}, {{ country }}

Но иногда одна или несколько из этих переменных могут быть пустыми. Допустим, переменная состояния пуста, тогда вывод будет выглядеть так:

Manhattan, , USA

Так что мой вопрос - как лучше всего обращаться с запятыми, не используя несколько операторов if.

Спасибо

Ответы [ 2 ]

2 голосов
/ 11 июня 2011

Для этого может быть фильтр шаблонов, но я об этом не знаю. Поэтому я бы написал свой собственный шаблонный фильтр, чтобы добавить строку в конец моих значений. Это будет использовано так:

{{ city|suffix:", " }}{{ state|suffix:", " }}{{ country }}

Информацию о создании пользовательских шаблонных фильтров можно найти в документации Django здесь:

https://docs.djangoproject.com/en/dev/howto/custom-template-tags/

Ваш шаблонный фильтр будет выглядеть примерно так:

from django import template
register = template.Library()

@register.filter(name='suffix')
@stringfilter
def suffix(value, arg):
    "Suffixes a string with the argument, only if the string is not empty"
    if value:
         return value + arg
    return value

Хотя это будет работать только в том случае, если всегда указывается country.

0 голосов
/ 11 июня 2011

Вы можете поместить все переменные в список и использовать фильтр объединения или цикл for с одним оператором if. Хотя любое из этих решений может повлиять на четкость и читабельность вашего шаблона, и я предпочитаю использовать в таких случаях операторы, особенно если между элементами, разделенными запятыми, используется более сложный HTML.

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