Фильтрация и поиск с помощью Django Rest Framework
Я делаю свой первый проект DRF и задался вопросом, возможно ли использовать DjangoFilterBackend для фильтрации определенных полей и одновременно использовать фильтр поиска. Таким образом, запрос будет выглядеть примерно так:
http://localhost:8000/api/v1/test/?search=test&id=27&author=2672
Возможно ли это сделать с помощью DjangoFilterBackend или мне придется писать собственную логику фильтрации?
Если вам нужна дополнительная информация о самом проекте или моем коде, просто дайте мне знать :)
Да, это возможно.
Пример:
from rest_framework import filters
from django_filters.rest_framework import DjangoFilterBackend
class ProductViewset(viewsets.ModelViewSet):
queryset = Product.objects.all()
filter_backends = [DjangoFilterBackend, filters.SearchFilter]
filterset_fields = ["is_discontinued",]
search_fields = ["name", "description",]
в filterset_fields перечислите поля, по которым вы хотите фильтровать. А в search_fields по которым вы хотите искать.
URL:
https://www.myurl.ltd/api/products?is_discontinued=False&search=laptop
Дополнительная информация: DjangoFilterBackend и SearchFilter