【发布时间】:2013-03-20 14:46:33
【问题描述】:
我正在尝试在 Django (python) 中以特定顺序一次更新所有对象的位置字段。
我现在就是这样做的,但问题是它会产生大量查询。
servers = frontend_models.Server.objects.all().order_by('-vote_count')
i = 1
for server in servers:
server.last_rank = i
server.save()
i += 1
有没有办法更新
Model.objects.all().order_by('some_field').update(position=some_number_that_changes_for each_object)
谢谢!
【问题讨论】:
-
您想为每个对象增加传递的数字吗?
-
django 查询 api 没有 windows functions (我认为)。如果您的 RDBMS 具有此功能,您应该执行 custom sql directly。