可以使用django-tables2在表中创建动态列吗?我有一个模型,它包含必须在表中的所有列,并且应该在列下的数据都有一个到列的外键。
class Data(models.Model):
data = models.CharField()
column = models.ForeignKey(Column)
user = models.ForeignKey(User)
class Column(models.Model):
header = models.CharField()所以表的最左边的列应该是User,后面的列应该都是Column.objects.all()中的列,那么数据就在它的外键所指向的列对象下。
希望你能帮上忙!
发布于 2020-03-17 02:55:22
如果要在运行时而不是在编程时指定表的列,可以使用下面的类:
tables.py
import django_tables2 as tableslib
class DynamicColumnsTable(tableslib.Table):
def __init__(self, *args, column_specs=(), **kwargs):
bc = type(self.base_columns)(self.base_columns) # clone
for name, column in column_specs:
self.base_columns[name] = column
tableslib.Table.__init__(self, *args, **kwargs) # refers to static spec
type(self).base_columns = bc # restore static spec示例用法:
views.py
import django.shortcuts as shortcuts
import django_tables2 as tableslib
def test(request):
data = [
{"name": "Bobo"},
{"name": "Gogo"},
]
djtable = DynamicColumnsTable(column_specs=( ('name', tableslib.Column()), ),
data=data)
return shortcuts.render(request, 'test.html', {'djtable': djtable})发布于 2014-06-15 18:36:49
该表应如下所示:
class ABC(tables.Table):
user= tables.Column(accessor='user.username')
column= tables.Column(accessor= 'column.header')
data= tables.Column(accessor='data')
class Meta:
model = Data
sequence= ('user', 'column', 'data')详情:http://django-tables2.readthedocs.org/en/latest/#specifying-alternative-data-for-a-column
https://stackoverflow.com/questions/24224209
复制相似问题