Как правильно добавить два сложных утверждения в queryset.filter в Django?
Я фильтрую свой набор представлений статей на Django. Код ниже работает нормально,
from django.contrib.auth.models import User
from rest_framework.authtoken.models import Token
from rest_framework import serializers, viewsets,filters
from rest_framework.permissions import IsAuthenticated
from rest_framework import generics
from url_filter.integrations.drf import DjangoFilterBackend
class ArticleFilterBackEnd(filters.BaseFilterBackend):
def filter_queryset(self, request, queryset, view):
return queryset.filter(
article__author__followers__author=request.user
)
Но я также хочу использовать queryset.exclude()
внутри того же цикла и фильтра, где
article__author__followers__issilent= True
when находится в одном цикле с request.user
, поэтому он не указывает ни на какой другой цикл-последователь.
Как я могу это сделать?
Вы можете использовать filter
вместо exclude
:
from django.contrib.auth.models import User
from rest_framework.authtoken.models import Token
from rest_framework import serializers, viewsets,filters
from rest_framework.permissions import IsAuthenticated
from rest_framework import generics
from url_filter.integrations.drf import DjangoFilterBackend
class ArticleFilterBackEnd(filters.BaseFilterBackend):
def filter_queryset(self, request, queryset, view):
return queryset.filter(article__author__followers__author=request.user, article__author__followers__issilent=False)