字段

class odoo.fields.Field
字段属性参数:
string:字段标签
help:提示信息
readonly:是否只读
required:是否必填
index:是否进行索引
default:默认值
states:限制仅组内的用户才可访问字段
company_dependent:是否依赖于当前公司
store:是否存储在数据库中
compute:计算该字段的方法名
compute_sudo:字段是否应超越权限以超级用户进行重新计算
inverse:推导字段的方法名
search:实现对字段搜索的方法名
related:字段名的序列

字符串字段

class odoo.fields.Char
属性参数:
size:存储大小
trim:去掉两边空格
translate:启用值翻译

name = fields.Char('Name', index=True, required=True)

计算属性

【实例】“全名”字段显示完整的层级名称。

name = fields.Char(
    '名称',
    index=True,
    required=True
)
complete_name = fields.Char(
    '全名',
    compute='_compute_complete_name',
    store=True
)
parent_id = fields.Many2one(
    'product.category',
    '父分类',
    index=True,
    ondelete='cascade'
)

@api.depends('name', 'parent_id.complete_name')
def _compute_complete_name(self):
    for category in self:
        if category.parent_id:
            category.complete_name = '%s / %s' % (category.parent_id.complete_name, category.name)
        else:
            category.complete_name = category.name

浮点字段

class odoo.fields.Float
digits:精确位数(总数, 小数位)

货币字段

class odoo.fields.Monetary