Я хотів би додати тут якийсь варіант себе. Хтось задається питанням, як встановити шлях у urls.py, наприклад,
domain/search/?q=CA
щоб ми могли викликати запит.
Справа в тому, що НЕ потрібно встановлювати такий маршрут у urls.py. Вам потрібно встановити лише маршрут у urls.py
urlpatterns = [
path('domain/search/', views.CityListView.as_view()),
]
і коли ви вводите HTTP: // ім'я_сервера: порт / домен / пошук / д = CA . Частина запиту "? Q = CA" буде автоматично зарезервована у хеш-таблиці, на яку можна посилатися
request.GET.get('q', None).
Ось приклад (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
Крім того, коли ви пишете рядок запиту в Url
http://servername:port/domain/search/?q=CA
Не загортайте рядок запиту в лапки, наприклад
http://servername:port/domain/search/?q="CA"