我必须限制django ORM Model对象中要更新的记录数。
我试过了
CustomObject.objects.filter(column_x='XXX').update(column_y='YYY')[:10]
但更新时不允许切片。
并且不想单独获取id并使用这些id进行更新,因为记录的数量非常大(100万到8000万),对命中数据库感兴趣。
答案 0 :(得分:3)
使用嵌套查询:
nested_q = CustomObject.objects.filter(column_x='XXX')[:10]
CustomObject.objects.filter(pk__in=nested_q).update(column_y='YYY')
答案 1 :(得分:1)
我不认为这是可能的,因为对于id,您不必加载所有记录一次,加载切片,更新它然后下一个切片。见this example。