Ich überschreibe derzeit die List-Methode des ModelViewSet und die Verwendung von filter_fields, aber ich erkannte, dass der Filter vor der Liste angewendet wird, so dass meine List-Methode nicht durch den Abfrageparameter gefiltert wird. Ist es möglich, diesen Filter nach der Listenmethode anzuwenden?Wie Filter nach den Abrufmethoden anwenden?
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)
Wenn ich Antrag tun mit dieser URL http://localhost:8000/api/account/?country__name=Germany
, gibt sie alle per Bank gefiltert Konten aber nicht nach Land unterschiedlich.