0

我对 django 和 python 比较陌生,最近我一直在努力for loop解决我的模板列表视图中的问题。因此,我生成了一个普通列表视图,然后添加data到我的上下文处理器中。data看起来像这样:

data = [
({'map_b': u'britney'}, {'map_s': u'rock'}, {'map_u': u'http://bhc.com/'}), 
({'map_b': u'britney'}, {'map_s': u'pop'}, {'map_u': u'http://hjgjkpop.com'})
({'map_b': u'britney'}, {'map_s': u'sport'}, {'map_u': u'http://hjgjksp.com'})
({'map_b': u'britney'}, {'map_s': u'default'}, {'map_u': u'http://hjgjkde.com'})
({'map_b': u'kate perry'}, {'map_s': u'rock'}, {'map_u': u'http://kpbhc.com/'}), 
({'map_b': u'kate perry'}, {'map_s': u'pop'}, {'map_u': u'http://kphjgjkpop.com'})
({'map_b': u'kate perry'}, {'map_s': u'sport'}, {'map_u': u'http://kphjgjksp.com'})
({'map_b': u'kate perry'}, {'map_s': u'default'}, {'map_u': u'http://kphjgjkde.com'})
({'map_b': u'bon jovi'}, {'map_s': u'default'}, {'map_u': u'http://bjkphjgjkde.com'})
]

现在,在我的模板中,我想根据我的列表视图data中的值检查上述值。object_list为此,我做了这样的事情:

{% for i in object_list %} # i contants i.b, i.s and i.o

    {% for b, s, u in data %}
        {% if b.map_b|lower in i.b|lower and s.map_s|lower in i.s|lower %}
    <a class="lead" href="{{u.map_u}}" rel="nofollow">
        [{{i.b}}] {{i.s|title|truncatechars:100}}
    </a>
    <h5># Fun Fact: {{ i.o|truncatechars:100 }} @ {{i.b}}</h5>
        {% endif %}
    {% endfor %}

{% endfor %}

所以,我想要做的是,检查if b.map_b is in i.band if s.map_s in i.s,然后显示u.map_u. 它工作正常,但我想添加一个附加条件,如果它无法获取b.map_b and s.map_s to match i.b and i.s,则显示u.map_u对应于i.b and "default"总之,我想在map_u找不到上述内容时使用“默认”值。

我无法看到如何实现这一目标 - 我将不胜感激任何有关这方面的指导。

我希望我已经很好地解释了这个问题 - 但也许不是:(

4

0 回答 0