Django`if`声明不起作用?

时间:2013-08-28 21:15:01

标签: django

在我的模板中,我添加了以下调试语句:

<script>
  console.log("leaderboard? {{ client_settings.LEADERBOARD_ENABLED }}");
</script>

在控制台上,我看到了:

[14:09:20.026] "leaderboard? false"

稍后在我的代码中,我有以下代码:

{% if client_settings.LEADERBOARD_ENABLED %}
<button data-theme='a' onClick="$('.leaderboard').slideDown();">Leaderboard</button>
{% endif %}

我认为导致排行榜按钮不出现......但确实如此!谁能明白这是为什么?

1 个答案:

答案 0 :(得分:4)

boolean false的Python值用大写字母F字符串化为“False”。由于你的控制台语句的“false”是小写的f,client_settings.LEADERBOARD_ENABLED的值可能是字符串"false",将被解释为布尔值True。

Pythonic更改此方法的方法是在设置True变量时使用FalseLEADERBOARD_ENABLED,而不是字符串"true""false"。如果这不可行,您可以将模板测试更改为:

{% if client_settings.LEADERBOARD_ENABLED == "true" %}