在Odoo9社区版本中,我通过web界面添加了以下货币字段作为货币金额: res.partner.x_tablet_bail_amount。
它工作得很好,但是当安装任何新模块时,我得到以下错误,并且我的模块没有安装。有什么帮助吗?谢谢!
Odoo Server Error
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 605, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 642, in dispatch
result = self._call_function(**self.params)
File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 316, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/openerp/service/model.py", line 118, in wrapper
return f(dbname, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 309, in checked_call
result = self.endpoint(*a, **kw)
File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 893, in __call__
return self.method(*args, **kw)
File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 471, in response_wrap
response = f(*args, **kw)
File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 998, in call_button
action = self._call_kw(model, method, args, {})
File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 986, in _call_kw
return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/openerp/addons/base/module/module.py", line 459, in button_immediate_install
return self._button_immediate_function(cr, uid, ids, self.button_install, context=context)
File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/openerp/addons/base/module/module.py", line 533, in _button_immediate_function
registry = openerp.modules.registry.RegistryManager.new(cr.dbname, update_module=True)
File "/usr/lib/python2.7/dist-packages/openerp/modules/registry.py", line 385, in new
openerp.modules.load_modules(registry._db, force_demo, status, update_module)
File "/usr/lib/python2.7/dist-packages/openerp/modules/loading.py", line 283, in load_modules
registry.setup_models(cr, partial=True)
File "/usr/lib/python2.7/dist-packages/openerp/modules/registry.py", line 199, in setup_models
model._setup_fields(cr, SUPERUSER_ID)
File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 342, in old_api
result = method(recs, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/openerp/models.py", line 3044, in _setup_fields
field.setup_full(self)
File "/usr/lib/python2.7/dist-packages/openerp/fields.py", line 476, in setup_full
self._setup_regular_full(model)
File "/usr/lib/python2.7/dist-packages/openerp/fields.py", line 1131, in _setup_regular_full
"Field %s with unknown currency_field %r" % (self, self.currency_field)
AssertionError: Field res.partner.x_tablet_bail_amount with unknown currency_field 'currency_id'发布于 2016-08-29 22:07:27
monetary类型的字段使用其他字段来做一些事情,比如在报表或客户端中打印货币符号。默认情况下,该进程使用currency_id (Odoo Code),据我所知,在res.partner上没有定义currency_id。
所以也许你应该定义它,或者从另一个关系中获取相关字段?
发布于 2016-08-29 23:57:54
从the source code来看,它似乎不是在res.partner上定义的任何currency_id字段。
然而,该字段实际上是在res.company上定义的,它与res.partner具有Many2One关系。我认为res.partner只是一种部分抽象的类,需要为Odoo中的每一种类型的合作伙伴进行扩展,包括公司(这里只是猜测)。
所以Odoo在吐出来的时候是对的
具有未知currency_field 'currency_id‘的
字段res.partner.x_tablet_bail_amount
因为这个领域不存在,真的。
您可以做的不是在res.partner上定义您的自定义字段x_tablet_bail_amount,而是在res.company上定义它。这样,您的货币领域将能够解析正确的货币,而不是寻找不存在的东西。
https://stackoverflow.com/questions/39207876
复制相似问题