Python 属性错误:';res.partner';对象没有属性';检查增值税';-奥多v10社区
我正在继承Python 属性错误:';res.partner';对象没有属性';检查增值税';-奥多v10社区,python,openerp,odoo-8,odoo-10,Python,Openerp,Odoo 8,Odoo 10,我正在继承res.partner: class ResPartner(models.Model): _name = 'res.partner' _inherit = 'res.partner' @api.model def check_vat_ve(self, vat): #, context=None """ Check Venezuelan VAT number, locally called RIF. RIF: JXXXXXXXXX RIF VENEZOLAN
res.partner
:
class ResPartner(models.Model):
_name = 'res.partner'
_inherit = 'res.partner'
@api.model
def check_vat_ve(self, vat): #, context=None
""" Check Venezuelan VAT number, locally called RIF.
RIF: JXXXXXXXXX RIF VENEZOLAN
IDENTIFICATION CARD: VXXXXXXXXX
FOREIGN IDENTIFICATION CARD: EXXXXXXXXX
"""
#if context is None:
#context = {}
if re.search(r'^[VJEGP][0-9]{9}$', vat):
return True
if re.search(r'^([VE][0-9]{1,8}|[D][0-9]{9})$', vat):
return True
return False
如您所见,有一个名为chack\u vat\u ve
的方法,它在res.partner
对象上声明
现在,我有了另一个(向导)按钮方法:
@api.multi
def search_partner_seniat(self):
""" Check vat of the partner and update iva rate
"""
self.ensure_one()
vat = self.vat.upper()
res = {
'name': _('The requested contributor does not exist'),
'vat_subjected': False,
'vat': vat,
'wh_iva_agent': False,
'wh_iva_rate': 0.0
}
if 'VE' in vat:
vat = vat[2:]
# assumption: both methods in new api style
if self.env['res.partner'].check_vat_ve(vat):
res = self.env['seniat.url']._dom_giver(vat)
self.write(res)
每次我点击这个,它就会让我:
Traceback (most recent call last):
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/http.py", line 638, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/http.py", line 675, in dispatch
result = self._call_function(**self.params)
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/http.py", line 331, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/service/model.py", line 119, in wrapper
return f(dbname, *args, **kwargs)
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/http.py", line 324, in checked_call
result = self.endpoint(*a, **kw)
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/http.py", line 933, in __call__
return self.method(*args, **kw)
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/http.py", line 504, in response_wrap
response = f(*args, **kw)
File "/home/kristian/odoov10/odoo-10.0rc1c-20161005/odoo/addons/web/controllers/main.py", line 866, in call_button
action = self._call_kw(model, method, args, {})
File "/home/kristian/odoov10/odoo-10.0rc1c-20161005/odoo/addons/web/controllers/main.py", line 854, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/api.py", line 681, in call_kw
return call_kw_multi(method, model, args, kwargs)
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/api.py", line 672, in call_kw_multi
result = method(recs, *args, **kwargs)
File "/home/kristian/odoov10/gilda/l10n_ve_fiscal_requirements/wizard/search_info_partner_seniat.py", line 63, in search_partner_seniat
if self.env['res.partner'].check_vat_ve(vat):
AttributeError: 'res.partner' object has no attribute 'check_vat_ve'
我几乎可以肯定wizard方法有一些错误,因为我正在将这些模块从v8迁移到v10社区,它们仍然有一些缺陷
有什么想法吗?你可以尝试删除\u name='res.partner'属性,因为这似乎不必要,然后告诉我们。你可以尝试删除\u name='res.partner'属性,因为这似乎不必要,然后告诉我们。你好,瓦利德,谢谢,问题仍然存在:(我认为“chack_vat_ve”函数参数“self.env['res.partner]”不正确。请检查(vat):“这有点不对劲,我不明白。我的意思是,我认为在这种情况下,它应该调用类似字段的东西,但实际上它是一种方法,我仍然不喜欢v10。也许chack_vat__ve不可浏览?伙计们,请更新问题和答案。在这种状态下,这两个问题对其他人都没有用处。在inh中删除
\u name
”erited odoo business objects只是一个错误的答案,它不会起任何作用。你好,瓦利德,谢谢,问题仍然存在:(我认为“chack\u vat\u ve”函数参数“self.env['res.partner]”不正确。请检查(vat):“这有点不对劲,我不明白。我的意思是,我认为在这种情况下,它应该调用类似字段的东西,但实际上它是一种方法,我仍然不喜欢v10。也许chack_vat__ve不可浏览?伙计们,请更新问题和答案。在这种状态下,这两个问题对其他人都没有用处。在inh中删除\u name
”Edited odoo business objects只是一个错误的答案,它不会起任何作用。