Django ulr не принимает строку запроса
У меня есть представление в Django, которое перенаправляет пользователя на некоторый url с дополнительной строкой запроса:
return redirect('search/?print_id='+str(pk))
В моем urls.py шаблон url выглядит следующим образом:
path('search/', views.search, name='search'),
Проблема в том, что когда Django пытается перенаправить, я получаю следующую ошибку:
Reverse for 'search/?print_id=36' not found. 'search/?print_id=36' is not a valid view function or pattern name.
Как я могу изменить шаблон url, чтобы он принимал строку запроса?
redirect
будет пытаться искать представление с таким именем. Вы должны работать с :
from django.http import HttpResponseRedirect, QueryDict
from django.urls import reverse
# …
qd = QueryDict(mutable=True)
qd['print_id'] = pk
return HttpResponseRedirect(f"{reverse('search')}?{qd.urlencode()}")