Как иметь переменные значения по умолчанию в шаблонах? - PullRequest
0 голосов
/ 05 февраля 2012

Я хочу передать переменную defaults моим шаблонам, если фактическая переменная равна None.

Вот что я имею в виду:

{{ value|default:"Default" }}   ## General case.

Как я могу заменить "Default" своей пользовательской переменной?

Можно ли заменить его другой переменной?

Что-то вроде:

{{ value|default:{{value2}} }}     ## OR Something similar

1 Ответ

3 голосов
/ 05 февраля 2012

Вы можете просто поместить другую переменную вместо постоянной строки, например:

{{ value|default:backup_var }}

Я только что проверил, все работает отлично. Вот мой кусок шаблона:

<i>{{ my_var|default:user.username}}</i>

Я не определил my_var, поэтому он оценивается как:

<i>admin</i>

Подводя итог, парсер django принимает не только постоянные значения, но и переменные в качестве параметров для фильтров. Но не выражения (я не мог понять, как разобрать мое выражение. Но если вам это нужно, вы всегда можете использовать {% with var=expr %} ... {% endwith %} для сложных ситуаций)

...