todob模块创建好了以后,模块内主要文件有:
1. manifest 主控文件
2. models/models.py 模型文件
3. views/views.xml 视图文件
主要文件默认代码说明:
manifest.py 文件
# -*- coding: utf-8 -*-
{
'name': "todob", # 模块名称
'summary': """
Short (1 phrase/line) summary of the module's purpose, used as
subtitle on modules listing or apps.openerp.com""",
# 模块摘要
'description': """
Long description of module's purpose
""",
# 模块描述
'author': "My Company",
'website': "http://www.yourcompany.com",
'category': 'Uncategorized',
'version': '0.1',
# any module necessary for this one to work correctly
'depends': ['base'],
# always loaded
'data': [
'security/ir.model.access.csv', #如果注释掉,可以安装但是菜单里看不到这个程序
'views/views.xml',
'views/templates.xml',
],
# only loaded in demonstration mode
'demo': [
'demo/demo.xml',
],
}
models/models.py
# -*- coding: utf-8 -*-
from odoo import models, fields, api
class todob(models.Model):
_name = 'todob.todob'
_description = 'todob.todob'
name = fields.Char()
value = fields.Integer()
value2 = fields.Float(compute="_value_pc", store=True)
description = fields.Text()
@api.depends('value')
def _value_pc(self):
for record in self:
record.value2 = float(record.value) / 100
views/views.xml
<odoo>
<data>
<!-- explicit list view definition -->
<record model="ir.ui.view" id="todob.list">
<field name="name">todob list</field>
<field name="model">todob.todob</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="value"/>
<field name="value2"/>
</tree>
</field>
</record>
<!-- actions opening views on models -->
<record model="ir.actions.act_window" id="todob.action_window">
<field name="name">todob window</field>
<field name="res_model">todob.todob</field>
<field name="view_mode">tree,form</field>
</record>
<!-- server action to the one above -->
<record model="ir.actions.server" id="todob.action_server">
<field name="name">todob server</field>
<field name="model_id" ref="model_todob_todob"/>
<field name="state">code</field>
<field name="code">
action = {
"type": "ir.actions.act_window",
"view_mode": "tree,form",
"res_model": model._name,
}
</field>
</record>
<!-- Top menu item -->
<menuitem name="todob" id="todob.menu_root"/>
<!-- menu categories -->
<menuitem name="Menu 1" id="todob.menu_1" parent="todob.menu_root"/>
<menuitem name="Menu 2" id="todob.menu_2" parent="todob.menu_root"/>
<!-- actions -->
<menuitem name="List" id="todob.menu_1_list" parent="todob.menu_1"
action="todob.action_window"/>
<menuitem name="Server to list" id="todob" parent="todob.menu_2"
action="todob.action_server"/>
</data>
</odoo>