我想在我的主页上自定义问候语,这是:
登录后输入名字:
约翰!你想去哪里?
否则:
你想去哪里?
这是我的模板:
{% if user.is_authenticated and not firstname_of_logged_user == None%}
<h1 class="text-center" id="extraglow">{{firstname_of_logged_user}}! where do
you want to go?</h1></label>
{%else%}
<h1 class="text-center" id="extraglow">where do you want to go?</h1></label>
{%endif%}
但是,它似乎没有选择“not None”部分,因为如果用户已登录但未输入名字,则显示如下:
!你想在哪里 去吗?
如果我说:
firstname_of_logged_user is not None
它说错误:
在表达式结束时未使用'是'。
看起来似乎很简单,但它不起作用。怎么了?干杯!
答案 0 :(得分:4)
您可以使用.settings .name {
text-align: left;
}
.settings .value {
text-align: center;
}
.settings .edit {
text-align: right;
}
运算符代替!=
。但是,事情可以进一步简化为:
not
以上内容将检查您的模板中{% if user.is_authenticated and firstname_of_logged_user %}
是否真实。
答案 1 :(得分:3)
自Django 1.10(release notes)以来,if模板标记已支持is
运算符。
您现在可以{% if x is None %}
和{% if x is not None %}
。
答案 2 :(得分:2)
不支持is
运算符。只需使用{% if var != None %}
即可。这不完全相同,但对大多数情况来说已经足够了。
如果您确实想使用is
运算符,则必须将其实现为自定义模板标记。
例如:
@register.filter
def is(lhs, rhs):
return lhs is rhs
因此,您将能够将其用作:
{% if var1|is:var2 or not var3|is:var4 %}
...
{% else %}
...
{% endif %}