连接2个字段

时间:2012-06-15 17:34:33

标签: python openerp

这是我的功能

def get_concat(self, cr, uid, ids, field_name, arg, context):
  x = {}
  for record in self.browse(cr, uid, ids ,context):
       x[record.id] = record.a+"--"+ record.b
  return x

字段的定义

   'a' : fields.integer('A'),
   'b' : fields.integer('B'),
   'concat' : fields.function(get_concat, method=True, string='Inventaires',type='char', size=40),

我的树视图没有显示任何记录。当我评论函数字段时,一切都很好。这就是我知道我的功能不正确的方式 你能告诉我在这个功能中犯了什么错误! 谢谢

3 个答案:

答案 0 :(得分:3)

字段a和字段b都是整数。 没有类型转换的python中无法实现int和str连接。

所以要么你错误地定义了a,b的数据类型(使用char作为数据类型)或者使用

$ x [record.id] = str(record.a或'')+“ - ”+ str(record.b或'')

答案 1 :(得分:2)

如果您告诉追溯信息,我可以帮助您。

但是如果你想以安全的方式连接并且避免无法想象的回溯,那么在python中使用BTW我会改变你的行。

x [record.id] = record.a +“ - ”+ record.b

通过

x [record.id] =“%s - %s”%(str(record.a),str(record.b))

答案 2 :(得分:1)

在第一个站点,您的功能看起来很好。

但是当record.a或reocrd.b值为“False”时会发生错误

它会尝试将False连接到String。

所以在这种情况下,你必须先在条件变量之前检查条件。