2010-09-23 24 views
1

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

我很好奇这是什么wpuld做到这一点的聪明方式,删除和重新保存所有输入数据或比较每个数据并保存编辑/新字段&实体。

我想介绍一下,我使用postgres来保存这些值,并在此表单中显示大约20个条目。

回答

11

QuerySet对象具有update()方法 - 它在ie中使用。管理面板用于批量更新更改列表中的多个选定对象。这里是方法参考django's official documentation

如何使用它:

只是要更新(assumng是为MyModel有场名为 'my_field')的模型创建查询集:

qs = MyModel.objects.all() 
qs.update(my_field=value) 

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

至于'通过表单添加字段' - 我不知道我是否正确?您想要添加其他相关模型还是将字段动态添加到数据库上的模型表中?

如果你想添加相关的模型,然后使用InlineFormset(http://docs.djangoproject.com/en/dev/topics/forms/modelforms/#inline-form) - 它很容易处理。 否则,您必须将字段添加到模型'_meta,如下所述:How dynamic add custom field to model

+0

非常感谢您指出必需品! – Hellnar 2010-09-27 10:55:17