Odoo 有通过装饰器定义路由的方式。这几乎没问题,但是.. 我们想要编写模块,这将允许我们进行动态重写。
https://www.odoo.com/documentation/8.0/reference/http.html - 在这里我们可以找到添加路由的标准方法。
好像:
class MyController(openerp.http.Controller):
@route('/some_url', auth='public')
def handler(self):
return stuff()
理想情况下,我们希望找到 odoo 存储RouteMap
的位置werkzeug
。
我还尝试以如下方式向控制器添加装饰方法:
def my_redirect(new_url):
t = lambda x: werkzeug.utils.redirect(new_url, 301)
return t
MyController.test = http.route('/old_url/')(my_redirect('/new_url/'))
但在这种情况下,我们在这里得到错误。