我使用django-tables
并试图显示一个包含一些相关字段的表。
class User(models.Model):
name = models.CharField(_("name"), max_length=100)
comp = models.ForeignKey(Company)
class Company(models.Model):
name = models.CharField(_("name"), max_length=100)
country = models.CharField(_("country"), max_length=200)
def __unicode__(self):
return self.name
class UserTable(tables.Table):
class Meta:
model = User
fields = ('name', 'comp', 'comp.country',)
empty_text = _('No user')
我得到了正确的数据,但Comp
在每个相关标题
+------+----------------+-----------------+
| Name | Comp | Comp |
+------+----------------+-----------------+
| Bob | Comp 1 | France |
| John | Comp 2 | United Kingdom |
| ... | ... | ... |
+------+----------------+-----------------+
原因是什么?
我不应该得到Name
, Comp
, Country
吗?
原题错误,我已经更新了
使用accessor
解析您的字段允许定义详细名称
class UserTable(tables.Table):
name = tables.Column(accessor='name', verbose_name=_('name'))
comp = tables.Column(accessor='comp', verbose_name=_('company'))
country = tables.Column(accessor='comp.country', verbose_name=_('country'))
From django-table
docs -
fields -指定包含
的模型字段
但是你包括了关系-
fields = ('user', 'user.pref.country', 'user.pref.phone',)
我从未使用过该应用程序,所以我不确定它是如何工作的,但我认为它是每个字段的详细名称,在后来的两种情况下,user
字段首先出现,因此它采取user
字段的详细名称。
似乎可以提供自定义的详细名称,试试这个。不确定这是否有效,因为国家是一个相关领域。-
class UserTable(tables.Table):
country = tables.Column(verbose_name="Country")
class Meta:
model = User
fields = ('name', 'comp', 'comp.country',)
empty_text = _('No user')