Установка динамических адресов для фильтра django

У меня небольшой опыт работы с Django и его динамическими урлами. Я использовал пакет django-filter для фильтрации элементов в базе данных. Я использую Django restframework. В models.py у меня есть несколько charfields (owners, item, category...). Используя filterset, я хочу задать динамический url. Используя URL path('item**/categories=categoryname**', items-view.as_view(), name='category') Мне нужно указать название категории в поисковой строке браузера, прежде чем я получу элементы в названной категории. Я тестирую этот способ в браузере и, используя имя категории, получаю все элементы этой категории. Я хочу использовать url в приложении react. Будет ли хорошей практикой получать этот API в его нынешнем виде, поскольку я приравниваю категорию к названию категории, чтобы получить список товаров в этой конкретной категории? Или есть способ задать url динамически? Например, при использовании lookup_field для продукта id я могу установить url динамически, используя path('item/**<int:id>**', items-view.as_view(), name='category') без жесткого кодирования id в URL.

Разве кверистринги не решают вашу проблему? Если вы используете drf, проверьте drf filters. Если вам нужно переопределить метод quertset, вы можете сделать это также в вашем api представлении добавьте что-то вроде

   def get_queryset(self, *args, **kwargs):
        queryset = super().get_queryset(*args, **kwargs)
        if 'category' in self.request.GET:
            return queryset.filter(category_name=self.request.GET['category'])
    return queryset
Вернуться на верх