文档章节

odoo 中实现多列搜索

Fly_f
 Fly_f
发布于 2016/03/18 11:43
字数 346
阅读 114
收藏 1

odoo 中很多many2one字段很多都有需求要显示 name+description的。

类:

class vp_project(models.Model):
    _name='vp.project'
    _inherit = ['mail.thread', 'ir.needaction_mixin']
    _discription='VP project'
    
    
    name=fields.Char('VP NO.',  required=True,select=True, copy=False)
    applicant= fields.Char('Contact')
    description= fields.Text('Description')
    project_name=fields.Char('Project Name', select=True, copy=False)
    customer = fields.Many2one('res.partner','Customer',required=True, domain=[('customer', '=', True)])


另一个类中有一个字段many2one 

vp_project = fields.Many2one('vp.project', string='VP Project',  states=READONLY_STATES, required=True, track_visibility='always')


在视图中当对字段vp_project进行下拉选择的时候一般时候只会显示name。 即 vp.project 里面的name

有些需求就是要下拉选择的时候能看的project_name. 因为这个vp number只是一个编号不能确定是不是所选的。

要想实现这个功能就要在类 vp_project 里面添加方法

  @api.multi
    @api.depends('name', 'project_name')
    def name_get(self):
        return [(r.id, (r.name +'(' + (r.project_name or _('Default'))+')' )) for r in self]

 下拉选择效果, 就会把project_name 字段也会显示出来

  

要实现输入project name 能搜索到想要的字段只有这样还不可以。 比如现在输入SW 第一个project不会被过滤出来。 

要想实现多列搜索 得在类中再添加一个方法:

  @api.model
    def name_search(self, name='', args=None, operator='ilike', limit=100):
        args = args or []
        domain = []
        if name:
            domain = ['|', ('name', operator, name), ('project_name', operator, name)]
        pos = self.search(domain + args, limit=limit)
        return pos.name_get()

这样输入project name 就可以把搜索到想要的记录了


© 著作权归作者所有

共有 人打赏支持
Fly_f

Fly_f

粉丝 19
博文 56
码字总数 18779
作品 0
松江
程序员
微信模块 Oejia_wx v0.5.3 发布,支持聊天图片及语音

Oejiawx v0.5.3 发布了。Odoo 的微信模块,提供了对微信公众号和企业号(企业微信)的接入与管理,实现了微信消息与Odoo聊天的无缝对接。 v0.5.3 增加公众号用户搜索和查找功能 odoo 聊天支持...

Jone.x
07/06
0
0
微信小程序商城模块 Oejia_weshop v0.1 发布

oejiaweshop 是 Odoo 对接微信小程序实现的商城应用。 如果您使用odoo的销售模块,而想要在微信小程序上实现自己的商城卖odoo里的商品,装上 oejiaweshop 模块即可。 如果您想要搭建一套进销...

软践
09/14
0
0
Jone.x/oejia_weshop

oejia_weshop Odoo 微信小程序商城模块 oejia_weshop 是 Odoo 对接微信小程序实现的商城应用。 如果您使用odoo的销售模块,而想要在微信小程序上实现自己的商城卖odoo里的商品,装上 oejia_...

Jone.x
09/13
0
0
Odoo 微信小程序商城模块 - Oejia_WeShop

概述 oejiaweshop 是 Odoo 对接微信小程序实现的商城应用。 如果您使用odoo的销售模块,而想要在微信小程序上实现自己的商城卖odoo里的商品,装上 oejiaweshop 模块即可。 如果您想要搭建一套...

软践
09/13
0
0
在虚拟公司上进行Odoo8.0虚拟实施,实现假戏真做。

在虚拟公司上进行Odoo8.0虚拟实施,实现假戏真做 此活动的目的为完善现有的Odoo8.0中文应用手册,使其对实施更具有指导和实践意义。 虚拟公司: Odoo中文社区文档交流中心是一家从事Odoo中文...

保定-粉刷匠
2014/10/17
2.5K
2

没有更多内容

加载失败,请刷新页面

加载更多

环境搭建之八-- 环境变量

sudo vim /etc/profile 在最下方追加: export JAVA_HOME=/usr/java/jdk1.7.0_80 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export MA......

imbiao
1分钟前
0
0
枚举案例二 BILL_TYPE_BJ("BILL_TYPE", "bj", "布机单"),

package yt.gk.woserviceapi.common; import com.alibaba.fastjson.JSONObject; import java.util.ArrayList; import java.util.List; public enum ConstEnum { /** * 工单类型 */ BILL_TYPE......

泉天下
3分钟前
0
0
MySQL相关整理记录

如何查看MySQL的引擎情况? MySQL的不同的引擎对于事务的支持是不同的,InnoDB支持事务。 例如如下: show engines; show variables like '%storage_engine%'; 可参考: 如何查看mysql引擎相...

宸明
6分钟前
0
0
并发模型比较

Golang 的特色之一就是 goroutine ,使得程序员进行并发编程更加方便,适合用来进行服务器编程。作为后端开发工程师,有必要了解并发编程面临的场景和常见的解决方案。一般情况下,是怎样做高...

java知识分子
7分钟前
1
0
jenkins私库上进行web项目部署原理

1.jenkins私库上进行项目部署是外网进行部署 2.jenkins部署web项目时 admin和front 的项目 的代码 是从华为云/git库中拿过来. 3.而parent文件是公用的文件,在部署时都会以jar包的形式引用进行...

森火
7分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部