【问题标题】:Modifying an attribute for each object in a queryset修改查询集中每个对象的属性
【发布时间】:2010-11-02 02:36:47
【问题描述】:

我已经使用 Django 一年多了,但我认为我错过了一些非常基本的东西。我有一个相当大的查询集(1000 多个对象),我想为该查询集中的每个对象更改一个属性。这真的是要走的路吗?我确定有更简单的东西吗?

for obj in qs:
  obj.my_attr = True 
  obj.save()

谢谢

【问题讨论】:

    标签: django django-models attributes django-queryset


    【解决方案1】:

    您可以批量进行更改,尽管这不会触发模型的 save() 回调:

    MyModel.objects.filter(..).update(my_attr=True)
    

    文档:Updating multiple objects at once

    【讨论】:

    • 啊,我不敢相信我完全错过了“更新”方法!谢谢。
    • +1 - 虽然我认为您的“可能不会”可以更改为“不会”,对吧?
    • 是的,对不起,我是在找到文档之前写的。 :)
    猜你喜欢
    • 1970-01-01
    • 2015-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-26
    • 2013-05-17
    • 2021-01-02
    • 1970-01-01
    相关资源
    最近更新 更多