{% if None == False %} abc {% endif %}
Приведенный выше код, как ни странно, мой шаблон отображал abc.Любое объяснение?
abc
Джейсон Калверхаус предоставил ответ в другом похожем вопросе , который я задал.
False и None рассматриваются как переменные, а не как константы.Если переменные или не найдены в контекстном словаре, они разрешаются в None.
Bizarre.В обычном Python,
if None == False: # this will not run print "abc"
Ошибка в Django.:)
Так Python разрешает «истину» для сравнения разных типов.
См. Документы.«None» считается ложным.
http://docs.python.org/library/stdtypes.html#truth-value-testing
Редактировать: как показано ниже, консоль Python не подтверждает это поведение, поэтому я также удивлен.-1 мне!
В качестве альтернативы вы можете сделать if not None.
if not None
Пока что кажется, что вам придется создать свой собственный шаблонный фильтр, как было предложено в этом посте