2017-04-06 12 views
0

でドメインにコンテキストを渡すとモデルでOdoo 9

batch_id = fields.Many2one('ae.batch', 'Batch') 
subject_ids = fields.Many2many('ae.subject', string="Subjects") 
topic_ids = fields.Many2many('ae.topic', string="Topics") 
subtopic_ids = fields.Many2many('ae.subtopic', string="Subtopics") 

の目標は、1以上とすることができ、科目を選択し、バッチフィルタ科目を選ぶ、(ドメイン)をフィルタリングするためにコンテキストを渡すことで、フィルタリングしますトピック、フィルターサブトピックを参照してください。被験者へのトピックへの被験者(Many2many) 科目(Many2many)へ

バッチ(Many2one)(Many2many) トピックス(Many2many)(Many2many)

チェックビュー:

<group col="4" name="plan_detail" String='Choose t'> 
<field name="batch_id" 
    context="{'batch_id':batch_id}"/> 

<field name="subject_ids" 
    domain="[('batch_id', '=', batch_id)]" 
    context="{'subject_ids': subject_ids}"/> 

<field name="topic_ids" 
    domain="[('subject_id', 'in', 'subject_ids')]" 
    context="{'topic_ids': topic_ids}" /> 

<field name="subtopic_ids" widget="many2many_checkboxes" 
    domain="[('topic_id', 'in', topic_ids)]" /> 

バッチフィルターを選択すると、正常に機能しています。対象とトピックの間 Stucked、私はコンテキストまたはドメインの問題だと思う、私はそうのように手動でドメインを変更しテストしてみた:

<field name="topic_ids" 
    domain="[('subject_id', 'in', '[1, 2]')]" 
    context="{'topic_ids': topic_ids}" /> 

し、正常には、トピックのリストを取得します。私は文脈を渡すことや間違っていると思う。助けて。

ありがとうございます。

答えて

0

ドメイン内のコードでは、subject_idsを記述したフィールドが引用符で囲まれています。そのフィールドを表すので、引用符を削除してください。

この

<field name="topic_ids" domain="[('subject_id', 'in', subject_ids)]" 
    context="{'topic_ids': topic_ids}" /> 
をお試しください