2013-05-06 4 views
0

열려있는 ERP 7에서 새로운 Vaibhav이며 hr_recruitment 모듈을 상속하는 동안 오류가 발생했습니다. hr_recruitment 내가 hr_job에 job_code의 문자 필드를 추가 및 hr_applicantError open erp 7의 hr_recruitment 모듈에서

내 코드에서 job_code_applicant을 응용 프로그램을 필터링하는

내가 검색 메소드를 오버라이드 (override)하는 것은 :

def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False): 
    ''' Overriden search method''' 
    cur_obj=self.pool.get('hr.job') 
    cr.execute('SELECT job_code FROM hr_job ') 
    list = cr.fetchall() 
    ids = [ i[0] for i in list] 
    cr.execute('SELECT id FROM hr_applicant WHERE job_code_applicant IN %s', (tuple(set(ids)),)) 
    list12 = cr.fetchall() 
    ids_applicant = [ i[0] for i in list12 ] 
    return ids_applicant 

오류는 다음과 같습니다

역 추적 (최근 통화 마지막) :

File "/home/fabian/openerp-7.0-20130408-232357/openerp/netsvc.py", line 293, in dispatch_rpc 
result = ExportService.getService(service_name).dispatch(method, params) 
File "/home/fabian/openerp-7.0-20130408-232357/openerp/service/web_services.py", line 626, in dispatch 
res = fn(db, uid, *params) 
File "/home/fabian/openerp-7.0-20130408-232357/openerp/osv/osv.py", line 188, in execute_kw 
return self.execute(db, uid, obj, method, *args, **kw or {}) 
File "/home/fabian/openerp-7.0-20130408-232357/openerp/osv/osv.py", line 131, in wrapper 
return f(self, dbname, *args, **kwargs) 
File "/home/fabian/openerp-7.0-20130408-232357/openerp/osv/osv.py", line 197, in execute 
res = self.execute_cr(cr, uid, obj, method, *args, **kw) 
File "/home/fabian/openerp-7.0-20130408-232357/openerp/osv/osv.py", line 185, in execute_cr 
return getattr(object, method)(cr, uid, *args, **kw) 
File "/home/fabian/openerp-7.0-20130408-232357/openerp/osv/orm.py", line 2697, in read_group 
d['__domain'] = [(groupby, '=', alldata[d['id']][groupby] or False)] + domain 

KeyError : 8

+0

hr_recruitment는 모듈입니다. 여기서는 hr.applicant 객체의 검색 방법을 무시하고 있다고 가정합니다. 하지만 검색 우선 순위를 지정하여 무엇을하고 싶습니까? 어떤 기반에서 지원자를 걸러 내고 싶습니까? 더 설명해주세요! –

답변

0

코드에서 direclid ids를 반환하는 대신 수퍼 검색 방법을 반환하지 않는 이유는 무엇입니까?

처럼 :

def search(self, cr, uid, args, offset=0, limit=None, order=None, 
         context=None, count=False): 
    #''' Overriden search method''' 
    cur_obj=self.pool.get('hr.job') 
    cr.execute('SELECT job_code '\ 
       'FROM hr_job '\ 
      ) 
    list = cr.fetchall() 
    ids = [ i[0] for i in list] 
    if ids: 
     args.append(('job_code_applicant', 'in', ids))  

return super(hr_applicant, self).search(cr, uid, args, offset, limit, order, context, count)