이러한 메서드는 폼보기에서 res.partner
이름을 업데이트해야하며 파트너 이름을 표시하는 새 창을 열고 업데이트 할 단추를 표시합니다.DataError : 정수의 입력 구문이 잘못됨 : "활성"- Odoo v8 ~ Odoo v10 커뮤니티
class WizUpdatename(osv.osv_memory):
_name = 'wiz.updatename'
_description = "Wizard that changes the partner name"
def set_name(self, cr, uid, ids, context):
""" Change value of the name field
"""
data = self.pool.get('wiz.updatename').read(cr, uid, ids)[0]
if not data['sure']:
raise osv.except_osv(
_("Error!"),
_("Please confirm that you want to do this by checking the"
" option"))
partner_obj = self.pool.get('res.partner')
name_partner = data['name']
partner_obj.write(cr, uid, context['active_id'],
{'name': name_partner}, context=context)
return {}
def _get_name(self, cr, uid, context=None):
""" Get name field value
"""
if context is None:
context = {}
partner_obj = self.pool.get('res.partner')
partner = partner_obj.search(cr, uid,
[('id', '=', context['active_id'])])
partner_o = partner_obj.browse(cr, uid, partner[0])
return partner_o and partner_o.name or False
_columns = {
'name': fields.char(
string='Name', size=256, required=True,
default=lambda s: s._get_name()),
'sure': fields.boolean('Are you sure?'),
}
WizUpdatename()
mirgation 후에는 지금과 같이 :
원래 V8에이처럼 보였다
class WizUpdatename(models.TransientModel):
_name = 'wiz.updatename'
_description = "Wizard that changes the partner name"
name = fields.Char(
string='Name', size=256, required=True,
default=lambda s: s._get_name())
sure =fields.Boolean(string='Are you sure?')
@api.multi
@api.depends('res.partner')
def set_name(self): #, cr, uid, ids, context
""" Change value of the name field
"""
data = self.env['wiz.updatename'].read()[0]
if not data['sure']:
raise UserError(
_("Error!"),
_("Please confirm that you want to do this by checking the"
" option"))
partner_obj = self.env['res.partner']
name_partner = data['name']
partner_obj.write(context['active_id'],
{'name': name_partner})
return {}
@api.depends('res.partner')
def _get_name(self): #, cr, uid, context=None
""" Get name field value
"""
#if context is None:
#context = {}
#ctx = self._context.get()
partner_obj = self.env['res.partner']
partner = partner_obj.search([('id', '=', 'active')])
partner_o = partner_obj.browse(partner[0])
return partner_o and partner_o.name or False
을하지만 매번 나는이 클릭이 발생합니다 :
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 862, in call_kw
return self._call_kw(model, method, args, kwargs)
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 679, in call_kw
return call_kw_model(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 664, in call_kw_model
result = method(recs, *args, **kwargs)
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/models.py", line 1101, in default_get
defaults[name] = field.default(self)
File "/home/kristian/odoov10/gilda/l10n_ve_fiscal_requirements/wizard/wizard_update_name.py", line 37, in <lambda>
default=lambda s: s._get_name())
File "/home/kristian/odoov10/gilda/l10n_ve_fiscal_requirements/wizard/wizard_update_name.py", line 67, in _get_name
partner = partner_obj.search([('id', '=', 'active')]) #cr, uid, context['active_id'] later added ctx before active_id, now, brackets removed let's see
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/models.py", line 1497, in search
res = self._search(args, offset=offset, limit=limit, order=order, count=count)
File "/home/kristian/odoov10/odoo-10.0rc1c-20161005/odoo/addons/base/res/res_partner.py", line 621, in _search
count=count, access_rights_uid=access_rights_uid)
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/models.py", line 4203, in _search
self._cr.execute(query_str, where_clause_params)
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/sql_db.py", line 141, in wrapper
return f(self, *args, **kwargs)
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/sql_db.py", line 218, in execute
res = self._obj.execute(query, params)
DataError: invalid input syntax for integer: "active"
LINE 1: ...artner"."active" = true) AND "res_partner".id = 'active') ...
이 줄에 오류가 있습니다. partner = partner_obj.search([('id', '=', 'active')])
현재 active
은 012입니다.은 그걸 기반으로 한 레코드를 찾아야하기 때문에 새로운 Odoo v10에서는 active_id
필드가 더 이상 존재하지 않으며 active
필드가 있지만 다른 방법으로는 분명히 active_id
과 다른 것으로 생각됩니다.
v10 커뮤니티에서이 필드와 동일한 항목을 찾을 수 없습니다.
아이디어가 있으십니까?
정말 대단합니다. 감사합니다. 대단히 감사합니다. 이 점에 대해 좋은 지적을하고 있고, 다른 모듈에도 도움이 될 것입니다. 다시 한번 감사드립니다. – NeoVe