odoo字段定义属性之: states
这个字段需要配合另一个selection字段使用, 查看odoo源码发现依赖的这个字段都被定义成state, 看字面意思states这个属性的作用应该是控制表单在流程状态中字段的状态, 具体依赖的字段是不是必须定义成state没有去深究, 有兴趣的小伙伴可以去研究一下,欢迎留言解释
下面说一下这个属性的用法:
state = fields.Selection([
('draft', 'To Submit'),
('cancel', 'Cancelled'),
('confirm', 'To Approve'),
('refuse', 'Refused'),
('validate1', 'Second Approval'),
('validate', 'Approved')
], string='Status', readonly=True, copy=False, default='confirm')
date_from = fields.Datetime(
'Start Date', readonly=True, index=True, copy=False,
states={'draft': [('readonly', False)], 'confirm': [('readonly', False)]})
这是odoo的hr模块里面的一个示例代码, 从这个示例就能很明显的看出来, states属性定义了在单据的不同状态下控制date_from字段只读属性, 除此之外还可以控制required(必填属性)
其他的属性能不能控制就大家自己去探究吧