Odoo11.0 Building a Website

官方文档

最好不要和odoo自带的addons插件放在一起,新建自己的 modules目录,文档中命令如下

./odoo-bin scaffold Academy my-modules

发现错误, 报错 -bash: ./odoo-bin: No such file or directory

命令修改如下:

odoo scaffold Academy my-modules

会生成my-modules目录,里面有academy模块

编辑 academy/controllers/controllers.py:

# -*- coding: utf-8 -*-
from odoo import http

class Academy(http.Controller):
    @http.route('/academy/academy/', auth='public')
    def index(self, **kw):
        return "Hello, world"

修改/etc/odoo/odoo.conf:

[options]
; This is the password that allows database operations:
; admin_passwd = admin
db_host = 127.0.0.1 
db_port = 5432
db_user = odoo
db_password = odoo 
addons_path = **/my-modules/  # 此处填写刚才生成的my-modules/的目录,多个之间用,分割   无须加入odoo自带的addons, 启动的时候应该会自带

重启odoo

service odoo restart

然后访问 http://localhost:8069

登录进去后,激活开发者模式,如下图:



然后在应用中,执行应用更新操作,如下图:


再搜索 Academy, 选择安装, 默认搜索时搜索应用,此时Academy是模块



再访问http://127.0.0.1:8069/academy/academy

会出现 Hello, World。

使用模板:

在 controllers/controllers.py 编辑:

# -*- coding: utf-8 -*-
from odoo import http

class Academy(http.Controller):
    @http.route('/academy/academy/', auth='public')
    def index(self, **kw):
        return http.request.render('academy.index', {
            'teachers': ["Diana Padilla", "Jody Caroll", "Lester Vaughn"],
        })

编辑 views/templates.xml :

<odoo>
    <template id="index">
            <title>Academy</title>
            <t t-foreach="teachers" t-as="teacher">
              <p><t t-esc="teacher"/></p>
            </t>
    </template>
</odoo>

然后 重启odoo, 访问http://127.0.0.1:8069/academy/academy

出现错误:ValueError: External ID not found in the system: academy.index

很奇怪,所有的步骤都是按照官方文档来的,比对__manifest__ 中路径是否正确,templates.xml 中加入<data></data> 都失效,最后的解决方案:将Academy卸载 之后再重新安装, 即可正常访问, 升级也可。


从数据库中获取数据:

编辑 models/models.py :

# -*- coding: utf-8 -*-
  
from odoo import models, fields, api

class Teacher(models.Model):
    _name = 'academy.teachers'

    name = fields.Char()

编辑__manifest__.py

'data': [
        'views/views.xml',
        'views/templates.xml',
        'security/ir.model.access.csv',
    ],

编辑security/ir.model.access.csv

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_academy_teachers,academy_academy_Teacher,model_academy_teachers,,1,0,0,0

将数据插入数据库中,重启 odoo, 升级Academy

访问   http://127.0.0.1:8069/academy/academy 即可








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值