Не удается подобрать regex для django url (методы, описанные ранее на stackowerflow, не работают)
Невозможно подобрать regex для django url необходимо обработать входящий запрос с фронтенда
"GET /api/city_list/9/?q=test HTTP/1.0" 404 Not Found
"GET /api/city_list/9/?q=tt HTTP/1.0" 404 Not Found
Я попробовал несколько вариантов
path('api/city_list/<int:id>/?q=<str:q>', api_city_list, name='api_city_list'),
не работает
re_path(r'^api/city_list/\d+/\?|&q=\w', api_city_list, name='api_city_list'),
не работает
re_path(r'^api/city_list/<int:id>/(?P<q>\D+)', api_city_list, name='api_city_list'),
не работает
views.py не достигает отладчика.
url checker fails
Друзья, подскажите как это сделать, а то я уже запутался в регулярных выражениях для Django
(Django 3.1)
Вам не нужно добавлять соответствие строки запроса в пути url, поэтому вы можете изменить url на просто:
path('api/city_list/<int:id>/', api_city_list, name='api_city_list'),
Затем в вашем представлении, если вы хотите получить доступ к параметрам запроса, вы можете использовать request.GET
.
def api_city_list(request, id):
q = request.GET.get('q')
...
Все параметры запроса в этом url будут автоматически переданы в request.GET
, поэтому нет необходимости согласовывать их в конфигурации url.