odoo12
odoo 总结要点
1. compute 计算方法中不要 使用 write 方法,使用无效
2. sql 中
不使用
sql = "select * from table where id in (%s)"
cr.execute(sql % "1,2,3")
改为
sql = "select * from table where id = any(%s)"
cr.execute(sql, [[1,2,3]]) 效率高
3.装饰器:
api.model 不会对 传递过去的第一个参数解析为 后面 self 的值,故后面的 self 对象为空
api.multi 会解析 第一个参数 例如 [17] 为 self 对象
api.one 会对函数返回值包装个列表返回,使得老版本客户端无法解析返回值报错
4.sql 老版本中的 timezone --> TIME ZONE
5.Many2one 中若使用了 related 关联字段,不会存储与数据库中
python odoo-bin -c odoo.conf -u clothes
代码要点 记录
规范
1.防注入,不能使用字符串拼接sql
2.加上注释
3.适当的封装代码
4.代码语句不要过长
5.文件命名规则要规范
6.类的命名规范
命名规则
one2many _ids
many2one _id
many2many _ids
pg 导入数据库(到pg bin 目录下 运行) D:\postgresSQL\bin
psql -d xzti -U odoo12 -f C:\Users\Libai\Desktop\work-file\project\xzti\xzti.sql
odoo 数据库中 存储的 时间字段 和 北京时间 相差八个小时
关于 related 字段
老版本的odoo9 转换 odoo12
company_id = fields.related('warehouse_id', 'company_id', type='many2one', relation='res.company', string=u'所属公司',store=True)
改为 -->
company_id = fields.Many2one('res.company', u'所属公司', related='warehouse_id.company_id', store=True)
odoo12 模块继承修改 ir.needaction_mixin --> mail.activity.mixin