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