博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(61) 总结字段更新方法
阅读量:7001 次
发布时间:2019-06-27

本文共 803 字,大约阅读时间需要 2 分钟。

前言:

当我们建立一个记录后,随着后面的流程,这个记录有些字段是要更改的

 

采用onchange更改

@api.onchange('sale_id')

def onchange_sale_id(self):
   
if self
.sale_id:
       
self.sale_order_site = self
.sale_id.sale_order_site
sale_id = fields.Many2one(
'sale.order', 'Sale Order'
,
                         
domain=lambda self: [('user_id', '=', self.env.uid),('state','!=','cancel'
)],
                          )

 

当我们改变销售订单,对应的网单号就会跟着变

 

 

采用compute 更改

 

 

 

 

这样就会根据 'amount','back_amount','currency_id','payment_date' 的变化来计算

amount_net 的值,这里要注意,要改变的字段,一定要调用这个计算方法 如:

compute='_get_amount_net', 若不加在指定的字段上,你在方法中写self.amount_net = xxx  这样是不会保存在数据库中的

 

采用其它操作时更改

 

比如当我取消订单时 要改变记录一些字段的值

 

 

 

注意事项:

权限很麻烦 ,有时仓库在出货,要改变销售订单的出货状态,这要求仓库人员有 写的权限

但我们又想,给他们,这时就在代码中临时给一个高权限的用户操作  采用 sudo()方法来操作

比如我上面

order.sudo(yj_robot_id).payment_state = 'cancel'

yj_robot_id  这是我自己建立的一个高权限用户,专门用来处理少权限的操作

转载于:https://www.cnblogs.com/toby2chen/p/8358967.html

你可能感兴趣的文章
2016"百度之星" - 资格赛(Astar Round1)
查看>>
批量修改横断面图高程范围
查看>>
Java高并发程序设计学习笔记(八):NIO和AIO
查看>>
java javax.annotation.Resource注解的详解
查看>>
lombok 介绍及基本使用方法
查看>>
mybatis的if标签判断子类属性-There is no getter for property named 'export' in
查看>>
static变量和方法
查看>>
过度自信是创业者的通行证
查看>>
关键字和保留字
查看>>
Springboot 图标更换
查看>>
HDU Problem 2546 饭卡【01背包】
查看>>
BS4
查看>>
vue+webpack使用
查看>>
php 生成器 入门理解
查看>>
ASP.NET缓存分析和实践浅析
查看>>
利用IDEA构建springboot应用-数据库操作(Mysql)
查看>>
c#导出Excel操作
查看>>
mysql
查看>>
sun.misc.Unsafe CAS
查看>>
欧拉函数算法
查看>>