2016-09-22 2 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')