【问题标题】:How to remove duplicate values from QuerySet?如何从 QuerySet 中删除重复值?
【发布时间】:2019-09-22 04:26:32
【问题描述】:

我写

users = User.objects.filter(is_active=True, article_creator__in=articles)

我得到queryset

<QuerySet [<User: A>, <User: A>, <User: A>, <User: B>, <User: C>, <User: B>]>

如何删除重复值。我需要得到这个queryset

<QuerySet [<User: A>, <User: B>, <User: C>]>

【问题讨论】:

  • 试试filter(...).distinct()
  • 发生这种情况是因为加入文章。将此过滤器转换为Exists(&lt;articles subqyery&gt;)。顺便说一句,这个过滤器定义article_creator__in=articles 看起来像一个错误或命名错误的变量。因为articles(文章ID)的列表将应用于creators(创作者ID)。这似乎不一致。

标签: django django-orm


【解决方案1】:

您正在寻找.distinct()

所以你的新查询看起来像 -

users = User.objects.filter(is_active=True, article_creator__in=articles).distinct()

您可能还想查看this 的答案。

【讨论】:

    猜你喜欢
    • 2020-10-01
    • 2019-12-08
    • 2021-05-17
    • 2017-11-07
    • 1970-01-01
    • 1970-01-01
    • 2015-09-24
    • 2021-11-09
    相关资源
    最近更新 更多