我对 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.b
and 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
找不到上述内容时使用“默认”值。
我无法看到如何实现这一目标 - 我将不胜感激任何有关这方面的指导。
我希望我已经很好地解释了这个问题 - 但也许不是:(