Eu gostaria de adicionar uma opção minha aqui. Alguém gostaria de saber como definir o caminho em urls.py, como
domain/search/?q=CA
para que pudéssemos chamar a consulta.
O fato é que NÃO é necessário definir essa rota em urls.py. O que você precisa definir é apenas a rota em urls.py
urlpatterns = [
path('domain/search/', views.CityListView.as_view()),
]
e quando introduzir http: // servername: port / domínio / pesquisa / q = CA . A parte da consulta '? Q = CA' será automaticamente reservada na tabela de hash que você pode referenciar
request.GET.get('q', None).
Aqui está um exemplo (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
Além disso, quando você escreve uma string de consulta no URL
http://servername:port/domain/search/?q=CA
Não coloque a string de consulta entre aspas, por exemplo
http://servername:port/domain/search/?q="CA"