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
异常,并且模板将该值视为pythonNone
类型
调试器将条件值作为Python而不是Django模板语言进行计算,因此该值将根据PythonTrue
进行测试,并计算为True
为了使逻辑正常工作,您可能需要尝试将True
添加到模板上下文中。类似于:{“True”:True}
相关:Django模板语言不是Python,而是它自己的自定义“模板语言”,具有最少的逻辑(这是出于设计:鼓励您将“控制器”逻辑远离模板)。因此,您会发现一些有效的Python可能不是有效的模板语法 在您的示例中,模板语言尝试将“True”作为文本进行计算。由于您可能没有在上下文中定义名为“True”的键,因此会引发
variabledesnotexist
异常,并且模板将该值视为pythonNone
类型
调试器将条件值作为Python而不是Django模板语言进行计算,因此该值将根据PythonTrue
进行测试,并计算为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。那我的错。无论如何,我都会查看视图,以防万一。对不起,我误解了