我正在尝试更改树中节点的顺序。一切正常,但我想知道是否有一些美丽,简单的方法来更新多个字段,方法是将其实际值增加1.让我说明一下。
Objtree.objects.select_related().filter(pk__in = ids).update(sort_order = 1)
此代码会将每个sort_order列值更改为1,但我想将其更改为:
Objtree.objects.select_related().filter(pk__in = ids).update(sort_order += 1)
# or
Objtree.objects.select_related().filter(pk__in = ids).update(self.sort_order = 1)
所以...有类似的东西吗?通过谷歌搜索没有任何东西出现在我的脑海或我的屏幕上。
感谢halp!
答案 0 :(得分:22)
您想使用F()
个对象。
from django.db.models import F
Objtree.objects.filter(pk__in=ids).update(sort_order=F('sort_order')+1)