Django 如何 link tableCheckBoxColumn 到数据库条目
Django how to link tableCheckBoxColumn to DB entry
我有模型
class MyModel(models.Model):
enabled = models.BooleanField(default=False)
col_1 = model.CharField(max_length=20)
col_2 = model.CharField(max_length=20)
...
和一个table
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>
我正在寻找一种在单击复选框时更新数据库的方法。
到目前为止,复选框甚至没有从数据库中获取值,而是全部未选中。
关于实现此目标的好方法有什么建议吗?
谢谢
docs on CheckboxColumn
对它的期望有一个非常清楚的注释:
You might expect that you could select multiple checkboxes in the rendered > table and then do something with that. This functionality is not implemented. If you want something to actually happen, you will need to implement that yourself.
因此,如果您设法将它们呈现在与某个 db 值相对应的状态中,您仍然需要实现任何已更改值的持久化。
这样做要么需要一些自定义 JavaScript 将更改异步发布到您创建的某个端点,要么将整个 table 包装在一个表单中。
我有模型
class MyModel(models.Model):
enabled = models.BooleanField(default=False)
col_1 = model.CharField(max_length=20)
col_2 = model.CharField(max_length=20)
...
和一个table
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>
我正在寻找一种在单击复选框时更新数据库的方法。 到目前为止,复选框甚至没有从数据库中获取值,而是全部未选中。
关于实现此目标的好方法有什么建议吗?
谢谢
docs on CheckboxColumn
对它的期望有一个非常清楚的注释:
You might expect that you could select multiple checkboxes in the rendered > table and then do something with that. This functionality is not implemented. If you want something to actually happen, you will need to implement that yourself.
因此,如果您设法将它们呈现在与某个 db 值相对应的状态中,您仍然需要实现任何已更改值的持久化。
这样做要么需要一些自定义 JavaScript 将更改异步发布到您创建的某个端点,要么将整个 table 包装在一个表单中。