Django:模板中if条件的问题

use*_*291 2 python django templates if-statement lang

我想根据当前的语言代码打印一些东西.为此,我做了这样的事情:

{% if request.LANGUAGE_CODE == en %}
    <h1>English</h1>
{% endif %}
Run Code Online (Sandbox Code Playgroud)

但是这个if条件不能比较当前的语言代码.但是,如果我{{request.LANGUAGE_CODE}}在同一页面打印它然后它将打印en为语言代码,但我的if条件不起作用,我不知道为什么?

Sam*_*zzo 5

LANGUAGE_CODE是一个字符串,所以你只需要像这样引用你的比较值:

{% if request.LANGUAGE_CODE == 'en' %}
    <h1>English</h1>
{% endif %}
Run Code Online (Sandbox Code Playgroud)

检查ifequal标签

{% ifequal request.LANGUAGE_CODE 'en' %}
    ...
{% endifequal %}
Run Code Online (Sandbox Code Playgroud)

更多一点:字符串上的if和ifequal区分大小写,因此您可能希望确保匹配正确的大小写(可能将| lower过滤器应用于两个参数)