在 web 模块 (addons/web) 中存在 Openerp 中的所有路由(其中很多),例如:
- /
- /网络
- /网络/登录
等等,但我想扩展 web 模块来创建客户端注册的其他方式(路由)。我创建了一个模块 web_aaa(用于测试)并在控制器中包含了这个(几乎所有代码都从 web/controllers/main.py 类 Home 复制):
# -*- coding: utf-8 -*-
import logging
import jinja2
import simplejson
import os
import sys
import openerp
from openerp import http
from openerp.http import request, serialize_exception as _serialize_exception
_logger = logging.getLogger(__name__)
if hasattr(sys, 'frozen'):
path = os.path.realpath(os.path.join(os.path.dirname(__file__), '..', 'views'))
loader = jinja2.FileSystemLoader(path)
else:
loader = jinja2.PackageLoader('openerp.addons.web', "views")
env = jinja2.Environment(loader=loader, autoescape=True)
env.filters["json"] = simplejson.dumps
class Home_aaa(http.Controller):
#This is a new route
@http.route('/signup', type='http', auth="none")
def signup(self, **kw):
return env.get_template("signup.html").render()
然后,当我使用 “--load web_aaa”启动服务器并查找 /signup 时,它工作正常。但是web 模块的所有其他路由都返回 404 Not Found (None werkzeug: 192.168.56.1 - - [10/Nov/2014 19:00:44] "GET /web/ HTTP/1.1" 404 -)。
当我在没有“--load web_aaa”的情况下启动服务器时,web 模块的所有路由都运行良好,但web_aaa 路由不行。
我的问题是:
- 如何创建一个创建新路由的模块,或扩展 web 模块,特别是他的 main.py 控制器?
- Web 模块是 server_wide_module,我在配置文件中更改了此选项,但我的 web_aaa 模块没有启动。如何包含另一个服务器范围的模块?
非常感谢!!