我在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()}")