Python &引用;禁用";在创建产品后更改id odoo 9
我想问一下,当产品已经创建时,是否有任何方法可以“禁用”onchange decorator 我有一个字段(X),它的值取决于其他3个字段(Y)中的内容。我使用了“api.onchange”。当产品被创建时,我想使其中一个Y字段不再改变X的值Python &引用;禁用";在创建产品后更改id odoo 9,python,postgresql,openerp,odoo-9,Python,Postgresql,Openerp,Odoo 9,我想问一下,当产品已经创建时,是否有任何方法可以“禁用”onchange decorator 我有一个字段(X),它的值取决于其他3个字段(Y)中的内容。我使用了“api.onchange”。当产品被创建时,我想使其中一个Y字段不再改变X的值 我试图检查数据库中是否存在“self”,如exists(),但即使是新记录也标记为“existing”。我试图访问self.id,但这是不可能的。我曾考虑用布尔类型创建其他字段,但这是最后的选择。新API 第一张图片我在产品的名称中添加了一个onchang
我试图检查数据库中是否存在“self”,如exists(),但即使是新记录也标记为“existing”。我试图访问self.id,但这是不可能的。我曾考虑用布尔类型创建其他字段,但这是最后的选择。新API 第一张图片我在
产品的名称中添加了一个onchange事件。模板
我使用调试模式停止程序,看看我是否有权访问self。_origin
显然我有权访问它
第二张图片显示,当我更新产品时,ID值被传递
现在,第三张图片显示了我在创建新产品时,self中的id
值为False
所以,你能发布使用的代码吗?我想了解你为什么没有访问self的权限
旧API
当使用旧api self.\u origin为not access,但您的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
谢谢你的回复。奥多不承认自己的本源。如果我试图使用它,那么odoo说,“product.template”对象没有属性“\u origin”
。我尝试了如果isinstance(self.\u origin,models.NewId)或isinstance(self.\u origin.id,models.NewId)
并且简单地打印(self.\u origin)
并且无论我是尝试创建新产品还是编辑现有产品,odoo都会在这一行崩溃。检查我的编辑我的问题您是如何实现onchange事件的