Как передать аргумент ключевого слова boolean вместе с использованием тега шаблона "Включить"
{% include "example.html" with name="John" hide_last_name=True %}
В принципе, я пытаюсь включить "example.html" в качестве подшаблона в свой основной шаблон. Дополнительный контекст предоставляется со значением для передачи аргументов ключевого слова name
и hide_last_name
. Хотя в системе шаблонов django нет проблем с распознаванием name
, она как-то просто не может распознать hide_last_name
. Я подозреваю, что использование аргумента ключевого слова boolean в теге Include
теперь разрешено, но тогда я не могу найти нигде в официальных документах. Пожалуйста, помогите. Спасибо.
Ответы
Ответ 1
Шаблон Django будет обрабатывать True
как переменную и попытаться найти ее в контексте.
Вы можете использовать непустую строку для представления истинного значения или присвоить истинное значение True
в контексте, например, через TEMPLATE_CONTEXT_PROCESSORS
:
def common_vars(request):
return {
'True': True,
'False': False,
'newline': '\n',
...
}
Ответ 2
Для Django <= 1.4.x
Как уже говорилось ранее, Django пытается найти переменную с именем "True".
Самый простой способ справиться с этим - использовать целочисленное значение, которое не будет оцениваться.
Вы можете написать в шаблоне include
{% include "example.html" with show_last_name=1 %}
и в включенном шаблоне
John
{% if show_last_name %}
Doe
{% endif %}
Для Django >= 1.5
Вы можете использовать True и False в шаблонах, так что это уже не проблема
Ответ 3
В django 1.5 вы можете использовать True в шаблонах django в соответствии с их примечаниями к выпуску.
И если вы работаете над более ранними версиями, вам нужно будет пойти на то, что предложил @okm!