Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Odoo 9 ValueError:在系统中找不到外部ID:_Python_Xml_Openerp_Odoo 9 - Fatal编程技术网

Python Odoo 9 ValueError:在系统中找不到外部ID:

Python Odoo 9 ValueError:在系统中找不到外部ID:,python,xml,openerp,odoo-9,Python,Xml,Openerp,Odoo 9,这件事我已经想了好几个小时了,想不出来。我正在尝试从我创建的模块打印表单。当我点击“打印”按钮时,我不断得到下面的错误 raise ValueError('External ID not found in the system: %s' % (xmlid)) ValueError: External ID not found in the system: ch08.qweb_ds_repair_template My report.xml文件 <?xml version="1.0" en

这件事我已经想了好几个小时了,想不出来。我正在尝试从我创建的模块打印表单。当我点击“打印”按钮时,我不断得到下面的错误

raise ValueError('External ID not found in the system: %s' % (xmlid))
ValueError: External ID not found in the system: ch08.qweb_ds_repair_template
My 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>   
<report id="report_ds_repair_template"
                     name="ds_repair.qweb_ds_repair_template"
                     model="ds.repair"
                     string="Repair Form"
                     report_type="qweb-pdf"

                     />

不确定,但我认为是ch08代替ds_维修导致了问题。 我很确定点前面的文本是为名称空间或加载项(加载项文件夹)名称保留的


修理单
测试:

您的模块文件夹名称为“ds\U repair”,因此您应该编写name=“ds\U repair.qweb\u ds\U repair\u模板”


当您想引用另一个xml\u id时,有两种可能

你写道:

<template inherited="module_name.xml_id">

当您希望在另一个模块中引用id时,通常使用此方法

或者你可以

<template inherited="xml_id">

在这种情况下,您希望在编写代码的当前模块中引用一个id

错误的来源可能是:

  • 您没有名为ch08的模块
  • 您有一个名为ch08的模块,但模块中没有id“qweb\U ds\U repair\U template”
  • 但我认为在你目前的情况下,你只想参考上面写的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时,它是您文件夹的名称

    对于我的案例odoo11,在搜索了许多页面后,只需查看教程即可:

    最后,重新启动Odoo并更新模块数据(以安装模板),方法是转到“设置”——“模块”——“模块”——“学院”,然后单击“升级”


    在我的例子中,我试图配置一个现有的Odoo9项目。但是,当我克隆自定义\u文件夹中的模块时。我把它命名为“odoo_xyz”,但是在openerp.py中,它是写在'xyz'上的。因此,我将克隆的模块重命名为“xyz”,重新启动Odoo 9,然后创建一个新的数据库。因此,它保持了一个新的参考系统

    <template inherited="xml_id">
    
    <report id="report_ds_repair_template"
            name="module_name.qweb_ds_repair_template"
            model="ds.repair"
            string="Repair Form"
            report_type="qweb-pdf"/>