我在这几个小时都无法理解。我正在尝试从我创建的模块中打印表单。单击打印按钮时,我一直收到以下错误。
raise ValueError('External ID not found in the system: %s' % (xmlid))
ValueError: External ID not found in the system: ch08.qweb_ds_repair_template
我的report.xml文件
<?xml version="1.0" encoding= "utf-8"?>
<openerp>
<data>
<template id="qweb_ds_repair_template">
<t t-call="report.html_container" >
<t t-foreach ="docs" t-as="o">
<t t-call ="report.external_layout">
<div class="page" >
<div class="oe_structure" />
<h1>Repair Form</h1>
<h2>Test: <span t-field="o.password"/></h2>
</div>
</t>
</t>
</t>
</template>
<report id="report_ds_repair_template"
name="ch08.qweb_ds_repair_template"
model="ds.repair"
string="Repair Form"
report_type="qweb-pdf"
/>
</data>
</openerp>
我的模块文件夹名为ds_repair。不确定我的 openerp .py中是否缺少依赖项,所以这里它位于
之下{
'name': 'Repairs',
'version': '1.0',
'sequence': 200,
'category': 'Manufacturing',
'summary': 'Repair',
'description': """,
The aim is to have a complete module to manage all products repairs.
====================================================================
""",
'depends': ['base'],
'website': '',
'data': ['report/report.xml',
'model_view.xml',
],
'demo': [],
'installable': True,
'auto_install': False,
}
答案 0 :(得分:1)
您的模块文件夹名称为“ ds_repair ”,因此您应该写 name =“ds_repair.qweb_ds_repair_template”
<report id="report_ds_repair_template"
name="ds_repair.qweb_ds_repair_template"
model="ds.repair"
string="Repair Form"
report_type="qweb-pdf"
/>
答案 1 :(得分:0)
不确定,但我认为ch08代替ds_repair导致了这个问题。 我非常确定点之前的文本是为命名空间或addon(addon文件夹)名称保留的。
<?xml version="1.0" encoding= "utf-8"?>
<openerp>
<data>
<report id="report_ds_repair_template"
name="ds_repair.qweb_ds_repair_template"
model="ds.repair"
string="Repair Form"
report_type="qweb-pdf"/>
<template id="qweb_ds_repair_template">
<t t-call="report.html_container" >
<t t-foreach ="docs" t-as="o">
<t t-call ="report.external_layout">
<div class="page" >
<div class="oe_structure" />
<h1>Repair Form</h1>
<h2>Test: <span t-field="o.password"/></h2>
</div>
</t>
</t>
</t>
</template>
</data>
</openerp>
答案 2 :(得分:0)
当您想要引用另一个xml_id时,您有两种可能性。
你写道:
<template inherited="module_name.xml_id">
此方法通常在您想要引用其他模块中的ID时使用
或者你可以
<template inherited="xml_id">
在这种情况下,您希望在当前模块中引用代码编写的ID。
您的错误的来源可能是:
但我认为在你目前的情况下,你只想参考上面的id。
你可以写
<report id="report_ds_repair_template"
name="module_name.qweb_ds_repair_template"
model="ds.repair"
string="Repair Form"
report_type="qweb-pdf"/>
PS:当我说module_name时,它是你文件夹的名称。
答案 3 :(得分:0)
对于我的情况odoo11,在搜索了许多页面之后,只需看一下教程即可,它有效:
最后,通过转到“设置”‣“模块”‣“模块”‣“学院”,然后单击“升级”,重新启动Odoo并更新模块的数据(以安装模板)。
答案 4 :(得分:0)
就我而言,我试图配置一个现有的Odoo 9项目。但是,当我在 custom_folder 中克隆模块时。我将其命名为'odoo_xyz',但是在 openerp .py中将其写为'xyz'。因此,我将克隆的模块重命名为“ xyz”,重新启动Odoo 9,然后创建一个新数据库。因此,它维护了一个新的参考系统。