>我有一个模型
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 将更改异步发布到您创建的某些终结点,或者将整个表包装在一个表单中。