Путь 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")
по вашему мнению.