J. *_*dez 1 themes extend odoo odoo-12
我只是一步一步地按照教程学习,即使这样,我也会遇到错误。在“扩展默认标题”一章中-> https://www.odoo.com/documentation/12.0/howtos/themes.html#extend-the-default-header
在“网站/配置/应用程序”中,安装主题,然后在“网站/配置/设置”中,单击“选择主题”按钮,然后在其中选择要使用的主题。
但是,此时会出现如下错误消息:
Error:
Odoo Server Error
Traceback (most recent call last):
File "/odoo/odoo-server/odoo/tools/convert.py", line 757, in parse
self._tags[rec.tag](rec, de, mode=mode)
File "/odoo/odoo-server/odoo/tools/convert.py", line 735, in _tag_template
return self._tag_record(record, data_node)
File "/odoo/odoo-server/odoo/tools/convert.py", line 573, in _tag_record
model = self.env[rec_model]
File "/odoo/odoo-server/odoo/api.py", line 820, in __getitem__
return self.registry[model_name]._browse((), self)
File "/odoo/odoo-server/odoo/modules/registry.py", line 176, in __getitem__
return self.models[model_name]
KeyError: 'theme.ir.ui.view'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/odoo/odoo-server/odoo/http.py", line 653, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/odoo/odoo-server/odoo/http.py", line 312, in _handle_exception
raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
File "/odoo/odoo-server/odoo/tools/pycompat.py", line 87, in reraise
raise value
File "/odoo/odoo-server/odoo/http.py", line 695, in dispatch
result = self._call_function(**self.params)
File "/odoo/odoo-server/odoo/http.py", line 344, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/odoo/odoo-server/odoo/service/model.py", line 97, in wrapper
return f(dbname, *args, **kwargs)
File "/odoo/odoo-server/odoo/http.py", line 337, in checked_call
result = self.endpoint(*a, **kw)
File "/odoo/odoo-server/odoo/http.py", line 938, in __call__
return self.method(*args, **kw)
File "/odoo/odoo-server/odoo/http.py", line 517, in response_wrap
response = f(*args, **kw)
File "/odoo/odoo-server/addons/web/controllers/main.py", line 966, in call_button
action = self._call_kw(model, method, args, {})
File "/odoo/odoo-server/addons/web/controllers/main.py", line 954, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/odoo/odoo-server/odoo/api.py", line 749, in call_kw
return _call_kw_multi(method, model, args, kwargs)
File "/odoo/odoo-server/odoo/api.py", line 736, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "/odoo/odoo-server/addons/website_theme_install/models/ir_module_module.py", line 356, in button_choose_theme
self._theme_upgrade_upstream()
File "/odoo/odoo-server/addons/website_theme_install/models/ir_module_module.py", line 314, in _theme_upgrade_upstream
upper_theme.button_immediate_upgrade()
File "<decorator-gen-67>", line 2, in button_immediate_upgrade
File "/odoo/odoo-server/odoo/addons/base/models/ir_module.py", line 71, in check_and_log
return method(self, *args, **kwargs)
File "/odoo/odoo-server/odoo/addons/base/models/ir_module.py", line 596, in button_immediate_upgrade
return self._button_immediate_function(type(self).button_upgrade)
File "/odoo/odoo-server/odoo/addons/base/models/ir_module.py", line 535, in _button_immediate_function
modules.registry.Registry.new(self._cr.dbname, update_module=True)
File "/odoo/odoo-server/odoo/modules/registry.py", line 86, in new
odoo.modules.load_modules(registry._db, force_demo, status, update_module)
File "/odoo/odoo-server/odoo/modules/loading.py", line 422, in load_modules
force, status, report, loaded_modules, update_module, models_to_check)
File "/odoo/odoo-server/odoo/modules/loading.py", line 318, in load_marked_modules
perform_checks=perform_checks, models_to_check=models_to_check
File "/odoo/odoo-server/odoo/modules/loading.py", line 224, in load_module_graph
load_data(cr, idref, mode, kind='data', package=package, report=report)
File "/odoo/odoo-server/odoo/modules/loading.py", line 68, in load_data
tools.convert_file(cr, package.name, filename, idref, mode, noupdate, kind, report)
File "/odoo/odoo-server/odoo/tools/convert.py", line 801, in convert_file
convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
File "/odoo/odoo-server/odoo/tools/convert.py", line 864, in convert_xml_import
obj.parse(doc.getroot(), mode=mode)
File "/odoo/odoo-server/odoo/tools/convert.py", line 763, in parse
exc_info[2]
File "/odoo/odoo-server/odoo/tools/pycompat.py", line 86, in reraise
raise value.with_traceback(tb)
File "/odoo/odoo-server/odoo/tools/convert.py", line 757, in parse
self._tags[rec.tag](rec, de, mode=mode)
File "/odoo/odoo-server/odoo/tools/convert.py", line 735, in _tag_template
return self._tag_record(record, data_node)
File "/odoo/odoo-server/odoo/tools/convert.py", line 573, in _tag_record
model = self.env[rec_model]
File "/odoo/odoo-server/odoo/api.py", line 820, in __getitem__
return self.registry[model_name]._browse((), self)
File "/odoo/odoo-server/odoo/modules/registry.py", line 176, in __getitem__
return self.models[model_name]
odoo.tools.convert.ParseError: "theme.ir.ui.view" while parsing None:4, near
<data inherit_id="website.layout" name="Custom Header">
<!-- Assign an id -->
<xpath expr="//div[@id='wrapwrap']/header" position="attributes">
<attribute name="id">my_header</attribute>
</xpath>
<!-- Add an element after the top menu -->
<xpath expr="//div[@id='wrapwrap']/header/div" position="after">
<div class="container">
<div class="alert alert-info mt16" role="alert">
<strong>Welcome</strong> in our website!
</div>
</div>
</xpath>
</data>
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?是我还是本教程未更新?
为了澄清起见,尽管在追溯的底部出现了一个<data></data>标签,但这只是在这里,因为在我位于该位置的代码中,我有一个<template></template>标签。
经过数小时的搜索,在Internet上找到了我的问题的答案。我发现问题实际上是两个。
第一个是需要在清单 .py中的我的依赖项中附加“ website_theme_install ”应用程序。在教程的任何地方都没有说过,我也不知道为什么它已经安装在我的Odoo实例中,也许是Odoo 12.0中的默认值。这就是造成这种情况的原因。KeyError: 'theme.ir.ui.view'
第二个事实是,在网站本身继承自portal.frontend_layout模板的website.layout模板中,标头后没有div,实际上我们有一个nav,但在搜索如下标头后就没有div了:
<xpath expr="//div[@id='wrapwrap']/header/div" position="after">
Run Code Online (Sandbox Code Playgroud)
所以我不得不将其更改为:
<xpath expr="//div[@id='wrapwrap']/header/nav" position="after">
Run Code Online (Sandbox Code Playgroud)
因为那个位置有个导航仪。没有改变,这是抛出一个ParseError。
更改后,它运行良好。希望这对其他人有帮助
| 归档时间: |
|
| 查看次数: |
1289 次 |
| 最近记录: |