Django-tables2 - dynamically adding columns to table - not adding attrs to table tag in html

强颜欢笑 提交于 2019-12-05 03:55:55

First of all, meta options are not inherited in django-tables2. So you may check the workarounds discussed in the issue to see if something fits or you can manuall add a Meta class to your dynamic table. To do that, you can your define_table method like this:

def define_table(roles):
  attrs = dict((r.name, tables.Column() for r in roles)
  attrs['Meta'] = type('Meta', (), dict(attrs={"class":"paleblue", "orderable":"True", "width":"100%"}) )
  return klass

Oops after more than two years I noticed that there was an error in my code -- I'd forgotten to include the line klass = type('DynamicTable', (ClientsTable,), attrs) before return klass above. I'm, adding it now for completeness.

For anyone looking for this now, from django-tables2 1.10 you add columns dynamically to a table by passing extra_columns to the Table constructor.

extra_columns should be a list of tuples, defining a column name and a Column object, eg.

class MyTable(Table):
    static_column = Column()

mytable = MyTable(extra_columns=[('dynamic_column', Column())]

See the API documentation at: http://django-tables2.readthedocs.io/en/latest/pages/api-reference.html#django_tables2.tables.Table

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!