Django如何将tableCheckBoxColumn链接到数据库条目

时间:2019-01-14 00:40:04

标签: django django-tables2

我有一个模特

class MyModel(models.Model):
    enabled = models.BooleanField(default=False)
    col_1 = model.CharField(max_length=20)
    col_2 = model.CharField(max_length=20)
    ...

和一张桌子

class MyTable(table.Tables)
    enabled = tables.CheckBoxColumn(accessor='enabled')
    col_1 = tables.Column()
    col_2 = tables.Column()
    ...

在我看来,我稍后将queryset作为数据框使用,对其进行处理并呈现它们

def index(request):

    context = dict()
    template = 'myindex/index.html'

    entries= MyModel.objects.all()
    df = dpd.read_frame(entries)
    ...
    do stuff with df
    ...
    context['my_table'] = MyTable(df.to_dict(orient='records'))

return render(request, template, context)

然后我渲染哪个

{% load django_tables2 %}
<html>
    <body>
        {% render_table table %}
    </body>
</html>

当寻找复选框时,我正在寻找一种更新数据库的方法。 到目前为止,这些复选框甚至都没有从数据库中获取值,而是全部未选中。

有什么指针可以实现这一目标?

谢谢

1 个答案:

答案 0 :(得分:1)

docs on CheckboxColumn清楚地说明了它的预期结果:

  

您可能希望您可以在渲染的>表中选择多个复选框,然后执行一些操作。未实现此功能。如果您希望实际发生某些事情,则需要自己实施。

因此,如果设法将它们呈现为与某些db值相对应的状态,则仍然需要实现更改后的值的所有持久性。

这样做可能需要一些自定义JavaScript将更改异步发布到您创建的某个端点,或者将整个表包装成表格。