Django Query设置为distinct并排除在一起

时间:2017-01-23 08:35:35

标签: python django django-queryset

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

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

result-> QuerySet [22]

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

result-> QuerySet [13,15,22]

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

1 个答案:

答案 0 :(得分:2)

您应该在调用distinct之前进行排除,同时避免根据用户名排除不必要的__in

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