Odoo 8 Python 如何分配 Many2many 或 one2many XMLRPC 创建对象
Odoo 8 Python How To assign Many2many Or one2many XMLRPC Create object
我需要 XMLRPC 的帮助,我正在使用 python,我正在尝试创建产品变体,我需要为字段 many2many 赋值,这是我的代码
idProductLineAttributeLine =
models.execute_kw(db,uid,password,'product.attribute.line','create',
[{'product_tmpl_id':idProduct,'attribute_id':idAttr,'value_ids': (6,0,
[idValue])}])
如果我分配的是普通字段,一切正常,但是当涉及到 many2many 字段或 one2many 字段时,它的显示箭头是这样的
in __dump\nTypeError: cannot marshal <type 'builtin_function_or_method'> objects\n", "message": "cannot marshal <type 'builtin_function_or_method'> objects", "name": "exceptions.TypeError", "arguments": ["cannot marshal <type 'builtin_function_or_method'> objects"]}}}
我做错了什么?请帮助我 :) ,先谢谢了
在 odoo essential 一书中说我也必须使用这个来分配 many2many 值或 one2many 值但仍然没有运气
(0,_ ,{' field': value}): This creates a new record and links it to this one
(1, id,{' field': value}): This updates values on an already linked record
(2, id,_): This unlinks and deletes a related record
(3, id,_): This unlinks but does not delete a related record
(4, id,_): This links an already existing record
(5,_,_): This unlinks but does not delete all linked records
(6,_,[ ids]): This replaces the list of linked records with the provided list
已更新
我设法通过向 dccdany 添加 [] thx 来指出这一点来解决这个问题 :),并将产品变体添加到产品
models.execute_kw(db,uid,password,'product.attribute.line','create', [{'product_tmpl_id':idProduct,'attribute_id':idAttr,'value_ids': (6,0, [idValue])}])
,但产品变体不会自动生成,我仍然需要通过编辑和保存手动刷新产品,不知道为什么?
如屏幕截图所示,有 4 个产品变体,但右上角附近的状态仅显示 3 个变体,我是不是错过了什么??
在上面的代码中,您只是添加了新的 product.attribute.line.Technically odoo 将创建新的属性行,但是当产品模板写入方法将调用时,系统将调用方法 create_variant_ids 并创建新的变体。
以下是创建或更新变体的最简单方法。
models.execute_kw(db,uid,password,'product.attribute.line','create', [{'product_tmpl_id':idProduct,'attribute_id':idAttr,'value_ids': (6,0, [idValue])}])
models.execute_kw(db,uid,password,'product.template','write',{'active':True})
当您调用商品模板写入方法时系统会调用create_variant_ids.
的方法
这可能对您有所帮助。
我需要 XMLRPC 的帮助,我正在使用 python,我正在尝试创建产品变体,我需要为字段 many2many 赋值,这是我的代码
idProductLineAttributeLine =
models.execute_kw(db,uid,password,'product.attribute.line','create',
[{'product_tmpl_id':idProduct,'attribute_id':idAttr,'value_ids': (6,0,
[idValue])}])
如果我分配的是普通字段,一切正常,但是当涉及到 many2many 字段或 one2many 字段时,它的显示箭头是这样的
in __dump\nTypeError: cannot marshal <type 'builtin_function_or_method'> objects\n", "message": "cannot marshal <type 'builtin_function_or_method'> objects", "name": "exceptions.TypeError", "arguments": ["cannot marshal <type 'builtin_function_or_method'> objects"]}}}
我做错了什么?请帮助我 :) ,先谢谢了
在 odoo essential 一书中说我也必须使用这个来分配 many2many 值或 one2many 值但仍然没有运气
(0,_ ,{' field': value}): This creates a new record and links it to this one
(1, id,{' field': value}): This updates values on an already linked record
(2, id,_): This unlinks and deletes a related record
(3, id,_): This unlinks but does not delete a related record
(4, id,_): This links an already existing record
(5,_,_): This unlinks but does not delete all linked records
(6,_,[ ids]): This replaces the list of linked records with the provided list
已更新 我设法通过向 dccdany 添加 [] thx 来指出这一点来解决这个问题 :),并将产品变体添加到产品
models.execute_kw(db,uid,password,'product.attribute.line','create', [{'product_tmpl_id':idProduct,'attribute_id':idAttr,'value_ids': (6,0, [idValue])}])
,但产品变体不会自动生成,我仍然需要通过编辑和保存手动刷新产品,不知道为什么?
如屏幕截图所示,有 4 个产品变体,但右上角附近的状态仅显示 3 个变体,我是不是错过了什么??
在上面的代码中,您只是添加了新的 product.attribute.line.Technically odoo 将创建新的属性行,但是当产品模板写入方法将调用时,系统将调用方法 create_variant_ids 并创建新的变体。
以下是创建或更新变体的最简单方法。
models.execute_kw(db,uid,password,'product.attribute.line','create', [{'product_tmpl_id':idProduct,'attribute_id':idAttr,'value_ids': (6,0, [idValue])}])
models.execute_kw(db,uid,password,'product.template','write',{'active':True})
当您调用商品模板写入方法时系统会调用create_variant_ids.
的方法这可能对您有所帮助。