Я использую DjangoRestApi, и хотя он работает как шарм с представлениями на основе запроса (на основе orm), я изо всех сил пытаюсь сделать представления, которые используют разные обратные операции, чтобы вести себя так же, как orm на основе. В частности, я хочу добавить фильтры и автоматически их настроить и проверить.django-rest-framework с фильтрацией на основе orm
код Псевдо ниже:
class NewsFilter(django_filters.FilterSet):
category = django_filters.NumberFilter(name='category')
limit = django_filters.NumberFilter(name='limit')
page = django_filters.NumberFilter(name='page')
class NewsView(generics.APIView):
filter_class = NewsFilter
def get(self, request):
filters = self.filter_class(??) # not sure, what to put here
payload = logic.get_business_news(**filters.data) # same
return Response(payload, status=status.HTTP_200_OK)
Любой намек, как решать проблемы будут оценены.
Конечная цель состоит в том, чтобы:
- пользователь вводит что-то в URL или отправляет через POST, Джанго-остальные перехватывает соответствующие значения, извлекает их, бросает их в правильный тип и возвращают в качестве словаря
- фильтры являются отображаются как они будут, если сериализатор был основан ORM
Я немного отредактировал оригинальный вопрос, чтобы уточнить, что я ищу, поскольку этот ответ а) очень неполный и b) У меня такое чувство, что не отвечаю на мой вопрос. – Drachenfels
По сути, 'FilterSet' работает на запросах. У вас есть набор запросов, который вы отфильтровываете? Если нет, вы не можете использовать 'FilterSet'. –
Я не хочу работать с queryset, поскольку я не использую ORM, я хочу, чтобы визуализировать форму в/api/endpoint, чтобы разработчики и другие не-технические парни могли тестировать/работать с api без ручного управления набрав полезную нагрузку json и так далее. Я начал понимать, что django-rest-framework на самом деле очень ограниченная структура с учетом только одного рабочего процесса. :/ – Drachenfels