【发布时间】:2021-10-24 07:09:40
【问题描述】:
我有一个使用分段库的 Django 项目,需要合并两个查询集并对生成的查询集进行重复数据删除,这让我不知道该怎么做。
not_segments = Page.objects.all().no_segments()(释义)为我提供了排除分段页面的页面。
only_segments = Segment.objects.get_queryset().for_user(user=user)(释义)为我提供了来自同一模型的分段页面对象,但当然有重叠。
not_segments = Page 1, Page 2, Page 3, Page 4
only_segments = Page 2 (for user), Page 4 (for user)
假设模型中有一个 guid 字段,它不是唯一的,而是在根页面和它的段子页面之间的值相同。如果only_segments 中存在具有相同guid 的对象,如何在合并两个查询集时比较它们并从not_segments 中省略对象?
得到queryset = Page 1, Page 2 (for user), Page 3, Page 4 (for user)的期望结果
【问题讨论】:
-
我是否正确理解
not_segments是Page对象的查询集,而only_segments是Segment对象的查询集? -
它们返回相同模型的对象,只是通过不同的中间方法到达不同的对象列表。
标签: django filter django-queryset