Medi Geras
Medi Geras

Reputation: 43

Odoo routes gives "Internal Server Error" error page

I'm learning Odoo 11 python developement on Ubuntu by creating a new custom module, from a Youtube video, its code is available on github.

I copied the same project (https://github.com/mtsoftware2016/Odoo-First-Model), everything is working fine except for routes.

controllers.py :

from odoo import http

class MyfirstModel(http.Controller):
    @http.route('/home', auth='public')
    def home(self, **kw):
        return 'Hello world'

    @http.route('/example', type='http', auth='public', website=True)
    def render_example_page(self):
        customer = http.request.env['customer'].sudo().search([])
        return http.request.render('myfirst_model.example_page', {'customers': customer})

Here the /home route is working, but /example gives this error message on page:

Internal Server Error

The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

Odoo errors log:

2018-10-25 10:33:58,858 4933 INFO odoo3 werkzeug: 127.0.0.1 - - [25/Oct/2018 10:33:58] "GET /example HTTP/1.1" 500 -
2018-10-25 10:33:58,880 4933 ERROR odoo3 werkzeug: Error on request:
Traceback (most recent call last):
  File "/home/ubuntu/.local/lib/python3.6/site-packages/werkzeug/serving.py", line 270, in run_wsgi
    execute(self.server.app)
  File "/home/ubuntu/.local/lib/python3.6/site-packages/werkzeug/serving.py", line 258, in execute
    application_iter = app(environ, start_response)
  File "/opt/odoo/odoo/odoo/service/server.py", line 250, in app
    return self.app(e, s)
  File "/opt/odoo/odoo/odoo/service/wsgi_server.py", line 166, in application
    return application_unproxied(environ, start_response)
  File "/opt/odoo/odoo/odoo/service/wsgi_server.py", line 154, in application_unproxied
    result = handler(environ, start_response)
  File "/opt/odoo/odoo/odoo/http.py", line 1318, in __call__
    return self.dispatch(environ, start_response)
  File "/opt/odoo/odoo/odoo/http.py", line 1292, in __call__
    return self.app(environ, start_wrapped)
  File "/home/ubuntu/.local/lib/python3.6/site-packages/werkzeug/wsgi.py", line 766, in __call__
    return self.app(environ, start_response)
  File "/opt/odoo/odoo/odoo/http.py", line 1490, in dispatch
    result = ir_http._dispatch()
  File "/opt/odoo/odoo/addons/web_editor/models/ir_http.py", line 22, in _dispatch
    return super(IrHttp, cls)._dispatch()
  File "/opt/odoo/odoo/odoo/addons/base/ir/ir_http.py", line 212, in _dispatch
    return cls._handle_exception(e)
  File "/opt/odoo/odoo/odoo/addons/base/ir/ir_http.py", line 182, in _handle_exception
    return request._handle_exception(exception)
  File "/opt/odoo/odoo/odoo/http.py", line 770, in _handle_exception
    return super(HttpRequest, self)._handle_exception(exception)
  File "/opt/odoo/odoo/odoo/http.py", line 310, in _handle_exception
    raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
  File "/opt/odoo/odoo/odoo/tools/pycompat.py", line 87, in reraise
    raise value
  File "/opt/odoo/odoo/odoo/addons/base/ir/ir_http.py", line 208, in _dispatch
    result = request.dispatch()
  File "/opt/odoo/odoo/odoo/http.py", line 829, in dispatch
    r = self._call_function(**self.params)
  File "/opt/odoo/odoo/odoo/http.py", line 342, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/opt/odoo/odoo/odoo/service/model.py", line 97, in wrapper
    return f(dbname, *args, **kwargs)
  File "/opt/odoo/odoo/odoo/http.py", line 338, in checked_call
    result.flatten()
  File "/opt/odoo/odoo/odoo/http.py", line 1269, in flatten
    self.response.append(self.render())
  File "/opt/odoo/odoo/odoo/http.py", line 1262, in render
    return env["ir.ui.view"].render_template(self.template, self.qcontext)
  File "/opt/odoo/odoo/odoo/addons/base/ir/ir_ui_view.py", line 1201, in render_template
    return self.browse(self.get_view_id(template)).render(values, engine)
  File "/opt/odoo/odoo/addons/web_editor/models/ir_ui_view.py", line 27, in render
    return super(IrUiView, self).render(values=values, engine=engine)
  File "/opt/odoo/odoo/odoo/addons/base/ir/ir_ui_view.py", line 1210, in render
    return self.env[engine].render(self.id, qcontext)
  File "/opt/odoo/odoo/odoo/addons/base/ir/ir_qweb/ir_qweb.py", line 57, in render
    return super(IrQWeb, self).render(id_or_xml_id, values=values, **context)
  File "/opt/odoo/odoo/odoo/addons/base/ir/ir_qweb/qweb.py", line 272, in render
    self.compile(template, options)(self, body.append, values or {})
  File "/opt/odoo/odoo/odoo/addons/base/ir/ir_qweb/qweb.py", line 345, in _compiled_fn
    raise e
  File "/opt/odoo/odoo/odoo/addons/base/ir/ir_qweb/qweb.py", line 343, in _compiled_fn
    return compiled(self, append, new, options, log)
  File "<template>", line 1, in template_236_3

  File "<decorator-gen-37>", line 2, in compile

  File "/opt/odoo/odoo/odoo/tools/cache.py", line 89, in lookup
    value = d[key] = self.method(*args, **kwargs)
  File "/opt/odoo/odoo/odoo/addons/base/ir/ir_qweb/ir_qweb.py", line 77, in compile
    return super(IrQWeb, self).compile(id_or_xml_id, options=options)
  File "/opt/odoo/odoo/odoo/addons/base/ir/ir_qweb/qweb.py", line 289, in compile
    element, document = self.get_template(template, options)
  File "/opt/odoo/odoo/odoo/addons/base/ir/ir_qweb/qweb.py", line 373, in get_template
    raise QWebException("load could not load template", name=template)
odoo.addons.base.ir.ir_qweb.qweb.QWebException: None
Traceback (most recent call last):
  File "/opt/odoo/odoo/odoo/tools/cache.py", line 84, in lookup
    r = d[key]
  File "/opt/odoo/odoo/odoo/tools/func.py", line 68, in wrapper
    return func(self, *args, **kwargs)
  File "/opt/odoo/odoo/odoo/tools/lru.py", line 44, in __getitem__
    a = self.d[obj].me
KeyError: ('ir.qweb', <function IrQWeb.compile at 0x7f10b987f9d8>, 'website.layout', ('en_US', None, None, None, None, None))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/odoo/odoo/odoo/tools/cache.py", line 84, in lookup
    r = d[key]
  File "/opt/odoo/odoo/odoo/tools/func.py", line 68, in wrapper
    return func(self, *args, **kwargs)
  File "/opt/odoo/odoo/odoo/tools/lru.py", line 44, in __getitem__
    a = self.d[obj].me
KeyError: ('ir.model.data', <function IrModelData.xmlid_lookup at 0x7f10ba819620>, 'website.layout')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/odoo/odoo/odoo/addons/base/ir/ir_qweb/qweb.py", line 369, in get_template
    document = options.get('load', self.load)(template, options)
  File "/opt/odoo/odoo/odoo/addons/base/ir/ir_qweb/ir_qweb.py", line 85, in load
    template = env['ir.ui.view'].read_template(name)
  File "/opt/odoo/odoo/odoo/addons/base/ir/ir_ui_view.py", line 1096, in read_template
    return self._read_template(self.get_view_id(xml_id))
  File "/opt/odoo/odoo/odoo/addons/base/ir/ir_ui_view.py", line 1108, in get_view_id
    return self.env['ir.model.data'].xmlid_to_res_id(template, raise_if_not_found=True)
  File "/opt/odoo/odoo/odoo/addons/base/ir/ir_model.py", line 1343, in xmlid_to_res_id
    return self.xmlid_to_res_model_res_id(xmlid, raise_if_not_found)[1]
  File "/opt/odoo/odoo/odoo/addons/base/ir/ir_model.py", line 1334, in xmlid_to_res_model_res_id
    return self.xmlid_lookup(xmlid)[1:3]
  File "<decorator-gen-21>", line 2, in xmlid_lookup
  File "/opt/odoo/odoo/odoo/tools/cache.py", line 89, in lookup
    value = d[key] = self.method(*args, **kwargs)
  File "/opt/odoo/odoo/odoo/addons/base/ir/ir_model.py", line 1323, in xmlid_lookup
    raise ValueError('External ID not found in the system: %s' % xmlid)
ValueError: External ID not found in the system: website.layout

load could not load template
Template: website.layout

example_page view:

<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <template id="example_page" name="Customer Details">
        <t t-call="website.layout">
            <center>
                <h>Customer Details</h>
            </center>
        </t>
    </template>
</odoo>

Any suggestions?

Upvotes: 0

Views: 1676

Answers (1)

Medi Geras
Medi Geras

Reputation: 43

Fixed the problem by installing the Odoo website module.

Upvotes: 2

Related Questions