2017-11-21 5 views
1

私はフィールドmany2manyを持っていて、特定のビューでmany2oneとして表示するか、many2oneフィールドの動作を模倣する必要があります(1つのレコードだけを追加できます)別のレコードを選択すると、以前選択したレコードが削除されます)。many2manyフィールドをmany2oneとして表示

<field name="employee_ids" widget="many2one" /> 

が、それは私に次のエラーを与えた:ビューでは、私は宣言

TypeError: 'int' object is not iterable

は、これを実現する方法はありますか?

+0

ので、ユーザーが1つのレコードだけを選択したいです!? – Cherif

+0

''を使うと1つのレコードしか選択できません。 – Heroic

+0

なぜ単純に 'Many2one'フィールドを使用できませんか?あなたは 'Many2many'を使う必要がありますか?またはこれは既に存在するフィールドであり、カスタムフィールドではありませんか? – travisw

答えて

2

私はあなたがのonchangeデコレータを使用して ことにより、1つのレコードのみを選択するようにユーザーに強制することができると思う:

@api.onchange('employee_ids') 
def force_one_selection(self): 
    """Force the user to select only one record""" 
    if self.employee_ids and len(self.employee_ids) > 1: 
     # user has added a new record 
     self.employee_ids = [(6, 0, self.employee_ids[0].id)] # you can change the index to 1 
     # and you can return a warning here to tell the user that he should not select more than 
     # one record 
+0

それは動作します!ありがとう – Dayana

関連する問題