以下是我的base.html标题中的代码
<script>
var auth_status = "{{ user.is_authenticated }}"
</script>
{% block scripts %} {% endblock %}
我网站上的其他脚本都在块脚本中。
在子模板中(在脚本块内和脚本标记内)我有这段代码,
if (auth_status) {
//something
}
当前的错误是auth_status始终为True,当它应该打开和关闭时,具体取决于用户是否已登录.Request_context正在传递给模板,因此不应该是错误。
由于
答案 0 :(得分:72)
我看到你的auth_status
变量似乎是一个字符串,而不是一个布尔值。 javascript上具有非空字符串的变量将在true
子句上评估为if
。
无论如何,像
<script>
var auth_status = {{ user.is_authenticated }};
</script>
将无效,因为这将生成此HTML:
<script>
var auth_status = True;
</script>
因为Python的True布尔值是大写的。
这应该从Python到Javascript的转换:
<script>
var auth_status = {{ user.is_authenticated|yesno:"true,false" }};
</script>
在此处检查yesno docs:https://docs.djangoproject.com/en/dev/ref/templates/builtins/#yesno
答案 1 :(得分:0)