相关字段参考many2one字段错误行为

时间:2015-03-19 19:05:32

标签: python field openerp odoo

我有这堂课:

class caracteristica_fisica(osv.osv):
    _name = 'caracteristica.fisica'
    _columns = {
        'name': fields.char('Nombre',required=True),
 }

在产品类别中,我有一个很多2字段参考 caracteristica.fisica 模型:

class caracteristica_fisica(osv.osv):
    _inherit = 'product.category'
    _name = 'product.category'
    _columns = {
     'cf1':fields.many2one('caracteristica.fisica', 'Característica física 1')
    }

一旦我选择了这个很多的 cf1 字段,我需要这个值来在 comun.denominador 表中生成一条记录:

class comun_denominador(osv.osv):
    _name='comun.denominador'
    _columns = {
          'categ_id' : fields.many2one('product.category','Categoría de Producto', select=True, ondelete='cascade'),
          'cf1_cm': fields.related('categ_id', 'cf1', string="Característica física 1", type='char', store=True, select=True),
     }

它以 comun.denominador 生成记录,但格式如下:

caracteristica.fisica(4,)

我需要它来显示真实姓名

我该如何解决?

1 个答案:

答案 0 :(得分:0)

请尝试以下操作:

class comun_denominador(osv.osv):
    _name='comun.denominador'
    _columns = {
          'categ_id' : fields.many2one('product.category','Categoría de Producto', select=True, ondelete='cascade'),
          'cf1_cm': fields.related('categ_id', 'cf1', string="Característica física 1", type='many2one', relation="caracteristica.fisica", store=True, select=True),
     }

您尝试访问的相关字段不是“char”类型,而是“many2one”字段。

注意:

还有一件事,如果您的目的是为了信息目的而拥有相关字段,请不要将其设为“store = True”并将其设为只读。