2016-09-22 8 views
0

django-tables2で外部値の列タイトルを変更するにはどうすればよいですか?私はデフォルトを上書きしたいdjango-tables2:外部キー列のデフォルトの列タイトルを変更する

モデル

class Employer(models.Model): 
    name = models.CharField(verbose_name='Name', max_length=16) 

class Employee(models.Model): 
    name = models.CharField(verbose_name='Name', max_length=16) 
    employer = models.ForeignKey(Employer, verbose_name='Employer') 

class EmployeeTable(tables.Table) 
    class Meta: 
     model = EmployeeTable 
     fields = ('name', 'employer.name') 

出力

Name | Name 
Bill | Steve 

列ヘッダーを使用してより意味のある情報を提供します。

優先出力

Employee name | Employer name 
Bill   | Steve 

表(動作しない)

class EmployeeTable(tables.Table) 
    name = tables.Column(verbose_name='Employee name')   # <-- Works! 
    employer.name = tables.Column(verbose_name='Employer name') # <-- Doesn't work! 
    class Meta: 
     model = EmployeeTable 
     fields = ('name', 'employer.name') 

答えて

0

私は解決策を見つけました。 Accessorを使用する必要があります。

from django_tables2.utils import Accessor 

class EmployeeTable(tables.Table) 
    name = tables.Column(verbose_name='Employee name') 
    employer_name = tables.Column(verbose_name='Employer name', orderable=False, accessor=Accessor('employer.name')) 
    class Meta: 
     model = EmployeeTable 
     fields = ('name', 'employer_name') 
関連する問題