2017-08-28 11 views
0

Many2oneフィールドである:Odoo 10トラバースMany2manyフィールド

... 
for line in payment.move_line_ids + expense_sheet.account_move_id.line_ids: 
... 

私はそれMany2manyフィールド製造account_move_id変更しました。したがって、コードを実行すると、forループ・ラインに「予想されるシングルトン」例外が発生します。

account_move_idがMany2manyフィールドの場合、expense_sheetのすべてのaccount_move_idsからすべての行番号を取得するにはどうすればよいですか?

おかげで、

答えて

0

ないところで問題を正確に私がそうあなたが最も可能性の高いこのエラーを取得するときにどこフィールドをアクセスもしようとしているが、レコードセット内の複数のレコードが含まれています。

デコレータを使用すると、メソッド内でapi.multi selfに複数のレコードが含まれている可能性があります。このエラーを回避するには、常にselfをループします。

 for rec in self: 
       # here rec will alawys contain just one record 
       rec.some_field 

ので、このエラーは、レコードセット内のすべてのレコードから特定のフィールドを収集するためにmapped()を使用することができますが、レコードセットのフィールドやメソッドをアクセスもなかった場所を確認し

0

基本的にone2manyフィールドで発生する可能性があります。

どのように私はexpense_sheetのすべてaccount_move_idからすべてline_idsを得ることができますか?

# If account_move_id is a recordset, mapped will get line_ids for all of them 
line_ids = expense_sheet.account_move_id.mapped('line_ids') 
関連する問題