用 many2many 覆盖 many2one
Override many2one with many2many
我尝试用 many2many 覆盖 many2one 字段
property_product_pricelist = fields.Many2many('product.pricelist',
string="Sale Pricelist",
help="This pricelist will be used, instead of the default one, for sales to the current partner")
我在尝试保存值时遇到此错误
File "/home//workspace/odoo-9.0/openerp/models.py", line 5384, in _browse
env.prefetch[cls._name].update(ids)
TypeError: unhashable type: 'list'
我也这样试过
property_product_pricelist = fields.Many2many('product.pricelist', column1='partner_id', column2='pricelist_id')
但得到
ProgrammingError: column product_pricelist_res_partner_rel.pricelist_id does not exist
第 1 行:SELECTproduct_pricelist_res_partner_rel.pricelist_id,产品...
我想到的最佳解决方案。
- 创建一个全新的 many2many 字段
- 编写一个 onchange 方法,将原始字段(此处为 many2one)的值设置为新的 many2many 字段
multiply_pricelists_ids = fields.Many2many(
'product.pricelist', string='Multiply Pricelists')
@api.onchange('property_product_pricelist')
@api.multi
def pricelist_change(self):
self.multiply_pricelists_ids = self.property_product_pricelist
我尝试用 many2many 覆盖 many2one 字段
property_product_pricelist = fields.Many2many('product.pricelist',
string="Sale Pricelist",
help="This pricelist will be used, instead of the default one, for sales to the current partner")
我在尝试保存值时遇到此错误
File "/home//workspace/odoo-9.0/openerp/models.py", line 5384, in _browse
env.prefetch[cls._name].update(ids)
TypeError: unhashable type: 'list'
我也这样试过
property_product_pricelist = fields.Many2many('product.pricelist', column1='partner_id', column2='pricelist_id')
但得到
ProgrammingError: column product_pricelist_res_partner_rel.pricelist_id does not exist
第 1 行:SELECTproduct_pricelist_res_partner_rel.pricelist_id,产品...
我想到的最佳解决方案。
- 创建一个全新的 many2many 字段
- 编写一个 onchange 方法,将原始字段(此处为 many2one)的值设置为新的 many2many 字段
multiply_pricelists_ids = fields.Many2many(
'product.pricelist', string='Multiply Pricelists')
@api.onchange('property_product_pricelist')
@api.multi
def pricelist_change(self):
self.multiply_pricelists_ids = self.property_product_pricelist