- 首先使用脚手架创建bm-advanced
./odoo-bin scaffold bm-advanced my-modules
- 创建三个模型,bugstage.py bugtag.py bug_adv.py
fields字段基本类型
# -*- coding: utf-8 -*-
from odoo import models, fields, api
class BugStage(models.Model):
# 下划线开头的为模型属性
_name = 'bm.bug.stage'
_description = 'bug阶段'
_order = 'sequence, name'
# 字符串类型
# Char类型关键字:size,限制最大长度
name = fields.Char('名称')
desc_detail = fields.Text('描述')
# Selection类型 (items, string)
status = fields.Selection([('waiting','未开始'), ('doing', '进行中'), ('closed', '已关闭'), ('rework', '重测未通过')], '状态')
document = fields.Html('文档')
sequence = fields.Integer('sequence')
# Float类型(string, 精度)
percent_pro = fields.Float('进度', (3, 2))
deadline = fields.Date('最晚解决日期')
# DateTime类型,default默认值,此处使用lambda函数给出
create_on = fields.Datetime('创建时间', default=lambda self:fields.Datetime.now())
delay = fields.Boolean('是否延误')
image = fields.Binary('图片')
最后一步创建视图失败,不知错误原因,跳过此段,过后再回头处理
odoo.tools.convert.ParseError: "Cannot update missing record 'bug-manage.form2'" while parsing /home/odoo/odoo/my-modules/bm-advanced/views/bugs_adv.xml:3, near
<record model="ir.ui.view" id="bug-manage.form2">
<field name="name">bug表单2</field>
<field name="model">bm.bug</field>
<field name="inherit_id" ref="bug-manage.form"/>
<field name="arch" type="xml">
<field name="follower_id" position="after">
<field name="stage_id"/>
<field name="tag_ids"/>
</field>
</field>
</record> - - -
- 装饰器
记录集 @api.multi
计算字段 @api.depends
评估检查 @api.constraints
自动更新 @api.onchange