ZinBu
@ZinBu
Продам гараж (в лс)

Почему не работает фильтрация в ModelViewSet в DRF?

Как я понял для того, чтобы можно было из REST запросов работать с БД существует прекрасная модель ModelViewSet и в ней filter_backends и filter_fields, в которой описываются поля по которым можно фильтровать запрос к БД.
Код сделан по примеру из документации и документации, но выдает ошибку:
AttributeError 'QuerySet' object has no attribute 'model' при GET-запросе.
Так и не смог определить что не так, пересмотрел кучу примеров и у всех работает так как описано в документации. Была мысль, что возможно проблема в каких-то импортах. Так как работаю с mongoengine, некоторые импорты заменяются с rest_framework на rest_framework_mongoengine. Но видел примеры и с этими импортами, где якобы все работает. В чем же дело?
Сам код:
1) Сериалайзер
from rest_framework_mongoengine.serializers import DocumentSerializer
from processing.models import SomeModel


class MySerializer(DocumentSerializer):
    class Meta:
        model = SomeModel
        fields = "__all__"

2) Представление
from rest_framework_mongoengine.viewsets import ModelViewSet as MongoModelViewSet
from django_filters.rest_framework import DjangoFilterBackend

from api.v4.serializers import MySerializer
from processing.models import SomeModel


class UsersViewSet(MongoModelViewSet):

    # queryset = SomeModel.objects.all()
    serializer_class = MySerializer
    filter_backends = (DjangoFilterBackend,)
    filter_fields = ('user', 'user_code')  # все как в документации

    def get_queryset(self):
        return SomeModel.objects.all()


Как я понимаю по такой урле я должен получить отфильтрованный ответ:
example.com/api/products?user=ivasic&user_code=4569
  • Вопрос задан
  • 333 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы