openerp related字段解读

百度就会看到一些对related的解读,但始终有些疑惑,今天终于弄懂了

related:
关联字段,表示本字段引用关联表中的某字段。格式为:fields.related(关系字段,引用字段,type, relation, string,
...),关系字段是本对象的某字段(通常是one2many or
many2many),引用字段是通过关系字段关联的数据表的字段,type是引用字段的类型,如果type是many2one or many2many,
relation指明关联表。例子如下:

‘address‘: fields.one2many(‘res.partner.address‘,
‘partner_id‘, ‘Contacts‘),
      
‘city‘:fields.related(‘address‘,‘city‘,type=‘char‘, string=‘City‘),
 
    
‘country‘:fields.related(‘address‘,‘country_id‘,type=‘many2one‘,
relation=‘res.country‘, string=‘Country‘),

这里,city引用address的city字段,country引用address的country对象。在address的关联对象res.partner.address中,country_id是many2one类型的字段,所以type=‘many2one‘,
relation=‘res.country‘。

解读:address 是一个one2many说明它是一个res.partner.address 对象,city就依赖address对象的city字段
,去res.partner.address中查看city是char 类型,所以city type=‘char’

country 依赖address的country_id
字段,同样的方式,去res.partner.address中查看是many2one类型,对应‘res.country‘,所以也是many2one

openerp related字段解读,布布扣,bubuko.com

时间: 2024-10-19 03:24:11

openerp related字段解读的相关文章

OpenERP对象字段定义的详解

OpenERP对象支持的字段类型有,基础类型:char, text, boolean, integer, float, date, time, datetime, binary:复杂类型:selection, function, related:关系类型:one2one, one2many, many2one, many2many.下面逐一说明. boolean: 布尔型(true, false) integer: 整数. float: 浮点型,如 'rate' : fields.float('

openerp 报表字段 report_rml_content_data

按需求修改一个报表,本想按照打印出来的报表内容搜索rml文件,找到需要修改的rml问加. 但是发现搜索不到,后来查询报表动作,确认对应的rml文件中,没有发现 "报表中" 的字串. 猜测可能是rml直接存入数据库了,果然在表ir_act_report_xml 中找到了report_rml_content_data ,report_sxw_content_data字段. 原因是使用base_report_designer模块,使用openoffice 直接修改报表上传后, rml 和 s

ARP协议字段解读

Hardware type : 硬件类型,识别链路层协议 Protocol type : 协议类型,标识网络层协议 Hardware size : 硬件地址大小,标识MAC地址长度,这里是6个字节(48bit) Protocol size : 协议地址大小,标识IP地址长度,这里是4个字节(32bit) Opcode : 操作代码,标识ARP数据包类型,1表示请求,2表示回应 Sender MAC address : 发送者MAC Sender IP address : 发送者IP Target

Redis内存模型及应用解读 读后随笔

文章出处: Redis内存模型及应用解读 https://dbaplus.cn/news-158-2127-1.html 第一部分:Redis内存统计 随笔:这一部分略显枯燥,是通过redis-cli连接redis后对于info命令的结果字段解读,属于较底层的部分,熟悉redis在操作系统中的实现会更容易理解这部分. 这段对于我的帮助 1.redis进程运行本身会需要内存和内存碎片,同时redis中还存在虚拟内存 2.mem_fragmentation_ratio表示内存碎片比率,mem_fra

[图解]ARP协议(一)

一.ARP概述 如果要在TCP/IP协议栈中选择一个"最不安全的协议",那么我会毫不犹豫把票投给ARP协议.我们经常听到的这些术语,包括"网络扫描"."内网渗透"."中间人拦截"."局域网流控"."流量欺骗",基本都跟ARP脱不了干系.大量的安全工具,例如大名鼎鼎的Cain.功能完备的Ettercap.操作傻瓜式的P2P终结者,底层都要基于ARP实现. 听上去这么"逆天&quo

Android混淆

一.为什么要混淆 为了避免apk在发布后被用户通过反编译拿到源代码和资源文件,然后修改资源和代码之后就变成一个新的apk.而经过混淆后的APK,即使被反编译,也难以阅读,注意混淆不是让apk不能阅读,而是加大阅读的难度,为了避免劳动成果被窃取,也避免出现安全漏洞和隐患,所以在apk发布之前一定要进行混淆. 二.混淆的原理 Java是一种跨平台.解释型语言,Java源代码编译成的class文件中有大量包含语义的变量名.方法名的信息,很容易被反编译为Java源代码.为了防止这种现象,我们可以对Jav

tcprstat的使用方式

两种使用方式:1)本机直接在线采集:2)分析tcpdump采集到的离线pcap文件 1. 本机直接在线采集 参数: -p :指定只采集此TCP port的请求 -t  : 采集输出的时间间隔,默认为10 -n : 指定输出打印的次数,默认为1,只打印1次:如果指定为0表示无限次(ctr+c终止) 示例一:指定MySQL的port如3306, 时间间隔1S, 打印次数为无限次. tcprstat -l `hostname -i` -p 3306 -t 1 -n 0timestamp count m

GlusterFS快速安装

GlusterFS快速安装 安装前准备 这边最少需要三台机器,所有机器关闭防火墙和Selinux,所有机器需要两块硬盘, systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i "s#SELINUX=enforcing#SELINUX=disabled#g" /etc/selinux/config 添加hosts文件,其实通过IP地址也能做集群,但是不建议这种方式,因为我们通过域名你就是替换节点i

MySQL军规升级版(转)

一.基础规范 表存储引擎必须使用InnoDB 表字符集默认使用utf8,必要时候使用utf8mb4 解读:(1)通用,无乱码风险,汉字3字节,英文1字节(2)utf8mb4是utf8的超集,有存储4字节例如表情符号时,使用它 禁止使用存储过程,视图,触发器,Event 解读:(1)对数据库性能影响较大,互联网业务,能让站点层和服务层干的事情,不要交到数据库层(2)调试,排错,迁移都比较困难,扩展性较差 禁止在数据库中存储大文件,例如照片,可以将大文件存储在对象存储系统,数据库中存储路径 禁止在线