odoo之onchange、约束、高级视图

本文介绍了Odoo中的一些关键特性,包括默认值的设定,如Char字段的default属性和Many2one字段的默认值。详细讲解了onchange机制,它允许在不保存数据的情况下更新表单字段。接着讨论了Python和SQL约束的实现,以及如何在模型上定义这些约束。此外,还深入探讨了高级视图的运用,如tree视图的颜色条件、editable属性,以及calendar、search和Gantt视图的配置和功能。最后提到了search视图的过滤器和动作上下文,以及如何通过context设置搜索字段的默认值。
默认值
name = fields.Char(default="Unknown")
user_id = fields.Many2one('res.users', default=lambda self: self.env.user)

self.env可以是请求的参数或者其他
self.env.cr或self._cr是数据库游标对象,用于查询数据库
self.env.uid是当前用户的数据库id
self.enc.user当前用户的记录
self.env.context或self._context是上下文字典
self.enc.ref(xml_id)返回xml的id的记录
self.env[model_name]返回给的模型的实例


Onchange

"onchange"机制给用户接口提供更新表单的方法,使用户在不用向数据库中添加数据的情况下刷新字段值


约束

Python约束
通过方法实现


SQL约束

通过模型属性_sql_constraints定义,指向3字段的字符串(name,sql_definition,message),其中name是有效的SQL约束名,sql_definition是table_constraint表达式,message是弹出的错误信息。


高级视图
tree视图
tree视图可以补充属性来进一步定义行为
colors:条件为True,应用颜色
<tree string="Idea Categories" colors="blue:state=='draft';red:state=='trashed'">
    <field name="name"/>
    <field name="state"/>
</tree>
不同条件通过“;”分开,条件和颜色通过“:”分开


editable:值为“top”或“bottom”
使tree视图不用通过表单视图直接编辑,值为新的行的位置


calendar视图
把记录以日历时间显示。一些属性:
color
date_start
date_stop(optional)




search视图
字段中有一个@filter_domain,可以重写搜索给定字段的域,。
search视图可以包含filter,切换预定义搜索,filter有以下属性:
domian:在当前搜索中添加给定域
context:对当前搜索添加一些上下文,通过关键字group_by得到给定字段的结果集


使用非默认搜索视图的一个动作,它应该使用search_view_id字段的操作记录。
动作还可以搜索字段通过其上下文字段设置默认值:上下文的键形式search_default_field_name将初始化field_name提供价值。搜索过滤器必须有一个可选的@ name违约,像布尔值(他们只能默认启用)。


要用非默认的search视图,应该用action的search_view_id字段
action还可以通过context字段设置搜索字段的默认值,


Gantt视图
条形图,通常用于显示项目进度


Graph视图(图表)
用于显示统计的图标
有四种显示模式
Pivot:多维的表。允许过滤器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值