我有一个对象列表,并希望返回另一个属性

时间:2017-07-26 10:10:50

标签: django

如果我的对象是 {(title: 'one', content: 'foo'), (title: 'two', content: 'bar')} 我如何将'for'和'bar'加入到我的模板中?

这样的事情:

{% for content in content_list where content.title='one'}
{{ content.content }}

导致'foo'。

{% for content in content_list where content.title='two'}
{{ content.content }}

导致'bar'。

2 个答案:

答案 0 :(得分:2)

试试这个 -

{% for content in content_list %}
    {% if content.title == 'two' %}
        {{ content.content }}
    {% else %}
        {{ content.content }}
    {% endif %}
{% endfor %}

注意:仅当列表很小

答案 1 :(得分:0)

如果要将内容拆分为列,只需为每种对象创建一个列表并迭代它们。

在您看来,做这样的事情:

l1 = [(title: 'one', content: 'foo'),] # All the objects with title 'one'
l2 = [(title: 'two', content: 'bar'),] # All the objects with title 'two'
context = {'content_list1': l1, 'content_list2': l2}

并在你的html迭代每个列表:

{% for content in content_list1 %}
{{ content.content }}
{% endfor %}

{% for content in content_list2 %}
{{ content.content }}
{% endfor %}

我希望你能找到的是什么。