-1

这是我的功能

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),

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

4

3 回答 3

3

因为字段 a 和字段 b 都是整数。在没有类型转换的情况下,python 中不可能进行 int 和 str 连接。

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

$ x[record.id] = str(record.a or '') + "--" + str(record.b or '')

于 2012-06-18T13:36:06.247 回答
2

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

但顺便说一句,如果你想以安全的方式连接并避免意外回溯,我会在 python 中更改你的行。

x[record.id] = record.a+"--"+record.b

经过

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

于 2012-06-15T17:40:35.130 回答
1

在第一个站点,您的功能看起来不错。

但是如果 record.a 或 reocrd.b 值为“False”,则会发生错误

它将尝试将 False 连接到字符串。

所以在这种情况下,你必须先检查条件,然后再连接变量。

于 2012-06-18T04:41:58.683 回答