首页 >> 大全

Odoo13开发教程-搭建网站

2024-01-06 大全 35 作者:考证青年

博主在外企IT领域工作多年,有一定的和ERP基础,最近偶然机会接触到开源ERP odoo,萌生了学习的念头,但是官网的开发教程都是英文,所以打算用浅显易懂的文字翻译成中文,方便大家一起学习,有翻译不到位的地方还请大家指正

注意:

我的Odoo代码是在官方地址下的。源码下载也可以,只是文件目录稍有不同,在输命令的时候路径不能输错。下载地址所有代码均调试成功发布,并在原版的教程上加了必要的截图方便读者学习。 搭建网站

提醒:

阅读这份教程需要基本的知识

同时需要在电脑或服务器上已安装好Odoo应用

创建自定义模块

在Odoo中,任务都是在创建的模块中执行的。

模块可以自定义Odoo的行为,无论是通过添加新的行为或者修改现有的(包括添加其他模块的行为来定制化)。

Odoo的脚手架 可以创建模块。通过调用命令:

$ ./odoo-bin scaffold Academy my-modules

系统便会自动创建目录my-以及其包含的模块 。目录可以是存在的目录名,但是模块名必须是唯一的。

演示模块

我们已经有了一个刚刚创建好的模块,尽管啥功能也没有,但是我们可以安装了。

$ ./odoo-bin --addons-path odoo/addons,my-modules -c odoo.conf   

与浏览器交互

控制器解析浏览器请求并返回数据。

搭建网站流程__搭建网站第一步

添加一个简单的控制器并且确保他在.py文件中导入了(这样Odoo可以找到)

/.py

# -*- coding: utf-8 -*-
from odoo import httpclass Academy(http.Controller):@http.route('/academy/academy/', auth='public')def index(self, **kw):return "Hello, world"#     @http.route('/academy/academy/objects/', auth='public')
#     def list(self, **kw):

关闭(Ctrl+C) 然后重启:

./odoo-bin --addons-path odoo/addons,my-modules -c odoo.conf

打开网页:8069///, 你可以看到页面显示:

模板

在中生成HTML文件不是很理想。

通常的解决办法是利用模板,通过伪代码文件来显示。Odoo允许任何模板系统,但是他自己提供的OWeb模板系统很好的整合了一些其他的功能。

创建模板并且确保模板文件在.py 文件中注册,并且修改控制器来使用我们的模板:

/.py

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"],})#     @http.route('/academy/academy/objects/', auth='public')
#     def list(self, **kw):

/views/.xml

<odoo><template id="index"><title>Academy</title><t t-foreach="teachers" t-as="teacher"><p><t t-esc="teacher"/></p></t></template><!-- <template id="object"> --><!--   <h1><t t-esc="object.display_name"/></h1> --><!--   <dl> -->
</odoo>

模板会通过迭代器(t-)迭代所有的,并且打印出每个

最后重启Odoo并且升级模块数据。

搭建网站第一步_搭建网站流程_

./odoo-bin --addons-path odoo/addons,my-modules -d odoo13 -u academy -c odoo.conf

点击:8069/// 会显示:

在Odoo上存储数据

Odoo的模型映射到数据库的表。

在之前的章节我们仅仅用静态地显示了字符串列表。它并不允许修改或者持续存储,所以现在我们要把我们的数据移到数据库。

定义数据模型

定义一个模型,并且确保它在.py中正确导入:

//.py

from odoo import models, fields, apiclass Teachers(models.Model):_name = 'academy.teachers'name = fields.Char()

接着给模型设置基本的访问控制并且添加到

/.py

    # always loaded'data': ['security/ir.model.access.csv','templates.xml',],# only loaded in demonstration mode

//ir...csv

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

这里简单的给了所有用户(:id)读权限()

数据文件(XML或者CSV)必须被添加在模块的中,文件(模型或者控制器)不用,但是文件必须引入在.py中(直接或者间接)

管理员用户通过权限来控制,他们能访问所有模型甚至没有给权限的

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了