Вы не можете использовать язык шаблонов для проверки того, что, по вашему мнению, является константой, парсер фактически проверяет 2 "литерала".
Анализатор проверяет 2 литерала с именами «Нет» и «Ложь».
Когда анализатор пытается разрешить их в контексте, генерируется исключение VariableDoesNotExist, и оба объекта преобразуются в значение python.
и Нет == Нет.
from django.template import Context, Template
t = Template("{% if None == False %} not what you think {% endif %}")
c = Context({"foo": foo() })
печатает "не то, что ты думаешь"
c = Context({'None':None})
t.render(c)
печатает "не то, что ты думаешь"
c = Context({'None':None, 'False':False})
t.render(c)
печатает у ''