【问题标题】:Django Query set with distinct and exclude togetherDjango Query 集与 distinct 和 exclude 一起
【发布时间】:2017-06-07 16:58:25
【问题描述】:

我想向之前在请求中发表评论的用户发送通知。因此,为了这个目的,我必须找到不同的用户并从该列表中排除当前的评论者(用户)ID。

object_id_list = ScAns.objects.filter(username=username).values_list('id',flat=True)

结果-> 查询集 [22]

actionUsers = ScAnsAction.objects.filter(req_id=request_id).values_list('user_id',flat=True).distinct().exclude(id__in=object_id_list)

结果-> QuerySet [13, 15, 22]

最终结果不应包含 22。它应该给出 [13,15]

【问题讨论】:

  • 您是否尝试过在 distinct 之前进行排除? (你也可以通过 exclude(username=username).. 来避免 __in)
  • 谢谢,有帮助

标签: python django django-queryset


【解决方案1】:

您应该在调用 distinct 之前进行排除,此外,为了避免不必要的 __in,您可以根据用户名排除。

actionUsers = ScAnsAction.objects.filter(req_id=request_id)).exclude(username=username).values_list('user_id',flat=True).distinct()

【讨论】:

    猜你喜欢
    • 2016-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-30
    • 2017-02-16
    • 1970-01-01
    • 2013-04-09
    • 1970-01-01
    相关资源
    最近更新 更多