Django Rest Framework-Abfragetools
Dieses Paket erleichtert Filtervorgänge über Abfrageparameter und vereinfacht so den Filterprozess für Django Rest Framework-Ansichten. Installation
Per Pip installieren:
pip install django-rest-framework-query-tools
Schnelles Beispiel für die Verwendung
Angenommen, Sie haben ein Büchermodell mit Feldern wie Autor, Titel usw. So filtern Sie Bücher mithilfe von Abfrageparametern nach Autor:
Geben Sie in Ihrer view.py die zu filternden Felder mit filter_fields an:
from rest_framework . views import APIView
from rest_framework import generics
from rest_framework import filters
from django_rest_framework_query_tools . filters . url_fliter import URLFilter
class BooksListView ( generics . ListAPIView ):
queryset = Books . objects . all ()
serializer_class = BookSerializer
filter_backends = [ URLFilter ]
filter_fields = ( 'author' ,)
Jetzt können Sie eine Filterung durchführen, indem Sie Abfrageparameter übergeben:
/v1/books?author=name
Integrationsmethode 1: Integration in view.py
Importieren Sie QueryParamsFilter und verwenden Sie es als Filter-Backend:
from drf_query_tools . filters import QueryParamsFilter
class BooksListView ( generics . ListAPIView ):
# ...
filter_backends = [ QueryParamsFilter ]
filter_fields = ( 'author' ,)
# ...
Methode 2: Globale Integration über Settings.py
Fügen Sie den QueryParamsFilter zu Ihren Django Rest Framework-Einstellungen hinzu:
REST_FRAMEWORK = {
'DEFAULT_FILTER_BACKENDS' : [
' django_rest_framework_query_tools .filters.url_fliter.URLFilter'
]
}
Mitwirken
Fühlen Sie sich frei, einen Beitrag zu leisten, indem Sie Issues eröffnen oder Pull-Requests einreichen! Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert – Einzelheiten finden Sie in der LIZENZ-Datei