1

我正在使用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吗?


更新

原问题的错误,我已经更新了。

4

2 回答 2

2

用于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'))
于 2013-05-11T09:12:49.913 回答
1

django-table文档 -

fields – 指定要包含的模型字段

但是你包括关系-

fields = ('user', 'user.pref.country', 'user.pref.phone',)

我从来没有使用过那个应用程序,所以我不确定它是如何工作的,但我认为它采用了每个字段的详细名称,在后两种情况下,user字段首先出现,因此它采用user字段的详细名称。

更新:

看来您可以提供自定义详细名称,试试这个。不确定这是否可行,因为 Country 是一个相关领域。-

class UserTable(tables.Table):
    country = tables.Column(verbose_name="Country")

    class Meta:
        model = User
        fields = ('name', 'comp', 'comp.country',)
        empty_text = _('No user')
于 2013-05-10T11:37:53.263 回答