Django TemplateSyntax:使用'If ..或......'进行两次测试

时间:2011-07-05 14:53:34

标签: django django-templates

我正在尝试进行两项测试:

{%if profile.id!= 100或profile.location == NULL%}

然而,它似乎不起作用。我在文档中找不到为什么这不起作用。有什么想法吗?

编辑:

在SQL db中,profile.location的值为NULL。渲染结果为None。

编辑2:

这是完整的链条。有4种方法可以获取用户的位置。你可以看到这是一个巨大的混乱......

    {% if profile.city.id != 104 or profile.city %}
        {{profile.city}}
    {% else %}
        {% if profile.mylocation != '' %}
            {{ profile.mylocation }}
            {% else %}
                {% if profile.fbconnect == 1 and profile.location != '' and profile.location != "None" %}
                    {{profile.location}}
                {% else %}
                    {% if profile.sglocation.city %}{{profile.sglocation.city}}{% else %}{{profile.sglocation.country}}{% endif %}
                {% endif %}
            {% endif %}
    {% endif %}

2 个答案:

答案 0 :(得分:0)

没有NULL。尝试:

{% if profile.id != 100 or not profile.location %}

答案 1 :(得分:0)

如果我是你,我会把所有的逻辑都抛回到Python中,例如:

class Profile(models.Model):

    [your model fields and stuff]

    def get_location(self):
        [your location logic]

然后在模板中你可以做:

{{ profile.get_location }}