Odoo 如何制作自定义报告,AttributeError

Odoo How to make custom report, AttributeError

我正在尝试制作自定义报告。我使用了此文档 https://www.odoo.com/documentation/8.0/reference/reports.html 并查看了附加组件 "sale" 以获得报告示例。我想做第一个测试,所以我使用了文档的最小可行模板。

这是我的模板

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data>
            <template id="report_demand_document">
                    <t t-call="report.html_container">
                            <t t-foreach="docs" t-as="o">
                                    <t t-call="report.external_layout">
                                            <div class="page">
                                                    <h2>Propositions</h2>
                                                    <p>Vote du <span t-field="o.date"/></p>
                                            </div>  
                                    </t>
                            </t>
                    </t>
            </template>
    </data>
</openerp>

这里是报告电话

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data>
            <report
                    id="report_demand"
                    string="Propositions en cours"
                    model="report"
                    report_type="qweb-pdf"
                    name="report.report_demand"
                    file="report.report_demand"
                    attachment="'Propositions' + str(object.date) +'.pdf'"/>
    </data>
</openerp>

我收到这个错误:

AttributeError: 'report' object has no attribute '_check_wkhtmltopdf'

完整日志(如果需要):

Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 540, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 577, in dispatch
    result = self._call_function(**self.params)
File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 313, 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 310, in checked_call
    return self.endpoint(*a, **kw)
File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 806, in __call__
    return self.method(*args, **kw)
File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 406, in response_wrap
    response = f(*args, **kw)
File "/usr/lib/python2.7/dist-packages/openerp/addons/report/controllers/main.py", line 143, in check_wkhtmltopdf
    return request.registry['report']._check_wkhtmltopdf()
AttributeError: 'report' object has no attribute '_check_wkhtmltopdf'

我在 google 上搜索了“_check_wkhtmltopdf”,但在 Odoo 中一无所获,我也没有发现任何错误。 这个错误是什么意思?我必须安装一些东西吗? (我正在使用 Odoo-8)

如果我看对了,那么你已经覆盖了 Odoo model/class report,它处理渲染文档等的所有内容

<report
    id="report_demand"
    string="Propositions en cours"
    model="report"
    report_type="qweb-pdf"
    name="report.report_demand"
    file="report.report_demand"
    attachment="'Propositions' + str(object.date) +'.pdf'"/>

此处定义模型 report 的报告。其他示例将在其报告定义中向您显示 sale.orderaccount.invoice 等值。

请不要声明新的 ORM 模型 report。只需使用其他名称,例如 test.report 或类似名称。

让我们谈谈如何消除这个错误:更改测试模型的属性 _name 并重新启动服务器。当然,将您的报告定义更改为新模型名称。现在更新你的模块。这应该可以解决问题。