2017-08-28 1 views
0

Est-il possible d'obtenir l'URL d'une page Web dans un template XML?Obtenir l'URL dans body_html odoo 9

<field name="body_html"> 
    <![CDATA[ 
     <p>Get url here</p> 
    ]]> 
</field> 

Note:

$ {} object.id

id retour par exemple. 10

Répondre

1

À mon avis, QWEB a quelques solutions de repli quand il s'agit de faire ce qui serait autrement une chose simple en Python, comme l'accès env à browse, search, ou d'obtenir d'autres données comme dbname ou les paramètres compagnie comme base_url. Ce que j'ai fait dans le passé est juste de créer une aide pour que Python fasse le sale boulot pour que vous puissiez garder QWeb simple.

your_module/aides/mixins.py

class CanGenerateUrl: 
    def generate_url(self): 
     """ 
     Build the URL to the record's form view. 
      - Base URL + Database Name + Record ID + Model Name 

     :param self: any Odoo record browse object (with access to env, _cr, and _model) 
     :return: string with url 
     """ 
     self.ensure_one() 
     base_url = self.env['ir.config_parameter'].get_param('web.base.url') 
     if base_url and base_url[-1:] != '/': 
      base_url += '/' 
     db = self._cr.dbname 
     return "{}web?db={}#id={}&view_type=form&model={}".format(base_url, db, self.id, self._model) 

your_module/modèles/model.py

from openerp.addons.your_module.helpers.mixins import CanGenerateUrl 

class YourModel(models.Model, CanGenerateUrl): 

your_module/vues/report.xml

<p><a href="${object.generate_url()}">${object.name or 'None'}<a/></p> 

Reports Documentation

QWeb Documentation