Me gustaría agregar alguna opción de mí mismo aquí. Alguien se preguntaría cómo establecer la ruta en urls.py, como
domain/search/?q=CA
para que podamos invocar la consulta.
El hecho es que NO es necesario establecer dicha ruta en urls.py. Lo que necesita establecer es solo la ruta en urls.py
urlpatterns = [
path('domain/search/', views.CityListView.as_view()),
]
y cuando se introduce http: // servidor: puerto / Dominio / Búsqueda / q = CA . La parte de consulta '? Q = CA' se reservará automáticamente en la tabla hash a la que puede hacer referencia
request.GET.get('q', None).
Aquí hay un ejemplo (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
Además, cuando escribe una cadena de consulta en la URL
http://servername:port/domain/search/?q=CA
No ajuste la cadena de consulta entre comillas, p. Ej.
http://servername:port/domain/search/?q="CA"