Django查询集更新字段增加/减少其当前值

发布于 2024-09-18 15:04:44 字数 487 浏览 1 评论 0原文

我正在尝试更改树中节点的顺序。一切正常,但我想知道是否有一些漂亮、简单的方法可以通过将多个字段的实际值增加 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)

那么...有类似的东西吗?通过谷歌搜索,我的脑海或屏幕上什么也没有出现。

谢谢你的半点帮助!

I am trying to change order of nodes in my tree. Everything works fine, but I would like to know if there is some beautiful, easy way of updating multiple fields by increasing its actual value by 1. Let me illustrate.

Objtree.objects.select_related().filter(pk__in = ids).update(sort_order = 1)

This code will change every sort_order column value to 1, but I would like to change it to something like:

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)

So... is there something like that? Nothing comes to my mind or my screen via googling.

Thanks for halp!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

╰◇生如夏花灿烂 2024-09-25 15:04:44

您想要使用 F() 对象。

from django.db.models import F
Objtree.objects.filter(pk__in=ids).update(sort_order=F('sort_order')+1)

请参阅文档< /a>

You want to use F() objects.

from django.db.models import F
Objtree.objects.filter(pk__in=ids).update(sort_order=F('sort_order')+1)

See the documentation

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文