Siirry sisältöön
Menu
Sinun on rekisteröidyttävä, jotta voit olla vuorovaikutuksessa yhteisön kanssa.
Tämä kysymys on merkitty
2 Vastaukset
648 Näkymät

I have already created an HTML/CSS static page in Odoo Enterprise without using the default website blocks provided by Odoo. Now I want to make this page dynamic.

Is it possible to make a custom HTML page dynamic in Odoo? If so, what is the best approach to do this?

I'm looking for guidance on how to integrate dynamic content (like data from models) into my custom-built page.

Thanks in advance!

Avatar
Hylkää
Paras vastaus

Hii,

Create a custom controller
  • In Odoo, dynamic website pages are usually served by controllers written in Python.
  • Your controller method renders a template and passes data (from models) to it.
Convert your static HTML page into a QWeb template
  • Take your existing HTML page and convert it into a QWeb template inside an Odoo module.
  • Add placeholders using QWeb syntax (t-foreach, t-esc, etc.) where you want dynamic data.

Example:

<t t-name="your_module.custom_page">

  <h1>Products List</h1>

  <ul>

    <t t-foreach="products" t-as="product">

      <li><t t-esc="product.name"/></li>

    </t>

  </ul>

</t>

Create a route to serve your page
  • In your controller, define a route URL and render your template with dynamic data.

Example controller snippet:
from odoo import http


class CustomPageController(http.Controller):


    @http.route('/custom/page', type='http', auth='public', website=True)

    def custom_page(self, **kwargs):

        products = http.request.env['product.product'].search([], limit=10)

        return http.request.render('your_module.custom_page', {

            'products': products,

        })

Link your page
  • Access your dynamic page via /custom/page (or your chosen route).
  • This page will now render your original HTML but with real-time data from the Odoo backend.
Avatar
Hylkää
Aiheeseen liittyviä artikkeleita Vastaukset Näkymät Toimenpide
2
heinäk. 25
1453
1
toukok. 25
902
2
toukok. 25
1547
1
heinäk. 24
3202
0
elok. 24
341