首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从Odoo8中的另一个函数字段中定义one2many字段的域?

在Odoo8中,可以通过在另一个函数字段中定义one2many字段的域。下面是一个示例:

代码语言:txt
复制
from openerp import models, fields, api

class ModelA(models.Model):
    _name = 'model.a'

    name = fields.Char(string='Name')
    model_b_ids = fields.One2many(comodel_name='model.b', inverse_name='model_a_id', string='Model B')

    @api.multi
    def compute_model_b_ids(self):
        for record in self:
            # 根据需要的条件筛选model.b记录
            domain = [('field_name', '=', record.name)]
            model_b_records = self.env['model.b'].search(domain)
            record.model_b_ids = [(6, 0, model_b_records.ids)]

class ModelB(models.Model):
    _name = 'model.b'

    name = fields.Char(string='Name')
    model_a_id = fields.Many2one(comodel_name='model.a', string='Model A')

在上面的示例中,我们有两个模型:ModelA和ModelB。ModelA具有一个名为model_b_ids的one2many字段,它与ModelB相关联。我们在ModelA中定义了一个名为compute_model_b_ids的函数字段,它用于计算model_b_ids字段的域。

compute_model_b_ids函数中,我们可以根据需要的条件筛选ModelB记录,并将结果赋值给model_b_ids字段。在这个例子中,我们使用了一个简单的条件field_name = record.name,你可以根据实际需求进行修改。

请注意,我们使用了[(6, 0, model_b_records.ids)]来更新model_b_ids字段。这是Odoo中用于更新one2many字段的特殊语法。其中,6表示替换所有现有的关联记录,0表示不添加新的关联记录,model_b_records.ids是要关联的记录的ID列表。

这样,当ModelA的name字段发生变化时,compute_model_b_ids函数将自动计算并更新model_b_ids字段的域。

