示例
from odoo import models, fields
class LibraryBook(models.Model):
# ...
short_name = fields.Char('Short Title')
notes = fields.Text('Internal Notes')
state = fields.Selection(
[('draft', 'Not Available'),
('available', 'Available'),
('lost', 'Lost')],
'State')
description = fields.Html('Description')
cover = fields.Binary('Book Cover')
out_of_print = fields.Boolean('Out of Print?')
date_release = fields.Date('Release Date')
date_updated = fields.Datetime('Last Updated')
pages = fields.Integer('Number of Pages')
reader_rating = fields.Float(
'Reader Average Rating',
dig
字段介绍
Char
字符串
Integer
整数
Float
浮点数, 精度可由位数和⼩数位数对来定义
Text
文本
Selection
选择列表(下拉框)所选择的值存储于数据库中,可以是字符串或整数。
注意Odoo内部将0解释为未设置,不会显示存储值为0的描述
Html
类似于text字段,但通常⽤于以HTML格式存储的富⽂本
Binary
⼆进制⽂件,如图像或⽂档。
Boolean
布尔值
Date
日期值, ORM中以Python datetime对象的形式对其进⾏处理
Monetary
可存储某个币种的数量值
属性示例
short_name = fields.Char('Short Title',translate=True, index=True)
state = fields.Selection(
[('draft', 'Not Available'),
('available', 'Available'),
('lost', 'Lost')],
'State', default="draft")
description = fields.Html('Description', sanitize=True, strip_style=False)
pages = fields.Integer('Number of Pages',
groups='base.group_user',
states={'lost': [('readonly', True)]},
help='Total book page count', company_dependent=False)
属性介绍
string
字段的标题, 在UI视图标签中使⽤,如未设置,会通过⾸字⺟⼤写及将空格替换为下划线来从字段名获取标签。
translate
设置为True时, 表示字段可翻译
default
计算默认值的函数, ,例如default=_compute_default, "_compute_default"为在字段定义前定义的方法
help
在UI解码提示工具中显示的解释性文本
groups
它是包含安全组的XML ID逗号分隔列表的⼀个字符串。
states
允许⽤户界⾯依据state字段的值来动态设置readonly, required和invisible的
值。因此,它要求存在⼀个state字段并在表单视图中使⽤(即便是隐藏的)。state属性
的名称是在Odoo硬编码且⽆法修改的。
copy
在复制记录时是否拷⻉字段值。对于⾮关系型字段和Many2one它的默认值
是True、对One2many和计算字段它的值是False。
index
设置为True时, 为该字段创建数据库索引
readonly
只读
required
不可为空
sanitize
标记用于HTML字段并去除包含不安全标签的内容
使⽤它会对输⼊进⾏全局清理。
如果需要更精细的控制,可以使⽤⼀些关键字,仅在启⽤sanitize时⽣效:
- sanitize_tags=True删除⽩名单列表以外的标签(默认项)
- sanitize_attributes=True删除⽩名单列表以外的标签属性
- sanitize_style=True删除⽩名单列表以外的样式属性
- strip_style=True删除所有样式元素
- strip_class=True删除所有class属性
company_dependent
让该字段根据公司存储不同值