django-tables2 CheckBoxColumn - 仅生成标题复选框

时间:2016-11-21 16:33:17

标签: python django checkbox django-tables2

我有一个基于对象列表生成的表,我想再显示一个列(checkboxcolumn),其值将根据我的对象中的某些数据进行设置。我尝试使用随django-tables2附带的CheckBoxColumn,但它只在我的标题中生成一个复选框,所有数据行都显示' - '(带空格的减号)。互联网上关于该特定列类型的信息非常少,因此我找不到任何解决此问题的方法。这是我的表格代码:

class MyTable(ScheduleTable):
    checkbox_column = CheckBoxColumn()

    class Meta:
        order_by = "-end"

我缺少什么?我尝试添加一些属性(如td_input,input或checked参数)但没有任何效果。

丹尼尔

3 个答案:

答案 0 :(得分:2)

在使用CheckBoxColumn但未传递任何参数时,我也遇到了此问题。我的表元素没有任何价值,只有<td>-</td>。对我来说解决的是传递访问器参数。

class MyTable(ScheduleTable):
    checkbox_column = CheckBoxColumn(accessor='pk')

答案 1 :(得分:0)

您是否应该使用表格模型来放置数据? 至于将传递给表的值,您可以使用args

from django_tables2.utils import A

class MyTable(ScheduleTable):
  checkbox_column = CheckBoxColumn(args=[A('pk')])

  class Meta:
      model = MyModel
      order_by = "-end"

答案 2 :(得分:0)

这也发生在我身上。当我检查单元格中缺少的框时,很明显它正在获取正确的html:

<input type="checkbox" name="select_box" value="59">

因此,我在Chrome开发者工具中摸索了CSS,发现由于高度和宽度而看不到它(我不确定为什么-不是CSS专家)。但是,一旦我将高度和宽度设置为自动或特定的px数量,便可以看到这些框。

在tables.py中,我向td__input attr添加了一个类。从文档中:

  

参数:           attrs(dict):除了~.Column支持的 attrs 键之外,               提供以下内容:

         - ``input``     -- ``<input>`` elements in both ``<td>`` and ``<th>``.
         - ``th__input`` -- Replaces ``input`` attrs in header cells.
         - ``td__input`` -- Replaces ``input`` attrs in body cells.

所以我这样添加了attrs

select_box = CustomCheckboxColumn(
    accessor ='index',
    attrs={
        'td__input': {'class':'checkbox_local'},
        },
)