合并两个django queryset,而无需更改订单

发布于 2025-01-25 18:52:07 字数 242 浏览 4 评论 0原文

我需要对QuerySet进行两种不同的过滤。 QS1 = QS.Filter(name = value) QS2 = QS.Filter(Equipment_set__name = value)

然后,我需要在不更改订单的情况下连接它们,就像创建它们一样。

qs_result =< querySet [< qs1>,qs2>,]

I need to do two different filtering to the queryset.
qs1 = qs.filter(name=value)
qs2 = qs.filter(equipment_set__name=value)

Then I need to connect them without changing the order, just like they were created.

qs_result = <QuerySet [<qs1 >, <qs2>,]

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

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

发布评论

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

评论(2

岁月流歌 2025-02-01 18:52:07

您可以与 .Union(…) &nbsp; [django-doc]

qs_result = qs1.union(qs2, all=True)

这可以多次产生相同的项目。为了防止这种情况,您删除all = true

qs_result = qs1.union(qs2)  # without duplicates

You can work with .union(…) [Django-doc]:

qs_result = qs1.union(qs2, all=True)

This can yield the same item multiple times. To prevent that, you remove all=True:

qs_result = qs1.union(qs2)  # without duplicates
小…红帽 2025-02-01 18:52:07

您可以使用|操作员可以合并两个查询而不更改QuerySet中的实例顺序,

queryset_1 = A.objects.filter(id__in=[2, 5])
queryset_2 = A.objects.filter(id__in=[3, 4])

queryset_3 = queryset_1 | queryset_2

您也可以稍后过滤。

You can use | operator to merge two queries without changing the order of instances in queryset

queryset_1 = A.objects.filter(id__in=[2, 5])
queryset_2 = A.objects.filter(id__in=[3, 4])

queryset_3 = queryset_1 | queryset_2

You can also filter on it later.

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