2016-08-18 2 views
1

다음 코드 블록 제발 봐를 :Odoo - 새로운 API의 이해 레코드

class hr_payslip: 
    ... 
    @api.multi  # same behavior with or without method decorators 
    def do_something(self): 
     print "self------------------------------->",self 
     for r in self: 
      print "r------------------------------->",r 

당신은 내가 'hr.payslip'모델을 ​​재정의하고있어 볼 수 있고 나는이 내부에 일부 필드에 접근 할 필요가로 방법. 왜이 같은 일 내부 루프의 외부

self-------------------------------> hr.payslip(hr.payslip(1,),) 
r-------------------------------> hr.payslip(hr.payslip(1,),) 

입니다 : 문제는 인쇄됩니다 무엇을 나에게 이해가되지 않는다는 것입니다. 항상 '레코드 세트'라면, 어떻게 한 레코드의 필드에 액세스 할 수 있습니까?

은 이해 나의 부족은 아마도이 질문에 연결되어 :

Odoo - Cannot loop trough model records

답변

1

이 레코드에서 작업하는 것은 항상 레코드 작업을 의미한다. 하나의 RecordSet으로 반복 할 때 RecordSets을 반복 변수로 가져옵니다. 하지만 RecordSet의 길이가 1 또는 0 일 때만 필드에 직접 액세스 할 수 있습니다. 데이터베이스에서 하나 이상의 payslip을 테스트 할 수 있습니다.

slips = self.env['hr.payslip'].search([]) 
# Exception because you cannot access the field directly on multi entries 
print slips.id 
# Working 
print slips.ids 
for slip in slips: 
    print slip.id 
관련 문제