django-tables2复选框列名

时间:2014-06-09 09:37:22

标签: python django django-tables2

我用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 个答案:

答案 0 :(得分:5)

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")