2013-04-26 3 views
1

누락 된 부분은 records.please 조언을 작성하려고 할 때 다음과 같습니다. 이OpenERP 작성 및 작성 방법

def create(self, cr, uid, values, context=None): 
    name = 'CheckRoll No : ' + str(values['checkroll_no']) + ' & Gang No : ' + str(values['gang_no']) 
    self.write(cr, uid, [id], {'name': name}, context) 
    return True   

오류가 와서 내 쓰기 방법은 내 옆에없는 몇 가지 매개 변수 incorrect.seems 것을 보여준다처럼 내 코드에서

File "/home/bellvantage/Documents/openerp-7.0/openerp-7/openerp/addons/bpl/bpl.py", line 394, in create 
    self.write(cr, uid, [id], {'name': name}, context) 
    File "/usr/lib/python2.7/dist-packages/psycopg2/extensions.py", line 129, in getquoted 
    pobjs = [adapt(o) for o in self._seq] 
ProgrammingError: can't adapt type 'builtin_function_or_method' 
2013-04-26 06:14:07,719 5739 INFO demo werkzeug: 127.0.0.1 - - [26/Apr/2013 06:14:07] "POST /web/dataset/call_kw HTTP/1.1" 200 - 

해당 줄입니다. 여기 모델 클래스 내 필드를 보여줍니다

File "/home/bellvantage/Documents/openerp-7.0/openerp-7/openerp/addons/bpl/bpl.py", line 395, in create 
    res = super('bpl.work.offer',self).create(cr,uid,values,context=context) 
TypeError: must be type, not str 
2013-04-26 07:58:43,452 6947 INFO demo werkzeug: 127.0.0.1 - - [26/Apr/2013 07:58:43] "POST /web/dataset/call_kw HTTP/1.1" 200 - 

아래 모듈을 감사합니다 .. 수정 됨

을 구현하기 위해 귀하의 조언을 필요로

지금 오류가

여기
'name': fields.char('Name', size=50), 
'checkroll_no': fields.integer('Checkroll No'), 
'gang_no': fields.integer('Gang'), 

을 보여줍니다처럼 내가 디버그 할 때 값 (super.create() 시간에),

dict: {'selected_tea_workers_line_ids': [[5, False, False], [0, False, {'worker_emp_no': '1000', 'worker_id': 
1, 'tea_line_worker_id': False, 'is_selected': False}]], 'user_id': False, 'is_confirmed': False, 
'date_of_offer': '2013-04-26', 'bpl_division_id': 1, 'work_type': 'tea', 'checkroll_no': 10, 'name': 
'CheckRoll No : 10 & Gang No : 100', 'selected_rubber_workers_line_ids': [[5, False, False], [0, False, 
{'worker_emp_no': '1001', 'worker_id': 2, 'rubber_line_worker_id': False, 'is_selected': False}]], 
'work_update_id': False, 'field_no': 15, 'selected_sundry_workers_line_ids': [], 'payment_type': 
'normal_work', 'gang_no': 100, 'total_workers': 0, 'no_of_workers': 0, 'norm': 15, 
'selected_other_workers_line_ids': [], 'bpl_estate_id': 1, 'select_by': 'by_name'} 

이제는 작동합니다. 감사 AnomA

마지막 편집

def create(self, cr, uid, values, context=None): 
    name = 'CheckRoll No = ' + str(values['checkroll_no']) + ' & Gang No = ' + str(values['gang_no']) 
    values.update({'name': name}) 
    return super(bpl_work_offer,self).create(cr,uid,values,context=context) 

답변

3

Actua 너 잘못하고있어. 당신은 created.Also 난 당신 이이 경우에 쓰기를 사용해야한다고 생각하지 않는 레코드에 쓰려고합니다.

class bpl_abc(osv.osv) 
    _inherit = 'bpl.work.offer' 
    def create(self, cr, uid, values, context=None): 
     name = 'CheckRoll No : ' + str(values['checkroll_no']) + ' & Gang No : ' + str(values['gang_no']) 
     values.update({'name': name}) 
     res = super('bpl_abc',self).create(cr,uid,values,context=context) 
     return res 
bpl_abc() 

openerp의 create 함수는 항상 새로 생성 된 레코드의 ID를 반환합니다.

+0

감사합니다. AnomA.thatswhy 코드 및 레슨을 원했습니다 :-) –

+1

어떤 오류가 있습니까? checkroll_no 및 gang_no의 값을 값으로 확인하십시오. – OmaL

+0

AnomA를 으로 분류했습니다. thanks.i 모델 클래스를 놓친 다음 문자열로 입력하십시오. –

-2

'쓰기'방법은

EX 내장 된 방법이기 때문에 될 수있다

with open("a.txt","r+") as f: 
    f.write("sometext") 

이 self.write를 사용하지 마십시오에게 쓰기는 '파일'객체의 내장 메소드입니다.

+0

님이 자기 객체의 ID를 얻으려고합니다. –

+1

당신이 "쓰기"방법을 정의하고 여기에서 사용하는 것을 정의했습니다. 내가 쓰고 싶은 것은 당신의 "쓰기"메소드의 이름을 바꿉니다. –

+0

Rajesh에게 감사드립니다. 예. 필자의 작성 함수가 호출 될 때 작성 및 업데이트 값을 덮어 써야합니다. 내 요구 사항을 수행해야합니다. –