This question has been flagged
3 Replies
10850 Views

Hi

I'm trying to show a qweb report after pressing a button, for now I can see the action report view, but I'm getting this error: 

Traceback (most recent call last):
  File "/Users/devkit/proyectos/Odoo_Base/odoo/venv/lib/python3.7/site-packages/werkzeug/serving.py", line 205, in run_wsgi
    execute(self.server.app)
  File "/Users/devkit/proyectos/Odoo_Base/odoo/venv/lib/python3.7/site-packages/werkzeug/serving.py", line 193, in execute
    application_iter = app(environ, start_response)
  File "/Users/devkit/proyectos/Odoo_Base/odoo/odoo/service/server.py", line 250, in app
    return self.app(e, s)
  File "/Users/devkit/proyectos/Odoo_Base/odoo/odoo/service/wsgi_server.py", line 166, in application
    return application_unproxied(environ, start_response)
  File "/Users/devkit/proyectos/Odoo_Base/odoo/odoo/service/wsgi_server.py", line 154, in application_unproxied
    result = handler(environ, start_response)
  File "/Users/devkit/proyectos/Odoo_Base/odoo/odoo/http.py", line 1318, in __call__
    return self.dispatch(environ, start_response)
  File "/Users/devkit/proyectos/Odoo_Base/odoo/odoo/http.py", line 1292, in __call__
    return self.app(environ, start_wrapped)
  File "/Users/devkit/proyectos/Odoo_Base/odoo/venv/lib/python3.7/site-packages/werkzeug/wsgi.py", line 599, in __call__
    return self.app(environ, start_response)
  File "/Users/devkit/proyectos/Odoo_Base/odoo/odoo/http.py", line 1490, in dispatch
    result = ir_http._dispatch()
  File "/Users/devkit/proyectos/Odoo_Base/odoo/addons/auth_signup/models/ir_http.py", line 19, in _dispatch
    return super(Http, cls)._dispatch()
  File "/Users/devkit/proyectos/Odoo_Base/odoo/addons/web_editor/models/ir_http.py", line 22, in _dispatch
    return super(IrHttp, cls)._dispatch()
  File "/Users/devkit/proyectos/Odoo_Base/odoo/addons/http_routing/models/ir_http.py", line 393, in _dispatch
    result = super(IrHttp, cls)._dispatch()
  File "/Users/devkit/proyectos/Odoo_Base/odoo/odoo/addons/base/ir/ir_http.py", line 212, in _dispatch
    return cls._handle_exception(e)
  File "/Users/devkit/proyectos/Odoo_Base/odoo/odoo/addons/base/ir/ir_http.py", line 182, in _handle_exception
    return request._handle_exception(exception)
  File "/Users/devkit/proyectos/Odoo_Base/odoo/odoo/http.py", line 770, in _handle_exception
    return super(HttpRequest, self)._handle_exception(exception)
  File "/Users/devkit/proyectos/Odoo_Base/odoo/odoo/http.py", line 310, in _handle_exception
    raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
  File "/Users/devkit/proyectos/Odoo_Base/odoo/odoo/tools/pycompat.py", line 87, in reraise
    raise value
  File "/Users/devkit/proyectos/Odoo_Base/odoo/odoo/addons/base/ir/ir_http.py", line 208, in _dispatch
    result = request.dispatch()
  File "/Users/devkit/proyectos/Odoo_Base/odoo/odoo/http.py", line 829, in dispatch
    r = self._call_function(**self.params)
  File "/Users/devkit/proyectos/Odoo_Base/odoo/odoo/http.py", line 342, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/Users/devkit/proyectos/Odoo_Base/odoo/odoo/service/model.py", line 97, in wrapper
    return f(dbname, *args, **kwargs)
  File "/Users/devkit/proyectos/Odoo_Base/odoo/odoo/http.py", line 335, in checked_call
    result = self.endpoint(*a, **kw)
  File "/Users/devkit/proyectos/Odoo_Base/odoo/odoo/http.py", line 936, in __call__
    return self.method(*args, **kw)
  File "/Users/devkit/proyectos/Odoo_Base/odoo/odoo/http.py", line 515, in response_wrap
    response = f(*args, **kw)
  File "/Users/devkit/proyectos/Odoo_Base/odoo/addons/web/controllers/main.py", line 1566, in report_routes
    html = report.with_context(context).render_qweb_html(docids, data=data)[0]
  File "/Users/devkit/proyectos/Odoo_Base/enterprise/web_studio/models/report.py", line 17, in render_qweb_html
    return super(Report, self).render_qweb_html(docids, data)
  File "/Users/devkit/proyectos/Odoo_Base/odoo/odoo/addons/base/ir/ir_actions_report.py", line 661, in render_qweb_html
    docs = self.env[self.model].browse(docids)
  File "/Users/devkit/proyectos/Odoo_Base/odoo/odoo/api.py", line 760, in __getitem__
    return self.registry[model_name]._browse((), self)
  File "/Users/devkit/proyectos/Odoo_Base/odoo/odoo/modules/registry.py", line 179, in __getitem__
    return self.models[model_name]
KeyError: False


This is my button:

<button string="Generar reporte sin montos" type="object" name="printWOImportsAction" class="oe_highlight"/>

And this is my python code:


@api.multi
def printWOImportsAction(self, context={}):
self.ensure_one()
return {
'type': 'ir.actions.report',
'report_name':'account.report_invoice_document',
'model':'account.invoice',
'report_type':"qweb-pdf",
  } 

Avatar
Discard
Best Answer

Hello

You Can try this i hope it's help you.

 
@api.multi
def printWOImportAction(self):
return self.env.ref('Modulename.ReportActionID').report_action(self)

Thanks

Avatar
Discard
Best Answer

Hello, 

see this below. this type of example already exist into sale order.

    @api.multi
    def print_report(self):
        return self.env.ref('<modulename.report_action_id>').report_action(self)
Avatar
Discard
Best Answer
return {
'type': 'ir.actions.report',
'report_name':'account.report_invoice_document',
'model':'account.invoice',
'report_type':"qweb-pdf"
  } 

There was an extra , after 'report_type':"qweb-pdf" and also the report will be generated only according to the template xml which you are created. And the template is not shown in your question.
Avatar
Discard