2017-04-17 4 views
1

나는 onchange 함수를 만들었습니다. 목표는 노트북 시트보기에서 값을 자동 완성하는 것입니다.Onchange가 실행되었지만보기 (Odoo)의 값으로 필드를 채우지 않았습니다.

내 기능이 제대로 작동했지만보기의 필드를 채우지 않았습니다.

이 작업을 수행하려면 어떻게해야합니까?

:

내가 PDB에서 무엇을 가지고 있었다 다음 평

enter image description here

하고 내가 원하는 값 이었지만 뷰 여기

과의 필드를 채우기 didnt가있다

@api.multi 
@api.model 
@api.onchange('employee_id') 
def onchange_lines(self): 
    import pdb;pdb.set_trace() 
    if self.employee_id: 
     check = self.env['hr.employee'].sudo().search([('id','=',self.employee_id.id)]) 
     for empy in check: 
      if empy.id: 
       res = {} 
       vals = [] 
       if not empy: 
        vals. 
        res.update({'self.job_id':'', 'self.nik':''}) 
       else: 
        vals.append({'self.job_id':empy.job_id, 'self.nik':empy.identification_id}) 
        res.update(vals) 
      return res 

여기에는 필드에 대한 xml이 있습니다.

<!-- language: xml --> 
<notebook> 
    <page string="Employees"> 
     <field name="employee_ids"> 
      <tree string="Employees" editable="bottom"> 
       <field name="nik"/> 
       <field name="employee_id"/> 
       <field name="job_id"/> 
       <field name="ovrtm"/> 
       <field name="ttalmtp"/> 
      </tree> 
     </field> 
    </page> 
</notebook> 

답변

3

onchange의 odoo 새 API에서 레코드 세트 개체에 직접 값을 할당 할 수 있습니다.

다음 코드를 따르십시오.

@api.onchange('employee_id') 
def onchange_lines(self): 
    import pdb;pdb.set_trace() 
    if self.employee_id: 
     check = self.env['hr.employee'].sudo().search([('id','=',self.employee_id.id)]) 
     for empy in check: 
      if empy.id: 
       res = {} 
       vals = [] 
       if not empy: 
        self.job_id=False 
        self.nik=False 
       else: 
        self.job_id=empy.job_id 
        self.nik=empy.identification_id 

이 정보는 도움이 될 수 있습니다.

+0

감사합니다. 도메인에 관한 내 다른 질문을 볼 수 있습니까? 여기 링크가 있습니다 : http : //stackoverflow.com/questions/42666521/odoo-inputing-employee-based-on-department-id-one2many-domain 미리 감사드립니다. –