Odoo10版本以上字段company_dependent属性用法实例

这里介绍‘company_depend’属性,以odoo12源代码为例:


odoo12源码定义:

	.. _field-company-dependent: 
	.. rubric:: Company-dependent fields
	
	  Formerly known as 'property' fields, the value of those fields depends
	  on the company. In other words, users that belong to different companies
	  may see different values for the field on a given record.
	  # 以前称为“property”字段,这些字段的值取决于在公司。换句话说,用户属于不同的公司可能在给定记录上看到字段的不同值。
	
	  :param company_dependent: whether the field is company-dependent (boolean)  # 是否依赖于公司

company_dependent: 依赖于Company的字段
假如一个用户属于多个公司,那么他在不同记录条件下得到的该字段值是不同的,参数company_dependent – boolean(默认False)


用法实例:
定义字段时,增加 company_dependent=True 属性:

	# 书籍
	class Book(models.Model):
	    _name = 'mine.book'
	    _order = 'id desc'
	    _description = '书籍'
	
	    name = fields.Char('书名', required=True)
	    author_id = fields.Many2one('mine.author', '作者', company_dependent=True)
	    categ_ids = fields.Many2many('mine.category', 'book_categ_rel', 'book_id', 'categ_id', '类别')
	    description = fields.Html('书籍简介')

测试值为作者字段

我们在创建一个测试公司,一个测试用户(绑定测试公司下),当使用当前用户,当前公司进入后创建一条记录,结果如下:
在这里插入图片描述
当切换用户登陆之后,会发现作者字段的值不可见:
在这里插入图片描述
点击编辑:
在这里插入图片描述

可以输入其他值,这样就实现了统一字段,在不同公司下显示不同的值。

注意:
亲测当给many2many, html类型字段加属性时,保存时会提示类型不符。


注意,增加company_dependent属性子厚,该字段不会存储在原有的表中,而是会存贮在ir_property这张表中:
ir_property表结构如下:
在这里插入图片描述
如果要查询当前公司下该对象的值就需要在ir_property这张表中进行查询。
其中:

  • name: 标识字段名称;
  • fields_id: 标识当前字段定义在ir_model_fields这张表中的id;
  • res_id: 标识当前对象的id;
  • company_id: 标识当前公司id;
  • type: 标识字段类型;
  • value_***: 标识字段值;

通过上述字段就可以查询company_dependent字段值为多少。

猜你喜欢

转载自blog.csdn.net/sinat_23931991/article/details/87883243