首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django-tables2动态列

django-tables2动态列
EN

Stack Overflow用户
提问于 2014-06-15 04:53:30
回答 2查看 2.2K关注 0票数 0

可以使用django-tables2在表中创建动态列吗?我有一个模型,它包含必须在表中的所有列,并且应该在列下的数据都有一个到列的外键。

代码语言:javascript
复制
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()中的列,那么数据就在它的外键所指向的列对象下。

希望你能帮上忙!

EN

回答 2

Stack Overflow用户

发布于 2020-03-17 02:55:22

如果要在运行时而不是在编程时指定表的列,可以使用下面的类:

tables.py

代码语言:javascript
复制
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

代码语言:javascript
复制
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})
票数 1
EN

Stack Overflow用户

发布于 2014-06-15 18:36:49

该表应如下所示:

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24224209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档