Python Django模板中if-else语句的工作不正确

Python Django模板中if-else语句的工作不正确,python,django,django-templates,Python,Django,Django Templates,我有以下代码: {% if username_is_ok == True %} <input type="text" name="inputName" placeholder="Name" required> {% else %} <div class="control-group error"> <input type="text" name="inputName" placeholder="Name" value="{{ user

我有以下代码:

{% if username_is_ok == True %}
    <input type="text" name="inputName" placeholder="Name" required>
{% else %}
    <div class="control-group error">
        <input type="text" name="inputName" placeholder="Name" value="{{ username }}"
               class="text-error" required>
        <span class="help-block text-error">User already exists</span>
    </div>
{% endif %}
{%if username_是_ok==True%}
{%else%}
用户已存在
{%endif%}

调试器说,
username\u是\u ok==True
等于
{bool}True
。但它会转到
else
分支,当页面加载时,我会看到错误消息。我看不出有错误,对此我感到很沮丧。你能帮助我吗?谢谢。

Django模板语言不是Python,而是它自己的自定义“模板语言”,具有最少的逻辑(这是出于设计:鼓励您将“控制器”逻辑与模板分开)。因此,您会发现一些有效的Python可能不是有效的模板语法

在您的示例中,模板语言尝试将“True”作为文本进行计算。由于您可能没有在上下文中定义名为“True”的键,因此会引发
variabledesnotexist
异常,并且模板将该值视为python
None
类型

调试器将条件值作为Python而不是Django模板语言进行计算,因此该值将根据Python
True
进行测试,并计算为
True

为了使逻辑正常工作,您可能需要尝试将
True
添加到模板上下文中。类似于:
{“True”:True}


相关:

Django模板语言不是Python,而是它自己的自定义“模板语言”,具有最少的逻辑(这是出于设计:鼓励您将“控制器”逻辑远离模板)。因此,您会发现一些有效的Python可能不是有效的模板语法

在您的示例中,模板语言尝试将“True”作为文本进行计算。由于您可能没有在上下文中定义名为“True”的键,因此会引发
variabledesnotexist
异常,并且模板将该值视为python
None
类型

调试器将条件值作为Python而不是Django模板语言进行计算,因此该值将根据Python
True
进行测试,并计算为
True

为了使逻辑正常工作,您可能需要尝试将
True
添加到模板上下文中。类似于:
{“True”:True}


相关:

尝试使用
{%if username\u is\u ok%}
我添加了
==True
以双重检查
username\u is\u ok
的值,所以这不是一个解决方案。你检查过
username\u is\u ok
是否等于True吗???@nnaelle他在问题中说了。哦,我想他刚刚检查过它是否是bool。那我的错。无论如何,我都会查看视图,以防万一。对不起,我误解了使用
{%if username\u is\u ok%}
我添加了
==True
以双重检查
username\u is\u ok
的值,所以这不是一个解决方案。你检查过
username\u is\u ok
等于True吗???@nnelle他在问题中说了。哦,我想他刚刚检查过这是否是一个bool。那我的错。无论如何,我都会查看视图,以防万一。对不起,我误解了