带有复选框预填充值的Django-Tables2

时间:2020-10-13 20:11:13

标签: django django-tables2

我正在尝试使用django-tables2预渲染已选中的复选框,但无法成功实现。

这是我的table.py文件。 id是我需要存储的字段,因为它用于更新数据库,在表单提交时将selected字段设置为true。如何获得checked参数来与此配合使用并正确引用selected字段?

class SomeTable(tables.Table):
    add = tables.CheckBoxColumn(accessor='id',checked='selected')

    class Meta:
        model = SomeModel
        template_name = "django_tables2/bootstrap.html"
        fields = ['name','add']

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以通过使用Table.render_foo method来实现此目的,如果出现以下情况,它将覆盖渲染:

from django_tables2.utils import AttributeDict

class SomeTable(tables.Table):
    add = tables.CheckBoxColumn(empty_values=())

    def render_add(self, value, bound_column, record):
        default = {"type": "checkbox", "name": bound_column.name, "value": record.id}
        general = self.attrs.get("input")
        specific = self.attrs.get("td__input")
        attrs = AttributeDict(default, **(specific or general or {}))
        return mark_safe("<input %s/>" % attrs.as_html())

    class Meta:
        model = SomeModel
        template_name = "django_tables2/bootstrap.html"
        fields = ['name','add']