odoo开发domain的使用

本文介绍了Odoo开发中视图(view)与过滤(domain)的应用技巧,包括如何在视图中实现字段间关联过滤,例如根据省份筛选城市;以及如何在视图中设置过滤条件以仅显示特定数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

odoo开发中,domain的使用可以在view中,可以在model中,因此说说自己用到的一些地方。

首先domain得使用方法就不说了,可以参考http://www.chinamaker.net/html/2014/study_1211/183.html,写的还是挺详细的,说说在view中的使用。

1、view中字段关联的过滤

在view视图中,字段之间的关联使用,比如说在地址信息中,有省、市、县信息,因此在选择省的时候就在市中列出该省的市来,那么首先字段中要设置市的字段,比如:

city 的model中要设置和省得多对一的字段

state_id=fields.Man2one('state',u'省名称',required=True,select=True)

那么在odoo的view视图中要设置省字段,市字段,设置domain过滤,可以参考http://www.chinamaker.net/html/2015/study_0929/219.html

<field   name="city_id" placeholder="城区"  domain="[('state_id','=',state_id)]"/>

2、过滤只显示需要显示的数据

在view视图中,哟时候需要根据不同的权限显示不同的数据,因此需要对数据进行过滤,我看到资料可以根据用户组来显示,但是没有用到过,没有尝试,可以参考这篇博客http://blog.sina.com.cn/s/blog_7cb52fa80102v4z0.html,

比如我遇到一个需求,只显示某一字段非非空的数据,在act-window视图中添加过滤条件

<field name="domain" >[('home','!=',False)]</field>
就可以显示该字段为非空的情况。

(注意:在实践中发现如果设置了该过滤条件,那么再更改过滤条件升级模块会发现显示的数据还是之前过滤条件,怎么解决这个bug呢?需要把该菜单隐藏后升级,然后再放出菜单再升级才会实现过滤条件的更改,当时弄了半天才发现这个bug)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值