2012-06-15 45 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的假到字符串大小寫。

所以在這種情況下,您必須首先檢查條件,然後再整理變量。