Путь Django не совпадает с URL

Этот путь Django:

path('/search/<str:q>', views.search, name="search")

не соответствует этому url:

http://127.0.0.1:8000/akdbapp/search/?q=foo

Почему бы и нет?

Page not found (404)
Request Method: GET
Request URL:    http://127.0.0.1:8000/akdbapp/search/?q=foo
Using the URLconf defined in aksite.urls, Django tried these URL patterns, in this order:
akdbapp/ [name='index']
akdbapp/ /search/<str:q> [name='search']
akdbapp/ [name='detail']
akdbapp/ <int:artwork_id>/ [name='detail']
admin/
__debug__/
The current path, akdbapp/search/, didn’t match any of these.

?q=foo не является частью пути, это строка запроса.

Ваш путь должен быть

path('/search/', views.search, name="search")

и вы должны получить доступ к q, используя

q = request.GET.get("q")

по вашему мнению.

Вернуться на верх