我有一个 plone 表单,它基本上获取搜索词,执行搜索,然后将用户定向到另一个表单。对于第二种形式,我需要传递几个变量。
class MySearch(form.SchemaForm):
grok.context(IMyContext)
grok.name('my-search')
ignoreContext = True
schema = ISearchSchema
@button.buttonAndHandler(_(u'Search Method'))
def searchMethod(self, action):
""" group update/removal """
data, errors = self.extractData()
if errors:
self.status = self.formErrorsMessage
return
results = somecall(data['term'])
if results:
self.request.set('myvar',results['myvar'])
self.request.response.redirect('@@my-results')
else:
IStatusMessage(self.request).addStatusMessage(_(u"No results found"),"info")
return
这不起作用 - 我猜会生成一个新请求,因此 myvar 会立即丢失。我可以将它放在查询字符串中并将其包含在重定向中,但如果可能的话,我更愿意将其作为 POST 数据发送。我也尝试过类似的东西
return getMultiAdapter((self.context,self.request),name='my-results')()
看看我是否可以用它作为传入变量的起点,但这只会让我回到我的搜索。