Vorrei aggiungere qualche opzione di me stesso, qui. Qualcuno si chiederebbe come impostare il percorso in urls.py, come ad esempio
domain/search/?q=CA
in modo da poter invocare la query.
Il fatto è che NON è necessario impostare tale percorso in urls.py. Quello che devi impostare è solo il percorso in urls.py
urlpatterns = [
path('domain/search/', views.CityListView.as_view()),
]
e quando si immette http: // servername: port / dominio / ricerca / q = CA . La parte della query '? Q = CA' verrà automaticamente prenotata nella tabella hash a cui puoi fare riferimento
request.GET.get('q', None).
Ecco un esempio (views.py)
class CityListView(generics.ListAPIView):
serializer_class = CityNameSerializer
def get_queryset(self):
if self.request.method == 'GET':
queryset = City.objects.all()
state_name = self.request.GET.get('q', None)
if state_name is not None:
queryset = queryset.filter(state__name=state_name)
return queryset
Inoltre, quando si scrive una stringa di query in URL
http://servername:port/domain/search/?q=CA
Non racchiudere la stringa di query tra virgolette, ad es
http://servername:port/domain/search/?q="CA"