0
我有這些模型建立:Django的模板雙列表
class Bar:
name = models.CharField()
foos = models.ManyToManyField(
through='FooBar'
through_fields=('bar','foo')
)
class Foo:
name = models.CharField()
class FooBar:
foo = models.ForeignKey(Foo)
bar = models.ForeignKey(Bar)
value = models.DecimalField()
我試圖做一個雙列表顯示每個酒吧,其FOOS的價值,而n/a。如果酒吧沒有這個Foo的價值。
這就是我想要它看起來像:
[Foo1] [Foo2] [Foo3]
[Bar1] 4 n/a n/a
[Bar2] 3 n/a 9
[Bar3] n/a 1 n/a
這是我的代碼有:
<tr>
{%for foo in foo_list%}
<th>{{foo.name}}</th>
{%endfor%}
</tr>
{%for bar in bar_list%}
<th>{{bar.name}}</th>
{%for foo in foo_list%}
{%for foobar in bar.foobar_set.all%}
{%if foobar.foo == foo%}
<td>{{foobar.value}}</td>
{%endif%}
{%endfor%}
{%endfor%}
</tr>
{%endfor%}
我無法弄清楚如何檢查是否foobar的對應美孚。
我可以做到這一點與for i in range(0,foo_list.count())
和混亂i
,但我不能在Django模板語言中做到這一點。
在您的視圖中創建數據會更好。創建一個包含所有Foo和一個行列表的標題,以及關於Bar/Foo關係的所有數據。邏輯在視圖或模型中更好。不在模板中。 – Wilfried
這基本上是我做的。只有我把它放在標籤中而不是視圖中 – pocpoc47