Odoo report error: Qweb error maximum recursion depth exceeded
Odoo report error: Qweb error maximum recursion depth exceeded
我正在尝试创建报告,我的代码似乎一切正常,只是在打印报告时出现此错误
这是错误消息的一部分:
File "/opt/odoo8/odoo/addons/report/models/report.py", line 135, in translate_doc
return self.translate_doc(cr, uid, doc_id, model, lang_field, template, values, context=context)
File "/opt/odoo8/odoo/openerp/api.py", line 268, in wrapper
return old_api(self, *args, **kwargs)
File "/opt/odoo8/odoo/addons/report/models/report.py", line 106, in translate_doc
doc = self.pool[model].browse(cr, uid, doc_id, context=ctx)
File "/opt/odoo8/odoo/openerp/api.py", line 268, in wrapper
return old_api(self, *args, **kwargs)
File "/opt/odoo8/odoo/openerp/models.py", line 5266, in browse
return self._browse(Environment(cr, uid, context or {}), ids)
QWebException: """"""""""""""""""""""""""""""maximum recursion depth exceeded" while evaluating
"translate_doc(doc_id, doc_model, 'user_id.partner_id.lang', 'school_erp.report_printstandard')"" while evaluating
"translate_doc(doc_id, doc_model, 'user_id.partner_id.lang', 'school_erp.report_printstandard')"" while evaluating
"translate_doc(doc_id, doc_model, 'user_id.partner_id.lang', 'school_erp.report_printstandard')"" while evaluating
这是我的代码:
在report.xml中:
<template id="report_printstandard">
<t t-call="report.html_container">
<t t-foreach="doc_ids" t-as="doc_id">
<t t-raw="translate_doc(doc_id, doc_model, 'user_id.partner_id.lang', 'school_erp.report_printstandard')"/>
</t>
</t>
</template>
这是我的模块:
class school_standard(osv.osv):
_name = 'school.standard'
_rec_name = "code"
_columns = {
'name':fields.char('Standard Name', size=256, required=True),
'code':fields.char('Standard Code', size=8, required=True),
'user_id':fields.many2one('res.users', 'User'),
'student_line':fields.one2many('school.student', 'standard_id', 'Students'),
}
def get_uid(self, cr, uid, context=None):
return uid
_defaults = {
'user_id': get_uid,
}
school_standard()
我的代码有什么问题?
您正在使用来自 'school_erp.report_printstandard'
的相同 ID <template id="report_printstandard">
。
您应该创建一个具有不同 ID 的新模板:
<template id="report_printstandard_document">
<t t-call="report.external_layout">
<div class="page">
<!-- Your Code-->
</div>
</t>
</template>
<template id="report_printstandard">
<t t-call="report.html_container">
<t t-foreach="doc_ids" t-as="doc_id">
<t t-raw="translate_doc(doc_id, doc_model, 'user_id.partner_id.lang', 'school_erp.report_printstandard_document')"/>
</t>
</t>
</template>
您遇到的问题是 Qweb 错误超出最大递归深度,因为您在 translate_doc 方法上传递了错误的参数
并且您正在尝试传递具有翻译机制模板的相同 ID,而不是使用 qweb 报告的模板。
translate_doc() 的作用类似于:
在应将报告翻译成特定语言时使用的助手
<t t-foreach="doc_ids" t-as="doc_id">
<t t-raw="translate_doc(doc_id, doc_model, 'user_id.partner_id.lang', account.report_invoice_school_erp.report_printstandard_documentdocument')"/>
</t>
翻译文档功能参数:
1. param doc_id: 要翻译的记录的 id
2。 param model: 要翻译的记录的模型
3。 param lang_field': 包含 lang
的记录字段
4. param template: 要转换成 lang_field
的模板名称
希望我的回答对您有所帮助:)
我正在尝试创建报告,我的代码似乎一切正常,只是在打印报告时出现此错误
这是错误消息的一部分:
File "/opt/odoo8/odoo/addons/report/models/report.py", line 135, in translate_doc
return self.translate_doc(cr, uid, doc_id, model, lang_field, template, values, context=context)
File "/opt/odoo8/odoo/openerp/api.py", line 268, in wrapper
return old_api(self, *args, **kwargs)
File "/opt/odoo8/odoo/addons/report/models/report.py", line 106, in translate_doc
doc = self.pool[model].browse(cr, uid, doc_id, context=ctx)
File "/opt/odoo8/odoo/openerp/api.py", line 268, in wrapper
return old_api(self, *args, **kwargs)
File "/opt/odoo8/odoo/openerp/models.py", line 5266, in browse
return self._browse(Environment(cr, uid, context or {}), ids)
QWebException: """"""""""""""""""""""""""""""maximum recursion depth exceeded" while evaluating
"translate_doc(doc_id, doc_model, 'user_id.partner_id.lang', 'school_erp.report_printstandard')"" while evaluating
"translate_doc(doc_id, doc_model, 'user_id.partner_id.lang', 'school_erp.report_printstandard')"" while evaluating
"translate_doc(doc_id, doc_model, 'user_id.partner_id.lang', 'school_erp.report_printstandard')"" while evaluating
这是我的代码:
在report.xml中:
<template id="report_printstandard">
<t t-call="report.html_container">
<t t-foreach="doc_ids" t-as="doc_id">
<t t-raw="translate_doc(doc_id, doc_model, 'user_id.partner_id.lang', 'school_erp.report_printstandard')"/>
</t>
</t>
</template>
这是我的模块:
class school_standard(osv.osv):
_name = 'school.standard'
_rec_name = "code"
_columns = {
'name':fields.char('Standard Name', size=256, required=True),
'code':fields.char('Standard Code', size=8, required=True),
'user_id':fields.many2one('res.users', 'User'),
'student_line':fields.one2many('school.student', 'standard_id', 'Students'),
}
def get_uid(self, cr, uid, context=None):
return uid
_defaults = {
'user_id': get_uid,
}
school_standard()
我的代码有什么问题?
您正在使用来自 'school_erp.report_printstandard'
的相同 ID <template id="report_printstandard">
。
您应该创建一个具有不同 ID 的新模板:
<template id="report_printstandard_document">
<t t-call="report.external_layout">
<div class="page">
<!-- Your Code-->
</div>
</t>
</template>
<template id="report_printstandard">
<t t-call="report.html_container">
<t t-foreach="doc_ids" t-as="doc_id">
<t t-raw="translate_doc(doc_id, doc_model, 'user_id.partner_id.lang', 'school_erp.report_printstandard_document')"/>
</t>
</t>
</template>
您遇到的问题是 Qweb 错误超出最大递归深度,因为您在 translate_doc 方法上传递了错误的参数 并且您正在尝试传递具有翻译机制模板的相同 ID,而不是使用 qweb 报告的模板。
translate_doc() 的作用类似于:
在应将报告翻译成特定语言时使用的助手
<t t-foreach="doc_ids" t-as="doc_id">
<t t-raw="translate_doc(doc_id, doc_model, 'user_id.partner_id.lang', account.report_invoice_school_erp.report_printstandard_documentdocument')"/>
</t>
翻译文档功能参数:
1. param doc_id: 要翻译的记录的 id
2。 param model: 要翻译的记录的模型
3。 param lang_field': 包含 lang
的记录字段4. param template: 要转换成 lang_field
的模板名称希望我的回答对您有所帮助:)