python - "disable"on_change id odoo 9 创建产品后

标签 python postgresql odoo odoo-9

我想问一下,当产品已经创建时,是否有任何方法可以“禁用”onchange 装饰器。

我有一个字段 (X),其值取决于 3 个其他字段 (Y) 中的内容。我用过“api.onchange”。创建产品时,我想让 Y 字段之一不再更改 X 的值。

我尝试检查数据库中是否存在“self”,如 exists(),但即使是新记录也被标记为“已存在”。我试图访问 self.id,但这是不可能的。我想过用 bool 类型创建额外的字段,但这是最后的手段。

最佳答案

新 API

第一张图片我在 product.template 的名称中添加了一个 onchange 事件我使用 Debug模式停止程序并查看我是否可以访问 self._origin显然我可以访问它

enter image description here

第二张图片显示,当我更新产品时,ID 值已传递

enter image description here

现在第三张图片显示,当我创建新产品时,self._origin 中的 id 的值为 False

enter image description here

所以你可以发布使用过的代码吗?我想了解为什么你无法访问 self._origin

旧 API

当使用旧的 api 时,self._origin 无法访问,但您在编辑模式下拥有 ID 列表,该列表不会为空。

def onchange_name(self, cr, uid, ids, name, context=None):
        # when updating a record ids will not be empty
        # in my case will be ids=[55]
        # in create mode the ids is empty
        # id = []
        if not ids :
             # here you are in create mode you put your logic here

关于python - "disable"on_change id odoo 9 创建产品后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46795215/

相关文章:

python - 在 Mint : follow-up 上安装 M2Crypto 时出现问题

Python - 从 pandas 的聚合结果中获取组名称

Postgresql如何连接字符串但仅当值不同时?

ruby-on-rails - Ruby on Rails 搜索数组(事件记录)

oracle - 如何禁用与 Oracle 中的表有关的所有触发器?

python - 如何从原始数据创建 libpgm 离散贝叶斯网络 CPD/数据文件

python - Django 需要 IDE 吗?

python - 如何在 OpenERP 模块中使用 win32print?

python - 在 odoo 10 中创建新对象后如何调用我的方法?

python - 在 View 级别创建 odoo 模型