我编写了网格过滤器,但尚未实现某些功能,因此当人们尝试使用未实现的功能时,我想将他们重定向到默认网格。在我的控制器中,我可以访问请求对象。我可以更新其参数并使用我的请求对象来重定向用户吗?
我试图直接更新request.params,但这是一个只读对象。尝试使用httpfound,但它不接受参数。
try:
self._parse_filters(filters)
except NotImplementedError:
url = self.request.route_
self.reset_filters = True
self.error = 'Not Implemented Functionality. Default filters loaded'
self._parse_filters(self.default_filters)
答案 0 :(得分:0)
您需要构建一个新的URL(可能基于当前请求中的参数),并使用HTTPFound生成重定向。要生成新网址的查询部分,可以使用_query
方法的request.route_url
参数,也可以简单地使用urllib.urlencode
。
new_url = request.route_url(
'not_implemented_view',
blah='boo',
_query={'sort':'asc'} # you can give it request.GET if you want all the same url parameters
)
return HttpFound(new_url)