Many2one类型的fields Compute得到的值 搜索

v8 默认情况下compute的值不存储于数据库中,在高级搜索中也不可以进行搜索

想要对这种类型的值搜索,需要在field的定义中添加search参数,在search的函数中编写搜索逻辑。

例子:

related_partner = fields.Many2one(‘res.partner‘,‘Related Partner‘,compute="_get_partner",search="_search_partner")

搜索的方法:

def _search_partner(self,opeartor,value):
        type_id = self.env.context.get(‘default_picking_type_id‘)
        pickings = type_id and self.search([(‘picking_type_id‘,‘=‘,type_id)]) or self.search([])
        ids = [picking.id for picking in pickings if picking.related_partner and value in picking.related_partner.name]
        return [(‘id‘,‘in‘,ids)]

search所对应的方法中self是空的,如果print出来,会是stock.picking()类似的值。

时间: 2024-10-22 04:33:37

Many2one类型的fields Compute得到的值 搜索的相关文章

SF :Salesforce中,得到一个对象的picklist类型下面的所有value的值

Schema.DescribeFieldResult fildResult = Opportunity.StageName.getDescribe(); for(Schema.PicklistEntry str : fildResult.getPicklistValues()){ // picklist value String industry = Str.getValue(); } 注:会显示出此picklist类型的字段下面的所有的值.如果是有Field Dependencies关系的,会

编写高质量代码改善C#程序的157个建议[匿名类型、Lambda、延迟求值和主动求值]

原文:编写高质量代码改善C#程序的157个建议[匿名类型.Lambda.延迟求值和主动求值] 前言 从.NET3.0开始,C#开始一直支持一个新特性:匿名类型.匿名类型由var.赋值运算符和一个非空初始值(或以new开头的初始化项)组成.匿名类型有如下基本特性: 1.既支持简单类型也支持复杂类型.简单类型必须是一个非空初始值,复杂类型则是一个以new开头的初始化项. 2.匿名类型的属性是只读的,没有属性设置器,它一旦倍初始化就不可更改. 3.如果两个匿名类型的属性值相同,那么就任务这两个匿名类型

C#值类型装箱后能改变其值吗

当把一个值类型赋值给引用类型,这个过程可以看作是"装箱". object a = 10; 以上,堆栈上的过程大致是:1.在栈上开辟空间给变量a2.在堆上开辟空间,习惯上把该空间看作是"箱子"3.把10"装箱" 变量a指向堆上值为10的对象,换句话说,变量a的值是堆上对象的地址. 现在,如果我们想让a=11,可能首先想到的是:让"箱子"内的10自增1,变成11. 尝试这样做: oject a = 10; a++; 结果报错:++

JavaScript判断对象类型及节点类型、节点名称和节点值

一.JavaScript判断对象类型 1.可以使用typeof函数判断对象类型 1 function checkObject1(){ 2 var str="str"; 3 console.log(typeof(str))//输出"string"; 4 console.log(typeof(str)=="string")//输出true; 5 }? 2.使用对象的构造函数属性(constructor),来判断对象的类型: 1 function ch

5.terms搜索多个值以及多值搜索结果优化

主要知识点 terms搜索多个值,并和term的比较 一.term和terms terms是在这个字段中搜索多个值,相当于sql中的in语法 (select * from tbl where col in ("value1", "value2")) term: {"field": "value"} terms: {"field": ["value1", "value2"

java获取对象属性类型、属性名称、属性值

因为项目需要用到,于是简单封装了一些常用的操作: [java] view plaincopy /** * 根据属性名获取属性值 * */ private Object getFieldValueByName(String fieldName, Object o) { try { String firstLetter = fieldName.substring(0, 1).toUpperCase(); String getter = "get" + firstLetter + field

float类型的最大值与实际可用值

前段时间打代码时发现了一些关于float类型奇妙现象,拿出来和大家分享一下. 在linux上运行如下代码: #include<stdio.h>int main(){  float a=16777216;  float b=16777217;  float c=16777218;  float d=16777219;  float e=16777220; printf("a=%f\n",a);  printf("b=%f\n",b);  printf(&q

[转]java基本类型(内置类型)取值范围

原文地址:java求职重点归纳(8)--基本类型(内置类型)例作者:smallcat 例1: public class PrimitiveTypeTest { public static void main(String[] args) { // byte System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE); System.out.println("包装类:java.lang.Byte"); System.out.p

java基本类型有哪些?缺省值是什么?

基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte.short.int.long.float.double.数值类型又可以分为整数类型byte.short.int.long和浮点数类型float.double.  基本类型            默认值 boolean            false char               '\u0000' (null) byte               (byte)0 short              (