python - Django 查询集与 distinct 和 exclude 一起

标签 python django django-queryset

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

结果->查询集[13,15,22]

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

最佳答案

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

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

关于python - Django 查询集与 distinct 和 exclude 一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41802019/

相关文章:

python - Pandas - 在每一列上应用一个返回多个值的函数

python - 类型错误: expected string or buffer on sql query

python - 有没有更好的方法在 python 中执行 "unravel"函数?

python - 将 spark 数据框列传递给 geohash 函数 - pyspark。无法将列转换为 bool :

django - 查询集 Django 中的 min 函数可在模型中查找较早的日期?

python - 如果i引用的表中没有pk,如何创建新的pk

python - 如果上一个任务成功, celery 运行任务

django - 在 Django 模板中使用 JSON

python - Django 模板图像无法加载(重新发布)

python - 为什么 Django 应该尝试在字段查找中自动调用参数?