Django:更新 X 数量模型的表单
Posted
技术标签:
【中文标题】Django:更新 X 数量模型的表单【英文标题】:Django: form that updates X amount of models 【发布时间】:2011-04-16 06:26:31 【问题描述】:我有一个页面,它显示过滤后的模型实例列表,并允许用户更新其中的某些字段或添加新字段作为表单。
我很好奇这样做的聪明方法是什么,删除并重新保存所有输入数据或对每个数据进行比较并保存编辑/新字段和实体。
我想提醒您,我使用 postgres 来保存这些值,并且我为此表单显示了大约 20 个条目。
【问题讨论】:
【参考方案1】:QuerySet 对象具有 update() 方法 - 它用于 ie。用于从更改列表批量更新多个选定对象的管理面板。这是django's official documentation的方法参考。
使用方法:
只需使用您要更新的模型创建查询集(假设 MyModel 具有名为“my_field”的字段):
qs = MyModel.objects.all()
qs.update(my_field=value)
就是这样 - 请记住 update() 方法不会像 save() 方法那样发送任何信号 - 它只会直接对数据库运行查询。
至于“通过表单添加字段” - 我不知道我是否正确?您想在数据库的模型表中添加额外的相关模型或动态添加字段吗?
如果您想添加相关模型,请使用 InlineFormset (http://docs.djangoproject.com/en/dev/topics/forms/modelforms/#inline-form) - 这很容易处理。 否则,您必须向模型的 _meta 添加字段,如下所述:How dynamic add custom field to model。
【讨论】:
以上是关于Django:更新 X 数量模型的表单的主要内容,如果未能解决你的问题,请参考以下文章