我调用一个特定的url
from和ajax
函数,该函数将调用相应的视图函数。在view函数中,我想通过调用另一个视图来重定向页面(因为ajax请求后我无法呈现)。在
以下是我的网址:
urlpatterns = [
url(r'^$', views.search, name='search'),
url(r'^search_result/.+$', views.search_result, name='search_result'),
url(r'^new_search_result/$',
views.new_search_result,
kwargs={'selected': '', 'keyword': ''},
name='new_search_result')
]
这是search_result
视图:
这是new_search_result
视图:
def new_search_result(request, selected={}, keyword=''):
# code blocks
但在执政官那里我得到了一个错误:
django.urls.exceptions.NoReverseMatch: Reverse for 'new_search_result' with keyword arguments '{'selected': '{"PANTHER":"ftp.pantherdb.org","Pasteur Insitute":"ftp.pasteur.fr","Rat Genome Database":"ftp.rgd.mcw.edu"}', 'keyword': 'dfasdf'}' not found. 1 pattern(s) tried: ['searchengine/new_search_result/$']
[22/Jul/2017 12:52:12] "POST /searchengine/search_result/dfasdf HTTP/1.1" 500 16814
对
url
的kwargs
参数为调用
url
提供的额外的kwargs
参数允许您定义随后传递给视图的额外参数。它们不定义获取url时提供的额外参数-reverse
的调用不知道这些额外参数,reverse
的调用只知道url模式中定义的参数。在如果你有:
这意味着,当您的url以}。在
blog/1111
的形式被获取时,视图myview
将被两个参数调用:值为1111
的year
和值为bar
的{{11}它不仅仅是在视图中提供的。
reverse
函数的kwargs
参数实际上是指在url模式中定义的参数。在向视图传递参数
因此,看看您要实现的目标:您希望将用户的浏览器重定向到另一个URL,这样得到的视图将能够访问}参数。在
keyword
和{如果您希望对用户隐藏该数据,则必须将其存储在会话中。假设不是这样,您有三种方法将参数传递到视图:通过GET参数、通过POST数据和查看url。在您重定向到另一个页面时,不能使用POST请求。您可以使用url,但对于搜索页面,我认为最好的选择是使用GET参数。在
因此,在
^{pr2}$search_result
视图中,可以向URL添加一个查询字符串,即?keyword=...&selected=...
。例如:您的
new_search_result
视图将从请求中读取这些内容:相关问题 更多 >
编程相关推荐