PROTOCOL
PROTOCOL

Reputation: 371

Overriding index method of Website module in Odoo 11

I am trying to override index method in website module in odoo 11.

Following is my code

from odoo import http
from addons.website.controllers.main import Website


class Home(Website):

@http.route(['/', '/index', '/home'], type='http', website=True, auth='public')
def index(self, **kw):
    super(Website, self).index(**kw)
    return http.request.render('my_website.home')

I have created a new template in my_website named home. But when I go to http://localhost:8069 it is loading the standard odoo template for website with header and footer. When I go to either http://localhost:8069/index or http://localhost:8069/home it is throwing 404 error. It doesn't take my new template home.

I have referred this SO question How to change default page of odoo with other webcontroller odoo 9.0 but doesn't work.

Upvotes: 1

Views: 624

Answers (1)

PROTOCOL
PROTOCOL

Reputation: 371

The issue is solved. You have to import from odoo.addons rather from addons.

from odoo.addons.web.controllers.main import Website


class MyHome(Website):

@http.route(['/', '/index', '/home'], type='http', website=True, auth='public')
def index(self, **kw):
    return http.request.render('my_website.home')

Then use your template to render.

Upvotes: 1

Related Questions