我正在使用Django Tables 2从对象列表中显示一些信息,包括带有相关对象的列。我正在尝试更改显示相关对象的列中显示的文本。
我的对象是:
工作
class Job(StatusModel):
'''
Model for jobs
'''
STATUS = statuses.JOB_STATUS
start_time = models.DateTimeField(_('time'), default=timezone.now)
pickup_address = models.TextField()
...
destination_address = models.TextField()
...
drivers = models.ManyToManyField(
'Drivers.Driver',
blank=True,
)
...
class Meta:
verbose_name = _('job')
verbose_name_plural = _('jobs')
ordering = ('start_time',)
def __str__(self):
return self.start_time.strftime('%d/%m/%y %H:%M') + ' from ' + self.pickup_address
def get_absolute_url(self):
return reverse('job_view', args=[str(self.id)])
...
驱动程序
class Driver(StatusModel):
...
current_job = models.ForeignKey(
Job,
on_delete=models.CASCADE,
blank=True,
null=True,
verbose_name=_('Current Job'),
related_name='current_job'
)
...
def __str__(self):
return self.user.get_full_name()
...
我的桌子:
class DriverStatusListTable(tables.Table):
user = tables.Column(linkify=True, verbose_name=_('Driver'))
...
current_job = tables.Column(linkify=True)
class Meta:
model = Driver
...
我希望“ current_job”列显示与Job对象的返回__str__
表示形式不同的文本-即:Job.start_time.strftime('%H:%M') + ' to ' + Job.destination_address,
但是如果不更改Job对象上的__str__
方法,我将无法解决该问题。
有什么想法吗?
写入Table.render_foo
以自定义值输出。示例: