Фильтрация и поиск с помощью 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

Вернуться на верх