تخطي للذهاب إلى المحتوى
القائمة
لقد تم الإبلاغ عن هذا السؤال
1 الرد
6325 أدوات العرض

I'm trying to use report parser, but it always pop an error

ValueError  The _name attribute report.test_module.report_test_doc is not valid

I searched that your report name is use for the parser _template and _name in order to be used by Odoo. It doesn't show the error if I remove the test_module in 'report.report_test_doc', but when I execute it, another error appears -  'Nonetype' object is not callable' hello()


report.xml

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data>
        <report 
            id="eport_monthly_pdc"
            string="Monthly report of PDC"
            model="account.voucher"
            report_type="qweb-pdf"
            name="test_module.report_test_doc" 
            file="test_module.report_test_doc" 
        />
    </data>
</openerp>

report_parser.py

from openerp import api, models
from openerp.report import report_sxw
import time
class report_parser(report_sxw.rml_parse):
    def __init__(self, cr, uid, name, context):
        super(report_parser, self).__init__(cr, uid, name, context=context)
        self.localcontext.update({     
            'time': time,            
            'hello_world': self._hello,
        })
    def _hello(self):
        return "Hello World!"

class report_parser_test(models.AbstractModel):
    _name = 'report.test_module.report_test_doc'
    _inherit = 'report.abstract_report'
    _template = 'test_module.report_test_doc'
    _wrapped_report_class = report_parser


report_test_doc.xml


<openerp>
<data> 
<template id="report_test_doc">
    <t t-call="report.html_container">
        <t t-foreach="docs" t-as="o">
            <t t-call="test_module.report_test_layout">
                <div class="page">
                    <div class="text-center">
                        <span t-esc="hello_world()"/>
                    </div>
                </div>
            </t>
        </t>
    </t>
</template>
</data>
</openerp>

What am I missing?

الصورة الرمزية
إهمال
أفضل إجابة

I have used the same code, but i didn't get any error as like as you mentioned. I had the error in "report_test_doc.xml" file. So i replaced the 6th line as below:

<t t-call="report.external_layout">

then is working fine for me. 

الصورة الرمزية
إهمال
الكاتب

That was my custom layout. Anyway, it was already solved, the name of the module is the problems. Hehe Thanks anyway :)

المنشورات ذات الصلة الردود أدوات العرض النشاط
4
يناير 25
44419
0
أكتوبر 24
1400
0
أكتوبر 24
5
1
مايو 23
2939
5
مايو 21
11462