【问题标题】:Django: form that updates X amount of modelsDjango:更新 X 数量模型的表单
【发布时间】:2011-04-16 06:26:31
【问题描述】:

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

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

我想提醒您,我使用 postgres 来保存这些值,并且我为此表单显示了大约 20 个条目。

【问题讨论】:

    标签: database django forms savechanges


    【解决方案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

    【讨论】:

      猜你喜欢
      • 2010-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-13
      • 1970-01-01
      • 2016-02-20
      • 1970-01-01
      • 2017-09-08
      相关资源
      最近更新 更多