odoo开发笔记–模型字段compute用法
compute属性,实现的主要功能是,前端界面选择某个字段的时候,指定与该字段关联的其他字段可以关联,并联动的显示。

可以和inverse属性同时使用,不加inverse属性的话,前端界面的显示效果只是只读样式,不能编辑修改;而加上inverse属性时候,相应的关联字段可以修改,

但是,修改后,实际上修改的是原表;即会将原表的数据级联更改。

复制代码
class HelloJesson(models.Model):
_name = ‘test.cus_goods_list’
# rec_name = ‘goods_name’
_inherit = [‘mail.thread’, ‘ir.needaction_mixin’]
_description = ‘Test Goods List’

goods_name = fields.Char(compute='_generate_about_name', string="goods name", inverse='_write_stage_fold')
cus_goods_tariff_id = fields.Many2one(comodel_name="other_yourself_model.cus_goods_tariff", string="cus goods Code TS", required=False, )  @api.onchange('cus_goods_tariff_id')
def _generate_about_name(self):"""根据当前cus_goods_tariff_id的变化 动态关联显示goods_name"""for goods_list in self:if goods_list.cus_goods_tariff_id:goods_list.goods_name = goods_list.cus_goods_tariff_id.NameCNdef _write_stage_fold(self):""" inverse='_write_stage_fold' 增加可编辑功能 但是inverse会将原来表中的数据级联修改"""for goods_list in self:if goods_list.cus_goods_tariff_id:goods_list.cus_goods_tariff_id.NameCN = self.goods_name

复制代码
实现compute字段 前端可以编辑修改的方法有两种:

(1)我们可以在模型定义中,再单独添加一个字段g_name,然后该字段根据compute生成的那个字段good_name的值进行取值并赋值给g_name;

复制代码
class HelloJesson(models.Model):
_name = ‘test.cus_goods_list’
rec_name = ‘g_name’
_inherit = [‘mail.thread’, ‘ir.needaction_mixin’]
_description = ‘Test Goods List’

g_name = fields.Char(string="goods name")  # 商品名称
goods_name = fields.Char(compute='_generate_about_name', string="goods name", store=True)  # 商品名称
cus_goods_tariff_id = fields.Many2one(comodel_name="other_yourself_model.cus_goods_tariff", string="cus goods Code TS", required=False, )  @api.onchange('goods_name')
def change_name(self):"""由于compute字段前端无法编辑,定义新方法,ID改变生成商品名改变goods_name,再由goods_name的变化,触发赋值给g_name"""for goods_list in self:if goods_list.goods_name:# goods_list.update({'name': goods_list.goods_name})goods_list.g_name = goods_list.goods_name@api.depends('cus_goods_tariff_id')
def _generate_about_name(self):"""根据cus_goods_tariff_id编码的变化 改变goods_name"""for goods_list in self:if goods_list.cus_goods_tariff_id:goods_list.goods_name = goods_list.cus_goods_tariff_id.NameCN

复制代码
(2)方式二,可以直接将compute属性去掉,装饰器使用@api.onchange,可以直接实现前端相关字段动态生成,并且可以编辑的效果。

compute用法 odoo相关推荐

  1. 拖拽报表设计香不香—JimuReport 1.4.0新特性

    11月初我们发布了1.4.0里程碑稳定版本,增加了一些新功能包括丰富了查询控件.支持查询JS/CSS增强.支持mongodb.redis.存储过程数据集.支持分组小计.支持图表钻取.条件钻取.支持表格 ...

  2. 熟悉GitHub、VS工具的使用(《构建之法》第二次作业)

    GIT地址 https://github.com/slothph GIT用户名 slothph 学号后五位    62323 博客地址 https://www.cnblogs.com/slothph/ ...

  3. 如何使用odoo的compute方法,自动计算odoo字段

    前言 在odoo的ORM创建数据字段的过程中,我们会经常需要定义一些字段用来计算某一些字段只和或其他计算结果. 今天介绍一个很好用的方法compute计算属性,这个方法其实是属于写在odoo fiel ...

  4. Odoo 模型字段自动计算(compute)

    在odoo的ORM创建数据字段的过程中,我们会经常需要定义一些字段用来计算某一些字段只和或其他计算结果. 今天介绍一个很好用的方法compute计算属性,这个方法其实是属于写在odoo fields中 ...

  5. SQL*Plus break与compute的简单用法

    [img]http://dl2.iteye.com/upload/attachment/0099/4950/75ee3f77-368a-30c4-a9e5-1e6949c09ae8.jpg[/img] ...

  6. mysql中和compute同等作用的_MYSQL中Group By的原理和用法

    合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句. GROUP BY 语句 GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组. SQL GROUP BY 语法 ...

  7. C#中Datatable的Compute的用法(转载)

    DataTable dt = new DataTable(); //嵌套的三元运算(iif判断)object obj = dt.Compute("iif(1000=5,1000,iif(10 ...

  8. odoo with_context的用法

    context在odoo里面用的非常普遍,是一个在上下文传递参数的办法. 可以用在self 记录集等等场合,举例来说 move.with_context(check_move_validity=Fal ...

  9. 小白读odoo参考手册--字段

    本文引用'刘金亮'的<odoo 快速入门与实战>的节选内容,同时也归纳了多为大神和自己(odoo小白)的总结,在文章的结尾,也会列出参考的文献,作者,及作品连接,方便大家查看与学习.会不定 ...

最新文章

  1. HTML5CANVAS画布教程
  2. **极光推送PHP服务器端推送移动设备消息(Jpush V2 api)
  3. 我们遇到困难怎么办?
  4. Cloud 学习笔记10.MapReduce 容错
  5. mysql 优化器不准_mysql 优化器有哪些可选开关
  6. SAP UI5 应用的中文乱码问题
  7. 只能获取fixed语句初始值_因用了Insert into select语句,美女同事被开除了!
  8. matlab弗洛伊德算法,MATLAB弗洛伊德算法结果有疑惑,求大神解答
  9. MDM之Goodness分析报告
  10. linux内核 eql.c,Linux Kernel EQL_GETMASTRCFG请求内核信息泄露漏洞
  11. android之专栏目录
  12. 固高运动控制卡原点回零函数
  13. 产品经理懂点技术之:大话5G
  14. R:基于每股权益的量化分析 —— PEG估值法
  15. 华为HCNE考试练习题经典模拟题
  16. .Net6 图片转文字PictureToTxt
  17. 二叉树的性质及其创建
  18. Java 关于中文乱码问题的解决方案与经验(转)
  19. 清华学堂东侧木质结构焚毁心痛不已
  20. 使用scrapy爬虫框架来获取腾讯的招聘信息

热门文章

  1. Juniper BGP选路原则
  2. 高德图层加载有时出来有时不出来
  3. Windows下pip和conda安装包的用法区别以及如何快速安装包
  4. 模仿QQ左滑删除当前会话列表
  5. java中浅拷贝和深拷贝_java中的浅拷贝和深拷贝
  6. Firefox超速绝密方法
  7. 高端课后晚托品牌“文启优思”获数千万A+轮融资,源道投资、高思教育、柏宏锐尔合投... 1
  8. TGO鲲鹏会成立三周年,校长霍泰稳发表工作汇报
  9. ansa打开catia文件_ANSA方便快捷的CAE求解器设置 ——ANSYS求解器模板
  10. Python-Django毕业设计电影院售票系统论文(程序+LW)