2017-09-19 15 views
1

나는 many2one 필드가 name_id입니다. 일반적으로 my_model.xml 코드를이 필드에 사용하면 my.model.line에 쓰여진 모든 값 중에서 선택할 수 있습니다. 이 경우 값을 필터링하고 현재 my.model에 기록 된 값만 목록으로 표시하려고합니다.Odoo one2many 필드에서 many2one 필드 값을 필터링하는 방법

my_model.xml

<record model="ir.ui.view" id="view_my_model_form"> 
     <field name="name">my.model.form</field> 
     <field name="model">my.model</field> 
     <field name="arch" type="xml"> 
      <form string="My Model"> 
      <header> 

         <field name="my_model_line"> 
          <tree> 
           <field name="name"/> 
          </tree> 
         </field> 
       <notebook> 
        <page> 
         <field name="supply_conditions_status"> 
      <tree string="My model Lines"> 
           <field name="name_id"/> 
          </tree> 

클래스 : 명확한 이해를 위해

class SupplyConditions(models.Model): 
    _name = 'supply.conditions' 

    name_id = fields.Many2one('my.model.line', string='Product') 
    model_id = fields.Many2one('my.model') 


class MyModelLine(models.Model): 
    _name = 'my.model.line' 

    name = fields.Char('Name') 
    my_model_id = fields.Many2one('my.model') 

class MyModel(models.Model): 
    _name = 'my.model' 

    title = fields.Char('Title') 
    my_model_line = fields.One2many('my.model.line', 'my_model_id') 
    supply_conditions_status = fields.One2many('supply.conditions', 'model_id') 

- 예 :

나는 my.model (필드 이름 = '첫 번째')의 형태로보기을 가지고 my.model (필드 이름 = '초'). my.model에서

(NAME = '제') 이름 필드 데이터를 추가 my_model_line에서 '항목 1 ","항목 2 "

my.model IN (NAME ="초 ") my_model_line 이름 필드 추가 데이터 '1item', '2item'지금

: my.model에서

(NAME = '제') I가 선택 참조 supply_conditions_status의 name_id.error가 필드 '1item를', '2item, 항목 1을 ','item2 '

,210

필요 :

my.model에서 (이름 = '첫 번째') supply_conditions_status의 name_id.error가 단지 '항목 1'을 선택할 수 가능성 '항목 2'

내가 어떻게 이것을 달성 할 수 있습니까?

+0

my.model.line 모델에서 name_get 메서드를 사용할 생각입니다. 문제는 현재보기 my.model 클래스 ID를 가져올 수 없다는 것입니다. – fueggit

답변

0

간단히 many2one 필드에 도메인을 지정하면됩니다. 이 시도 :

name_id.error가 = fields.Many2one ('my.model.line', 문자열 = '제품', 도메인 = 람다 자체 : [('my_model_id', '=', self.model_id)])