如何在OpenERP中扩展Web模块

时间:2014-11-10 19:26:06

标签: python openerp-8

在Web模块(addons / web)中存在Openerp中的所有路由(其中很多),例如:

  • /
  • / web
  • /网络/登录

等。但我想扩展Web模块以创建客户端注册的其他方式(路由)。我创建了一个模块web_aaa(用于测试),在控制器中我包含了这个(几乎所有从web / controllers / main.py类主页复制的代码):

# -*- 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()

然后,当我启动服务器时 " - 加载web_aaa" 并查找/注册它可以正常工作。 但是网络模块的所有其他路线返回404 Not Found(无werkzeug:192.168.56.1 - - [10 / Nov / 2014 19:00:44]" GET / web / HTTP / 1.1" 404 - )。

我启动服务器时没有&#34; - 加载web_aaa&#34; Web模块的所有路由都很好, web_aaa路由不是。< / p>

我的问题是:

  1. 如何创建一个创建新路由的模块,或者扩展Web模块,特别是他的main.py控制器?
  2. Web模块是server_wide_module,我在配置文件中更改了此选项,但我的web_aaa模块没有启动。如何包含另一个服务器范围的模块?
  3. 非常感谢!!

1 个答案:

答案 0 :(得分:-1)

你的不能测试:

来自web.controllers.main import Home

class Home_aaa(Home):

http.route('/signup', type='http', auth="none")
def signup(self, **kw):
    return env.get_template("signup.html").render()