gpt4 book ai didi

python - Django icontains 多关系查询检索重复行

转载 作者:行者123 更新时间:2023-11-29 22:07:18 25 4
gpt4 key购买 nike

我有这个问题。我的 Django 应用程序模型中有 2 个对象,有标签,并且有包含多个标签的问题,这是一种多对多关系。我正在尝试使用 Q 对象创建一个查询,如下所示:

questions = questions.filter(Q(title__icontains=searchwords)
|Q(tags__name__icontains=searchwords))

此查询的结果可能会给我带来重复的行及其逻辑,因为第二个条件适用于问题中的每个标签,例如,如果我有一个带有 3 个标签“Pepe”、“Pepi”的问题”和“Jose”,搜索词是“pe”,然后查询将与“Pepe”和“Pepi”匹配,最后将返回与同一问题对应的 2 行。

所以我的问题是,如何避免重复的行? (不想使用distinct()),Django中有类似icontains的东西,但只与第一个Tag重合匹配。

好吧,我尽力解释了,抱歉我的英语不好。问候。

最佳答案

您需要使用 distinct(),如果您不使用 PostgreSQL,您还需要使用 order_by()

questions = questions.filter(
Q(title__icontains=searchwords)|Q(tags__name__icontains=searchwords)
).order_by('some_field').distinct()

关于python - Django icontains 多关系查询检索重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32031995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com