1

レポートを作成しようとしていますが、レポートの印刷中にこのエラーが発生したことを除いて、私のコードではすべて問題ないように見えました

エラーメッセージの一部を次に示します。

  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()

私のコードで何が間違っていますか?

4

2 に答える 2

1

<template id="report_printstandard">から同じ ID を使用してい'school_erp.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>
于 2016-02-06T16:25:51.293 に答える
1

translate_docメソッドで間違った引数を渡し、qweb レポートのテンプレートを使用しないように翻訳メカニズムのテンプレートを持つ同じ 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': 言語を含むレコードのフィールド

4. param template: lang_field に変換するテンプレートの名前

私の答えがあなたに役立つことを願っています:)

于 2016-02-07T07:00:51.630 に答える