2017-12-09 9 views
0

코드 :왜 오류가 발생합니까 : 'int'객체에 'create'속성이 없습니까?

@api.multi 
    def open_second_class(self): 
     ac = self.env['ir.model.data'].xmlid_to_res_id('account.invoice_form', raise_if_not_found=True) 
     write_obj = ac.create({'partner_id': self.name_id}) 
     accountant = False 
     for o in self: 
      accountant = o.id 
     result = { 
      'name': '2nd class', 
      'view_type': 'form', 
      'res_model': 'account.invoice', 
      'res_id': write_obj.id, 
      'view_id': False, 
      'context': {'default_id_tbl1': accountant}, 
      'type': 'ir.actions.act_window', 
      'view_mode': 'form', 
      'target': 'new', 
      'domain': '[]' 
     } 
     return result 

오류 :

Traceback (most recent call last): 
      File "C:\Program Files\Odoo 9.0-20170919\server\.\openerp\http.py", line 650, in _handle_exception 
      File "C:\Program Files\Odoo 9.0-20170919\server\.\openerp\http.py", line 687, in dispatch 
      File "C:\Program Files\Odoo 9.0-20170919\server\.\openerp\http.py", line 323, in _call_function 
      File "C:\Program Files\Odoo 9.0-20170919\server\.\openerp\service\model.py", line 118, in wrapper 
      File "C:\Program Files\Odoo 9.0-20170919\server\.\openerp\http.py", line 316, in checked_call 
      File "C:\Program Files\Odoo 9.0-20170919\server\.\openerp\http.py", line 966, in __call__ 
      File "C:\Program Files\Odoo 9.0-20170919\server\.\openerp\http.py", line 516, in response_wrap 
      File "C:\Program Files\Odoo 9.0-20170919\server\openerp\addons\web\controllers\main.py", line 899, in call_button 
      File "C:\Program Files\Odoo 9.0-20170919\server\openerp\addons\web\controllers\main.py", line 887, in _call_kw 
      File "C:\Program Files\Odoo 9.0-20170919\server\.\openerp\api.py", line 250, in wrapper 
      File "C:\Program Files\Odoo 9.0-20170919\server\.\openerp\api.py", line 381, in old_api 
      File "C:\Users\Amandnoever\AppData\Local\OpenERP S.A.\Odoo\addons\9.0\accountant\models\models.py", line 48, in open_second_class 
     AttributeError: 'int' object has no attribute 'create' 

답변

0

사용 self.env.ref('external_id') 대신 xmlid_to_res_id 방법. 오류의 원인이 xmlid_to_res_id`이 함수를 호출 할 수있는 기능이없는 정수를 반환`때문이다

@api.multi 
def open_second_class(self): 
    self.ensure_one() 
    ac = self.env.ref('account.invoice_form') 
    invoice = self.env['account.invoice'].create({ 
     'partner_id': self.name_id.id 
    }) 

    return { 
     'name': '2nd class', 
     'type': 'ir.actions.act_window', 
     'res_model': 'account.invoice', 
     'res_id': invoice.id, 
     'view_type': 'form', 
     'view_mode': 'form', 
     'target': 'new', 
     'context': {'default_id_tbl1': self.env.id }, 
    } 
+0

주 ('create' :하지만 싶은 것은이 같은 생각), 따라서 오류 메시지. 반면,'self.env.ref ('external_id')'는 함수를 정상적으로 호출 할 수있는 열람 레코드 객체를 반환한다. – travisw

+0

나는 내 코드를 편집 했었지만 xml 버튼 개체에이 함수를 추가하면 오류가 발생합니다. –

+0

오류 '유니 코드'개체에 'id'속성이 없습니다. –