ODOO source code下载: Github
ODOO是一个以MVC(Model、View、Controller)架构为主体的服务,一个addon可以想成一个模组或是模组扩充,而自制模组时别忘了将自己addon的路径加到config内的addons_path,接下来我们会介绍addon内的组成。
Addons
├─ __init__.py
├─ __manifest__.py
├─ controllers
│ ├─ __init__.py
│ └─ controllers.py
├─ data
├─ demo
├─ i18n
├─ models
│ ├─ __init__.py
│ └─ models.py
├─ security
├─ static
└─ views
└─ views.xml
我们以odoo/addons/base来讲解
manifest是在叙述你这个addons的详细资讯与相关设定
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
{
'name': 'Base',
'version': '1.3',
'category': 'Hidden',
'description': """
The kernel of Odoo, needed for all installation.
===================================================
""",
'depends': [],
'data': [
'data/res.lang.csv',
'data/res_lang_data.xml',
'data/res_partner_data.xml',
'data/res_company_data.xml',
'data/res_users_data.xml',
'data/report_paperformat_data.xml',
'data/res_currency_data.xml',
'data/res_country_data.xml',
'data/ir_demo_data.xml',
'security/base_groups.xml',
'security/base_security.xml',
'views/base_menus.xml',
'views/decimal_precision_views.xml',
'views/res_config_views.xml',
'data/res.country.state.csv',
'views/ir_actions_views.xml',
'views/ir_config_parameter_views.xml',
'views/ir_cron_views.xml',
'views/ir_filters_views.xml',
'views/ir_mail_server_views.xml',
'views/ir_model_views.xml',
'views/ir_attachment_views.xml',
'views/ir_rule_views.xml',
'views/ir_sequence_views.xml',
'views/ir_translation_views.xml',
'views/ir_ui_menu_views.xml',
'views/ir_ui_view_views.xml',
'views/ir_default_views.xml',
'data/ir_cron_data.xml',
'report/ir_model_report.xml',
'report/ir_model_templates.xml',
'views/ir_logging_views.xml',
'views/ir_qweb_widget_templates.xml',
'views/ir_module_views.xml',
'data/ir_module_category_data.xml',
'data/ir_module_module.xml',
'report/ir_module_reports.xml',
'report/ir_module_report_templates.xml',
'wizard/base_module_update_views.xml',
'wizard/base_language_install_views.xml',
'wizard/base_import_language_views.xml',
'wizard/base_module_upgrade_views.xml',
'wizard/base_module_uninstall_views.xml',
'wizard/base_export_language_views.xml',
'wizard/base_update_translations_views.xml',
'wizard/base_partner_merge_views.xml',
'data/ir_actions_data.xml',
'data/ir_demo_failure_data.xml',
'views/res_company_views.xml',
'views/res_lang_views.xml',
'views/res_partner_views.xml',
'views/res_bank_views.xml',
'views/res_country_views.xml',
'views/res_currency_views.xml',
'views/res_users_views.xml',
'views/ir_property_views.xml',
'views/res_config_settings_views.xml',
'views/report_paperformat_views.xml',
'views/onboarding_views.xml',
'security/ir.model.access.csv',
],
'demo': [
'data/res_company_demo.xml',
'data/res_users_demo.xml',
'data/res_partner_bank_demo.xml',
'data/res_currency_rate_demo.xml',
'data/res_bank_demo.xml',
'data/res_partner_demo.xml',
'data/res_partner_image_demo.xml',
],
'test': [],
'installable': True,
'auto_install': True,
'post_init_hook': 'post_init',
}
附上几个常用的参数
name: addon显示名称
summary: addon副标题
description: addon描述
version: addon版本
author:addon作者
website:addon相关连结页面
depends: addon需要用到odoo相关的model,让他能预先安装,
data:写好新的view、report时需要将路径写在里面odoo才会读取。
auto_install:是否自动安装
其他相关的mamifest参数在官方Document
ODOO的model即是用自己一套ORM去操作postgreSQL,当定义好Model後ODOO便会更新db内的table,一个model内含有名称、继承父模型、参数设定、计算、约束...等等,是ODOO里面最重要的一块。
一个Model通常含有:
用来定义在ODOO上的使用者介面,全都采用XML定义,而许多元件与画面 ODOO都有templete可以引用,如果需要加上或修改属性可以透过Xpath去寻找原本Model的参数位置进行修改,唯一要注意的是当写好一份xml要记得加进__manifest__
内,否则ODOO搜寻不到。
透过继承Controller
建立,并以@route()
装饰器指定路径,以URL路径来控制请求,基本上常用到的就是跳转页面以及开发API。
存放关於报表的模型与报表的画面。
保存静态资源,如css、js、image...等等
放置权限设定,保存不同group内对模型的CURD权限。
初始化资料储存处
存放翻译文件档案。
大致上的结构介绍完毕,接下来会慢慢介绍比较重要的部分,明天来介绍Model。
<<: Day03 - [丰收款] 分析技术文件後,开始做个Nonce开胃菜吧!
>>: 从零开始的8-bit迷宫探险【Level 10】游戏故事及架构设计
背景位置 background-position 可以使用这个属性将背景图片指定到想要的位置 有以下...
今天我要讲解的是闭包(Closure),在进入之前我们先来看一段程序码, 首先准备一个随机生成字串的...
同时开启多个浏览器 有时候可能需要多个浏览器来进行测试, 譬如说用多个浏览器来测试WebSocket...
前面讲了那麽多,但都还没在真实的手机上实作,今天就来试试吧 首先先把手机开启开发者人员选项,也许每支...
指令 Directive 表单绑定 使用 v-model 建立表单的双向资料绑定,ex: input...