django-tables2 复选框列名称

3 投票
1 回答
5088 浏览
提问于 2025-04-18 09:06

我用django-tables2创建了一个表格输出,但我想给表格中的复选框列起个特定的名字。

我该怎么做呢?

下面是我用来绘制表格的类,我已经调整了列的顺序,让复选框列排在第一位。

class SimpleTable(tables.Table):
    amend = tables.CheckBoxColumn(verbose_name=('Amend'), accessor='pk')

    class Meta:
        model = SysimpReleaseTracker
        attrs = {"class": "paleblue"}
        listAttrs = list()
        listAttr = list()
        listAttrs = SysimpReleaseTracker._meta.fields

        listAttr.append('amend')
        for x in listAttrs:
            listAttr.append('%s' %x.name)
        sequence = listAttr

1 个回答

8

CheckBoxColumn 这个东西在显示表头的时候有自己独特的方式,所以它不会像其他列那样显示 verbose_name。不过,你可以通过创建一个新的类来继承 CheckBoxColumn,这样就可以改变它的行为。

class CheckBoxColumnWithName(tables.CheckBoxColumn):
    @property
    def header(self):
        return self.verbose_name

class SimpleTable(tables.Table):  
    amend = CheckBoxColumnWithName(verbose_name="Amend", accessor="pk")

另外,你也可以使用 TemplateColumn

class SimpleTable(tables.Table):  
    amend = TemplateColumn('<input type="checkbox" value="{{ record.pk }}" />', verbose_name="Amend")

撰写回答