0
我在django查询集中使用排除链,但它没有正确排除。Django查询集中的多个排除
skipped_questions = QuestionSkipped.objects.filter(user=request.user)
Question.objects.exclude(Q(id__in=skipped_questions) | Q(created_by=request.user))
两个Q参数单独工作正常,但是当我加入他们或只过滤Q(created_by=request.user)
我也试过双双跌破,但没有任何工作。
Question.objects.exclude(id__in=skipped_questions, created_by=request.user)
Question.objects.exclude(id__in=skipped_questions).exclude(created_by=request.user)
在这种情况下使用多重排除的正确方法是什么?
确定,即'Question.objects.exclude(id__in = skipped_questions).exclude(CREATED_BY = request.user)'不给需要的结果呢?根据[文档](https://docs.djangoproject.com/en/dev/ref/models/querysets/#django.db.models.query.QuerySet.exclude),在这种情况下,应用'OR'运算符。 – stalk 2014-10-01 13:32:36
你想要什么:“排除用户创建的跳过的问题”,或“排除所有跳过的问题,并排除用户创建的所有内容”?由于你的两个选项做不同的事情。 – michaelb 2014-10-01 13:52:58
您必须获取跳过的项目ID列表。 skipped_questions = QuestionSkipped.objects.filter(user = request.user).values_list('id',flat = True) – 2014-10-01 17:37:30