【发布时间】:2018-08-15 21:52:24
【问题描述】:
假设我有两个模型,一个带有属性:
class Name(models.Model):
name = models.CharField()
class Name_ID(models.Model):
name_id = models.IntegerField()
@property
def object_name(self):
try:
return Name.objects.get(id=self.name_id)
except Name.DoesNotExist:
return ''
然后我尝试使用 django-tables2 为 Name_ID 模型创建一个表:
class NameIDTable(tables.Table):
object_name = tables.Column()
class Meta:
model = Name_ID
row_attrs = {'data-id': lambda record: record.pk}
exclude = ('name_id',)
attrs = {'class': 'table table-striped', 'style': 'display: block; overflow: auto;'}
该表成功显示了包含属性中所有值的 object_name 列。但是,当我尝试单击它的列标题以便按名称对其进行排序时,我收到错误消息,因为“object_name”不是 Name_ID 模型中的实际字段。我发现的许多解决方案都不起作用,因为它们假设您使用的是模型本身的字段,而不是来自外部模型的查询。如何使表可以通过 object_name 属性排序?
【问题讨论】:
标签: python django django-tables2