- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
odoo 自定义模块
*官方建议模块骨架
addons/my_module_name/
│─ init .py
│- openerp .py
│-controllers
││- init .py
││-main.py
│-data
││-main_model_data.xml
││-inherited_main_model_demo.xml
│
│-models
││- init .py
││-main_model.py
││-inherited_main_model.py
│
│-security
││-ir.model.access.csv
││-main_model_security.xml
│
│-static
││-img
││-lib
││-src
│││-js
│││-css
│││-less
│││-xml
│-views
││-main_model_templates.xml
││-main_model_views.xml
文件夹权限 755 文件权限 644
openerp .py 相关属性: #name 模块名字#summary 简短介绍#description 详细描述#author 作者
#website 模块网站
#category 模块分类
#version 模块版本号
#license 模块版本信息默认是 AGPL-3 #depends 模块依赖
#data 模块必须加载的数据文件#demo 示例数据
#installabel 默认为 True 可安装
#auto_install 默认是 False 如果设为 True 就根据依赖模块,依赖装了,这个模块就安装
#application 默认是 False 如果设为 True 就成为应用模块
安装自定义模块
服务启动配置文件 addons-path 加入自己的定义容器目录如 myaddons addons-path=addons,myaddons
更新模块服务列表,然后找到去安装
模块文件夹管理
#data 放 demo 和 data xml #models 放模型定义#controllers http 路径控制#views 放网页视图和模板
#static 放网页的资源,里面还有 css,js,img,lib 等
#
todo_app
│-security
│|-ir.model.access.csv
│|-todo_access_rules.xml
│-static
│- init .py
│- openerp .py
│-todo_model.py
│-todo_view.xml
init .py 内容如下(把模型导入到应用)
from.import todo_model
opererp .py 内容如下(erp 本身的配置)
{
name:To-Do Application,
description:Manage your personal Tasks with this module., author:Toby Chen,
depends:[mail], application:True, category:todo_app, data:[ todo_view.xml,
security/ir.model.access.csv, security/todo_access_rules.xml,
],
}
*todo_model.py 内容如下(模型)
#-*-coding:utf-8-*-
from openerp import models,fields,api
class TodoTask(models.Model):
_name=todo.task name=fields.Char(Description,required=True) is_done=fields.Boolean(Done?) active=fields.Boolean(Active?,default=True)
@api.one
def do_toggle_done(self): self.is_done=not self.is_done return True
@api.multi
def do_clear_done(self): done_recs=self.search([(is_done,=,True)]) done_recs.write({active:False})
return True
*todo_view.xml 内容如下(视图)
?xml version=1.0encoding=utf-8?
openerp
data
act_window id=action_todo_task
name=To-do Task
文档评论(0)