推荐的腾讯云相关产品:腾讯云服务器(https://cloud.tencent.com/product/cvm)

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MySQL 定义数据字段类型

MySQL定义数据字段类型对你数据库优化是非常重要。 MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。...关键字INT是INTEGER同义词,关键字DEC是DECIMAL同义词。 BIT数据类型保存位字段值,并且支持MyISAM、MEMORY、InnoDB和BDB表。...该节描述了这些类型如何工作以及如何在查询中使用这些类型。...LONGTEXT 0-4 294 967 295 bytes 极大文本数据 注意:char(n) 和 varchar(n) 括号 n 代表字符个数,并不代表字节个数,比如 CHAR(30)...CHAR 和 VARCHAR 类型类似,但它们保存和检索方式不同。它们最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程不进行大小写转换。

2.4K00
  • MySQL 如何查询表名包含某字段

    information_schema.tables 指数据库表(information_schema.columns 指列) table_schema 指数据库名称 table_type 指是表类型...(base table 指基本表,不包含系统表) table_name 指具体表名 如查询work_ad数据库是否存在包含”user”关键字数据表 select table_name from...如何查询表名包含某字段表 select * from systables where tabname like 'saa%' 此法只对Informix数据库有用 查询指定数据库中指定表所有字段名column_name...table_schema from information_schema.tables where table_schema = ‘test’ group by table_schema; mysql查询到包含该字段所有表名...SELECT TABLE_NAME FROM information_schema.COLUMNS WHERE COLUMN_NAME='字段名' 如:查询包含status 字段数据表名 select

    12.5K40

    Java开发如何自动填充SQL语句中公共字段

    MetaObjectHandler {     @Override     public void insertFill(MetaObject metaObject) {         // 声明自动填充字段逻辑...把公共审计字段放进去并声明对应填充策略: public abstract class BaseEntity<T extends Model<?...,当然你可以根据需要添加更多你需要填充字段。...总结 今天我们 SQL 审计一些公共字段自动填充常用方案进行了一些介绍,特别对Mybatis Plus提供功能进行了介绍相信能够帮助你简化一些样板代码编写。...如果设计更加精细化的话,会通过镜像或探针方式采集所有数据库访问流量,并基于 SQL 语法、语义解析技术,记录下数据库所有访问和操作行为。有空可以网上获取相关资料进行了解。今天就到这里。

    2K10

    mysql sum函数对两字段做运算时有null时情况

    背景 在针对一些数据进行统计汇总时候,有时会对表某些字段进行逻辑运算,如加减乘除,如果要求和的话还可能会用到sum函数,如果两者结合起来应该怎么处理,如果参与运算字段中出现null值时候会出现一些什么情况...InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci 数据如下 如上表所示,用户信息表中有账户总金额和冻结金额字段...根据表数据,我们知道统计后正确结果应该是 (2000 - 50) + (1500 - 100) + (500 - 50) + 1000 = 4800 但如果我们这么写,那么得到结果是错误。...1000而是null,因为null与任何值比较和运算结果都是null,所以我们应该针对null做特殊处理。...需要主要这样写也是没有用,因为里面1000-null,仍然是一个错误结果 select ifnull(sum(total_amount - freeze_amount),0) from user

    95910

    ​一日一技:如何替换URLquery字段

    每次请求时候返回下一页参数after。当要访问下一页时候,用这个参数替换当前urlafter=后面的参数。 这样一来,替换url参数就并不是一件简单事情了。...ParseResult 对象.query 属性,是一个字符串,也就是网址,问号后面的内容,格式如下: parse_qs与urlencode也是一对相反函数。...其中前者把 .query输出字符串转成字典,而后者把字段转成.query形式字符串: 当使用parse_qs把 query转成字典以后,就可以修改参数值,然后再重新转回去。...由于ParseResult对象.query属性是只读属性,不能覆盖,因此我们需要调用一个内部方法._replace把新.query字段替换上去,生成新 ParseResult对象。...以上,就是今天我们介绍如何使用urllib自带函数替换网址字段。 END

    1.7K20

    如何处理数据库表字段特殊字符?

    现网业务运行过程,可能会遇到数据库表字段值包含特殊字符场景,此场景虽然不常见,但只要一出现,其影响却往往是致命,且排查难度较高,非常有必要了解一下。...表字段特殊字符可以分为两类:可见字符、不可见字符。...可见字符处理 业务原始数据一般是文本文件,因此,数据插入数据库表时需要按照分隔符进行分割,字段包含约定分隔符、文本识别符都属于特殊字符。...,对于不可见字符例如:换行符LF、回车键CR,又该如何处理呢?...UPDATE `WORKORDER` SET WORKID = REPLACE(REPLACE(WORKID, CHAR(10),''), CHAR(13),''); -- 这里使用了函数嵌套

    4.7K20

    NewLife.XCode如何借助分部抽象多个具有很多共同字段实体类

    背景: 两个实体类:租房图片、售房图片 这两个表用于存储房源图片记录,一个房源对应多个图片,两个表差别就在于一个业务关联字段。...由于XCode是充血模型,我们可以为这两个实体类做一个统一基类来达到我目的,但是这个统一基类里面无法访问子类字段,编码上很不方便。 这一次,我们用分部接口!...先来看看这两个实体类 image.png image.png 这两个实体类,就RentID和SaleID字段不同,其它都一样,包括名字、类型、业务意义。...实际上也不应该修改原有的接口文件,因为原有的接口位于实体类数据类文件,那是随时会被新代码生成覆盖。...IHouseImage接口里面的属性,是IRentimage里面拷贝过来,然后删掉RentID 如果不要那个BizID,那么我们工作就算完成了,不需要对原有的实体类代码进行任何修改。

    2.2K60

    Mysql 查询某个字段是否包某个字符串几种函数及对比

    在工作,有时候,我们会遇到这种需求,比如 ,批量修改某个字段数据值,这个字段又是字符串且这些字符串都包含指定特殊字符串,这个时候怎么办呢?...分析: 一:查询a表,sys_pid字段包含359950439_所有数据。 二:在字段前添加mm_xxx_ 1:查询包含359950439_所有数据怎么查询?... '%359950439_%'; 1.2:使用find_in_set函数 语法: select 字段名称 from 表名 where find_in_set('模糊keyword',字段); sql:... locate('模糊keyword',字段); sql: select * from  a where locate('359950439_',sys_pid); 1.4:使用instr函数 语法...需要注意是: find_in_set函数,find_in_set(str1,str2)函数是返回str2str1所在位置索引,str2必须以","分割开。

    5K30

    iOS开发·KVC:字典转模型,防止因本地未定义字段(后台字段与本地字符串名不一致)导致数据转换过程奔溃

    笔者KVC系列为: iOS开发·KVC:字典转模型,防止因本地未定义字段(后台字段与本地字符串名不一致)导致数据转换过程奔溃 iOS开发·runtime+KVC实现字典模型转换 1....含有模型未定义属性同名字段字典 字典转模型过程也会遇到一些问题,比如,字典里面有多余keyValue,但是模型没有定义同名属性,使用setValuesForKeysWithDictionary就会崩溃了...但是,只需要重写- (void)setValue:(id)value forUndefinedKey:(NSString *)key方法即可防止未定义字段与本地字符串名不一致导致奔溃。...含有系统关键字同名字段字典 如上所示,许多JSON数据里面会有一个id字段, 而id是iOS一个关键字,不能用关键字定义属性名,此时我们就需要在model类修改这个属性名字,并在- (void...)setValue:(id)value forUndefinedKey:(NSString *)key方法体重写该方法,以针对id字段作特殊处理。

    1.4K20
    领券