Django:更新X量模型的表单

Hel*_*nar 1 database forms django savechanges

我有一个页面,它显示一个过滤的模型实例列表,并允许用户更新它的某些字段或添加新的字段作为表单.

我很好奇wpuld是一个聪明的方法,删除和重新保存所有输入数据或对每个数据进行比较并保存已编辑/新的字段和实体.

我想提醒你,我使用postgres来保存这些值,并且我显示了这个表单的大约20个条目.

bx2*_*bx2 11

QuerySet对象具有update()方法 - 它在ie中使用.管理面板,用于批量更新更改列表中的多个选定对象.这是django官方文档中的方法参考.

如何使用它:

只需使用要更新的模型创建queryset(假设MyModel的字段名为'my_field'):

qs = MyModel.objects.all()
qs.update(my_field=value) 
Run Code Online (Sandbox Code Playgroud)

就是这样 - 记住update()方法不会发送像save()方法那样的任何信号 - 它只是直接向数据库运行查询.

至于"通过表格添加字段" - 我不知道我是否做对了?您想要添加其他相关模型还是将字段动态添加到数据库中的模型表中?

如果你想添加相关模型,那么使用InlineFormset(http://docs.djangoproject.com/en/dev/topics/forms/modelforms/#inline-form) - 它很容易处理.否则,您必须向模型'_meta添加字段,如下所述:如何动态添加自定义字段进行建模.