【发布时间】:2015-05-28 05:37:19
【问题描述】:
我通过ForeignKey拥有多对多的django模型:
class A(m.Model):
id = m.AutoField(primary_key=True)
name = m.CharField(max_length=250, unique=True, null=False)
def __str__(self):
return self.name
class B(m.Model):
id = m.AutoField(primary_key=True)
name = m.CharField(max_length=250, unique=True, null=False)
a = m.ForeignKey(A)
def __str__(self):
return self.name
class C(m.Model):
id = m.IntegerField(null=False, unique=True, primary_key=True)
name = m.CharField(max_length=250, unique=True, null=False)
bs = m.ManyToManyField(B, through='D')
def __str__(self):
return '%d, %s, (%s), (%s)' % (
self.id,
self.name,
', '.join(b.name for b in self.bs.all()),
', '.join(b.a.name for b in self.bs.all()))
)
class D(m.Model):
c = m.ForeignKey(C)
b = m.ForeignKey(B)
class Meta:
unique_together = ('c', 'b')
来自模型 C 的 django-tables2:
class CTable(tables.Table):
class Meta:
model = C
观看次数:
def C(request):
data = C.objects.all()
c_table = t.CTable(data)
return render(request, 'c.html', {'c_table': c_table})
在 c.html 中:
...
{% render_table c_table %}
...
我得到的表只有两列(id、name)而不是四列(id、name、b.name、b.a.name)。 如何从多到多获取缺失的列? 对不起我糟糕的英语。
【问题讨论】:
标签: python django many-to-many foreign-key-relationship django-tables2