2012-06-15 42 views
-1

这里是我的功能领域串联2场

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

我的树状视图显示一点儿也不任何记录的

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 

定义。当我评论功能领域时,一切都很好。这就是我知道我的功能是不正确的 你能告诉我什么是我在这个功能中的错误! 谢谢

+0

您需要尝试缩小问题范围,是否可以打印出record.a,record.b,record.id并向我们显示您获得的内容? – xvatar

+0

我猜你正在做OpenERP。你能为你的代码提供更多的上下文吗? – ChipJust

+0

你可以粘贴你已经定义的字段吗? – OmaL

回答

3

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

所以无论是已定义的数据类型,B错误地(使用炭作为数据类型),或使用

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

+1

我试图通过char来改变a和b的类型,但是这并没有解决问题。所以我只是把:x [record.id] = str(record.a)+“ - ”+ str(record。 b);谢谢 –

2

如果你告诉traceback info我可以帮你。

但是,如果你想以安全的方式连接并避免无意中的回溯,我改变你的路线。

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

通过

X [record.id] = “%S - %的” %(STR( record.a),str(record.b))

+1

'str()'isn'使用'%s'时必须使用。 – kindall

+0

我没有任何错误!只是我的树视图不会显示任何记录。当我评论功能领域时,一切都很好。这就是我知道我的功能不正确的原因! –

1

在第一个网站你的功能看起来像确定。

但错误可能发生在当record.a或reocrd.b值是“假”

它会尝试Concat的假到字符串大小写。

所以在这种情况下,您必须首先检查条件,然后再整理变量。