【发布时间】:2012-03-06 04:08:18
【问题描述】:
我有一个 Django 模板 base.html:
// inside the javascript
var this_page = "{{ this_page }}";
// inside the HTML part
{% ifnotequal this_page "home" %}
...Some HTML...
{% endifnotequal %}
javascript 区域内的部分不正确。实际上,Firebug 在 HTML 选项卡中显示了我:
var this_page = "home";
但如果我查看控制台选项卡中的 GET,Firebug 会显示:
var this_page = "about";
这是正确的,但调试显示“this_page”设置为“home”。 我也试过了:
{% ifnotequal this_page "home" %}
do some javascript
{% endifnotequal %}
但这也不能正常工作。
我做错了什么?
编辑:仅当我通过链接访问此页面时才会出现此问题。如果我直接访问“关于”页面,我没有这个问题。
在 Ubuntu、Firefox 6.0.2、'runserver' 上测试
【问题讨论】:
-
您是说
{{ this_page }}输出“home”但{% ifequal this_page "home" %}foo{% endifequal %}不打印foo? html和javascript是否在同一个文件中?您是否 100% 确定将变量传递到这些模板中? -
@Yuji:是的,javascript 部分和 html 在一个文件中。我发现在“关于”页面上,如果我在 javascript 部分中有
{% ifequal this_page "home" %}foo{% endifequal %},则会打印“foo”(不正确),而在 html 部分中,它不是(正确的)。我认为,这与浏览器有更多关系,因为这没有任何意义。但我不知道。
标签: python django jquery-mobile django-templates