0

How can I make a Python function accessible in Qweb templates.
Like the Python function slug() being used in templates in website_sale and website_hr_recruitment modules

mahes
  • 1,074
  • 3
  • 12
  • 20

1 Answers1

2

For qweb reports, define the function in the model. For example, you have inherited the model account.invoice and you want to add something in the qweb report template, you create a function like:

@api.multi
def myfunction(self, s):
    return s.lower()

Then in your template, you can call it like <span t-esc="o.myfunction('Hello')"/>.

In a website template, you can include the function in the render context like:

http.request.website.render(
    "my_module.my_template", 
    {'myfunction': self.myfunction})

Then you can call it as usual: <span t-esc="myfunction('Hello')"/>

macdelacruz
  • 607
  • 5
  • 20