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か?CompCountry


アップデート

元の質問を間違えたので、更新しました。

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',)

私はそのアプリを使用したことがないので、どのように機能するかはわかりませんが、各フィールドの詳細な名前を取っていると思います.後の2つのケースでは、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')
于 2013-05-10T11:37:53.263 に答える