[英]django-tables2 dynamic columns
是否可以使用 django-tables2 在表中創建動態列? 我有一個模型,其中包含必須在表中的所有列,並且應該在列下的數據都有一個列的外鍵。
class Data(models.Model):
data = models.CharField()
column = models.ForeignKey(Column)
user = models.ForeignKey(User)
class Column(models.Model):
header = models.CharField()
所以表的最左邊的列應該是用戶,接下來的列應該都是 Column.objects.all() 中的列,然后數據在它有外鍵的列對象下。
我希望你能幫忙!
如果要在運行時而不是在編程時指定表的列,可以使用以下類:
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
用法示例:
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})
該表應如下所示:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.