from odoo import models,fields
# car/models/car.py
class Car(models.Model):
_name = 'car.car'
name = fields.Char('Car name', size=25)
brand = fields.Char('Car brand',default='Citroën DS',size=25)
country = fields.Char('Country name ',default='France',size=30)
def __init__(self):
return 'The car name is : %s,\nIts brand is : %s,\nIts manufactured country is : %s.\n' % (self.name,self.brand,self.country)
# car/models/product_template.py
class ProductTemplate(models.Model):
_inherits = 'product.template'
_name = 'product.template'
car = fields.Many2one('car.car', string='Car name', ondelete='SET NULL', auto_join=True)
我的错误是:在将汽车信息输入“销售/产品/产品”之前,在“常规信息”选项卡中,我在“产品类型”字段中选择了“可存储产品”值。现在,我正在成功填写汽车信息,“保存”。我想编辑“产品类型”的值,从“可存储产品”到“消耗品”或“服务”,我得到了 此错误:
文件“ /odoo/odoo12/odoo/models.py”,行5384,在onchange中 对于cmd中的值[名称]: TypeError:“ int”对象不可迭代”
请帮助。
答案 0 :(得分:0)
car_id = fields.Many2one('car.car', string='Car name', ... )
答案 1 :(得分:0)
您覆盖__init__
方法并更改了其签名,Odoo将引发以下错误:
TypeError: __init__() takes 1 positional argument but 3 were given
您可以尝试:
def __init__(self, pool, cr):
使用inherits
时,请提供新名称(_name = new
),因为如上所用,Odoo会引发错误:
ValueError in (cls._inherits.update(base._inherits)): dictionary update sequence element #0 has length 1; 2 is required
要将car
添加到现有模型product.template
中,您需要使用inherit
(在此示例中,不必使用_name)。在inheritance-and-extension
inherit
和inherits
之间的差异
根据错误消息和行号,在评估 on_change 方法中的 x2many 字段时会引发错误。它与car
字段无关。