Python 如何使用两个参数排除django中的查询集

Python 如何使用两个参数排除django中的查询集,python,django,django-rest-framework,Python,Django,Django Rest Framework,我对django的看法如下: class ExploreListingView(generics.ListAPIView): serializer_class = ListingSerializer permission_classes = [permissions.IsAuthenticated] def get_queryset(self): return Listing.objects.exclude(user=self.request.user,

我对django的看法如下:

class ExploreListingView(generics.ListAPIView):
    serializer_class = ListingSerializer
    permission_classes = [permissions.IsAuthenticated]

    def get_queryset(self):
        return Listing.objects.exclude(user=self.request.user, claimed=True)

我期望的结果是过滤掉所有分配给当前用户并被声明的列表,但是过滤器不起作用,但是当我删除任何一个参数时,它都可以正常工作。如何排除它,以便可以使用多个参数。

事实证明,我所要做的就是链接排除方法,
列出.objects.exclude(user=self.request.user)。exclude(claid=True)

选择字段user等于self.request.user且声明为True的条目

您可以使用:

Listing.objects.filter(user=self.request.user).exclude(claimed=True)
两种方式都可以,但第一种方式是明确的代码。

由“AND(&)”操作员:

from django.db.models import Q
    Listing.objects.filter(Q(user=self.request.user) & Q(claimed=True))

这里排除
列表
s,因为列表是用户的,并且
声明=True
(因此,如果两个条件都适用)。我有两个条件都适用的列表,但它们仍然可以在查询集中看到。
from django.db.models import Q
    Listing.objects.filter(Q(user=self.request.user) & Q(claimed=True))