2016-07-27 1 views
0

res.company에서 데이터를 가져 오는 데 문제가 있습니다 이 코드가 왜 저에게 오류를 발생시키는 지 알려줄 수 있습니까? 사전에AttributeError : 'NoneType'객체에 'browse'속성이 없습니다.

def refresh_calculation(self,cr,uid,ids, context=None): 
     company_pool = self.pool.get('res.company') 
     company_id = self.pool.get('res.company')._company_default_get(cr, uid, 'res.company', context=context) 
     loan = company_pool.browse(cr, uid, company_id) 

     administration_fee = loan.administration_fee.id 
     interest_rate = percentage_to_float(loan.interest_rate.id) 
     trade_mark = percentage_to_float(loan.trade_mark.id) 

     return self.write(cr, uid, ids, {'monthly_installment': administration_fee}) 

덕분에,

답변

3

self.pool.get "res.company"에 대한 없음을 반환하지 않습니다. 그게 dict이라면, 그 열쇠가 없습니다.

+0

무엇을해야 할 지 말해 줄 수 있습니까? 나는 새로운 openerp입니다. 고마워, – weelDaw

+0

그건 파이썬 범위에 맞는 대답이다. openerp 범위에서 openerp 기본 orm 클래스이기 때문에 풀이 res.company를 풀에서 가져올 수없는 경우 openerp 설치시 매우 잘못된 것이 있습니다. – CZoellner

+0

좋습니다. :) – weelDaw

1

company_pool 매개 변수에 어떤 이유로 든 None이 저장되어 있습니다. 이 오류를 방지하려면 간단한 if 문으로 충분합니다.

if company_pool is not None: 
    # doSomething 
else 
    print "You did not enter the parameter res.company" 
+0

오류가 계속 나타납니다 – weelDaw

+0

이제 사용해보십시오. dosomething을 company_id에서 시작하는 코드로 바꾸십시오 –

2

company_poolNone 값을 반환합니다. self.pool에는 'res.company'키 값이 없으므로 company_pool.browse(...)이 사용될 때 ->None.browse(...)이 호출되고 NoneType에 찾아보기 특성이 없기 때문에이 오류가 발생합니다. refresh_calculation(...)이 호출되기 전에 값 표 pool을 채우거나이 기능에 액세스하기 전에 없음 확인을 수행하십시오. ->if company_pool is not None:

+0

'res.company'키 값을 갖게하려면 어떻게해야합니까? – weelDaw

+0

함수를 호출하기 전에 None 체크를 실행하거나 self.pool을 호출하십시오 .____ setitem __ ('res.company', '') 함수를 호출하기 전에 –

+0

전체 코드를 볼 수 있습니까? – weelDaw