Django 如何将 tableCheckBoxColumn 链接到 DB 条目



>我有一个模型

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()
    ...

在我看来,我后来将查询集作为数据帧获取,对它们执行操作并呈现它们

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>

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

关于实现这一目标的好方法是什么的任何指示?

谢谢

CheckboxColumn上的文档对它的期望有一个非常明确的说明:

您可能希望可以在呈现的>表中选中多个复选框,然后对其进行操作。此功能未实现。如果你想让某件事真正发生,你需要自己实现它。

因此,如果您设法将它们呈现为与某个 db 值对应的状态,您仍然需要实现更改值的任何持久性。

这样做需要一些自定义 JavaScript 将更改异步发布到您创建的某些终结点,或者将整个表包装在一个表单中。

最新更新