Я хотів би вивести наступний, використовуючи шаблони django:
Manhattan, NY, USA
з наступним кодом:
{{ city }}, {{ state }}, {{ country }}
Але іноді одна або декілька з цих змінних можуть бути порожніми. Скажемо, що змінна стану порожня, тоді вихід буде виглядати наступним чином:
Manhattan, , USA
Отже, моє запитання - чим найкраще керувати комами без використання декількох тверджень.
Дякую
Відповіді:
2 для відповіді № 1Для досягнення цієї мети може бути фільтр шаблонів, але я не знаю про це. Таким чином, я напишу свій фільтр шаблонів, щоб додати рядок до кінця моїх значень. Було б використано так:
{{ 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 для відповіді № 2
Ви можете помістити всі змінні в список і використовуватифільтр приєднання або для циклу з єдиним оператором if. Хоча будь-яке з цих рішень вплине на чіткість та зручність читання вашого шаблону, і я, як правило, вважають за краще, якщо висловлювання в таких випадках, особливо якщо елементи, розділені комами, пов'язані з більш складним HTML.