2014-03-06 52 views
0

我瀏覽了記錄的結果NotImplementedError,那麼我想,如果瀏覽返回的結果來執行特定的代碼。OpenERP的 - 在評估object.browse(...)

這裏是我的代碼:

sub = self.pool.get('subscription.subscription').search(cr,uid,[('partner_id','=',partner.id),('active','=',True)]) 
if sub: 
    mtp.send_mail(cr, uid, level.email_template_id.id, partner.id, context=ctx) 

但它不工作,評估if條件時,將引發一個例外:

NotImplementedError: Iteration is not allowed on browse_record(res.partner, 15918) 

我不明白,因爲我不通過檢查結果是否存在來迭代結果,既不調用__iter__方法。

謝謝您的幫助

乾杯

+1

顯示你的代碼。我的意思是.py文件或包含此條件的特定方法。 – Mansi

+0

是的,更多的代碼將是非常有益的幫助你:-) – CZoellner

回答

1

在一般情況下,問題是,你調用瀏覽方法只有一個ID,而不是ID列表,因此,返回值是隻有一條記錄,不是記錄列表,所以不可迭代。

+0

正確的,但你如何檢查呢? – TimoSolo

0

IDS可以枯萎ID列表或一個數字ID。

在後一種情況下,瀏覽返回單個記錄,不可迭代,而不是可迭代的記錄集合。

的解決方案是確保IDS是一個列表。

方法定義後添加此。

if not isinstance(ids, list): 
    ids = [ids]