Django反向关系

时间:2015-05-10 10:43:31

标签: python django

我在大部分时间设法让我的Django,但我仍然在做一个模式,我确信有更好的方法,但我可以阅读相关问题&#39找到适合我的解决方案。它是一个简单的反向关系查找,然后在模板中循环:

items_a = ItemA.objects.filter(foo='bar')
for item in items_a:
    items_a.items_b = ItemB.objects.filter(item_a=item_a)

然后我在模板中使用了这个循环

项目A 1

  • 项目B 1
  • 项目B 2

项目A 2

  • 项目B 3
  • 项目B 4

帮助!

1 个答案:

答案 0 :(得分:2)

您不需要在循环中填充items_b属性。改为使用backward relationships

items_a = ItemA.objects.filter(foo='bar')

在模板中:

{% for item in items_a %}
    <h2>{{ item }}</h2>
    <ul>
    {% for item_b in item.itemb_set.all %}
        <li>{{ item_b }}</li>
    {% endfor %}
    </ul>
{% endfor %}