【问题标题】:Odoo How to make custom report, AttributeErrorOdoo 如何制作自定义报告,AttributeError
【发布时间】:2016-07-07 14:47:58
【问题描述】:

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

这是我的模板

<?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'

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

【问题讨论】:

  • 你运行了什么脚本?能否提一下或复制代码?
  • 我没有重新定义脚本,我继续我的表单,使用“打印”并选择我创建的那个。
  • 对不起,我忘记了标题中的“Odoo”...

标签: python xml openerp wkhtmltopdf odoo-8


【解决方案1】:

如果我认为是正确的,那么您已经覆盖了 Odoo 模型/类 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.order 或 account.invoice 等值。

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

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

【讨论】:

    猜你喜欢
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    相关资源
    最近更新 更多