在body_html odoo 9中获取网址

时间:2017-08-28 14:26:08

标签: openerp odoo-9

是否可以在xml模板中获取网页网址?

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

注意:

$ {object.id}

返回id例如。 10

1 个答案:

答案 0 :(得分:3)

在我看来,QWeb在执行Python中的简单操作时会有一些后退,例如访问envbrowsesearch或获取其他内容像dbname这样的数据或像base_url这样的公司参数。

我过去所做的只是创建一个帮助,让Python为你做脏工作,这样你就可以保持QWeb简单。

<强> your_module /助手/ 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 /模型/ model.py

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

class YourModel(models.Model, CanGenerateUrl):

<强> your_module /视图/ report.xml将

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

Reports Documentation

QWeb Documentation