0
현재 ModelViewSet의 list 메서드를 재정의하고 filter_fields를 사용하고 있지만 필터가 목록보다 먼저 적용되므로 내 list 메서드가 쿼리 param에 의해 필터링되지 않습니다. 목록 메서드 다음에이 필터를 적용 할 수 있습니까? 나는이 URL http://localhost:8000/api/account/?country__name=Germany
를 사용하여 요청을 수행 할 때검색 방법 다음에 필터를 적용하는 방법은 무엇입니까?
class AccountViewSet(viewsets.ModelViewSet):
serializer_class = AccountSerializer
filter_fields = ('country__name')
filter_backends = (django_filters.rest_framework.DjangoFilterBackend,)
queryset = Account.objects.all()
def list(self, request):
if request.user.is_superuser:
queryset = Account.objects.all()
else:
bank_user = BankUser.objects.get(user=request.user)
queryset = Account.objects.filter(bank=bank_user.bank)
serializer = self.get_serializer(queryset, many=True)
return Response(serializer.data)
, 그것은 은행이 아닌 국가에 의해 필터링 된 모든 계정을 반환합니다.