如何在 Flectra 或 Odoo 的 sale.order 报告模板中设置产品描述输出样式?
How to style product description output in sale.order report template in Flectra or Odoo?
我想将 Flectra/Odoo 报价的打印 PDF 报告中产品描述的第一行设置为 BOLD,因此我将以下代码添加到我的模型中
@api.multi
def setFirstLineBold(self,txt):
txt = txt.replace('\n', '<br/>')
return txt
@api.multi
def render_html(self, docids, data=None):
report = self.env['report']._get_report_from_name(self._template)
docargs = {
'doc_ids': self._ids,
'doc_model': report.model,
'docs': self.env['sale.order'].browse(self._ids),
'setFirstLineBold': self.setFirstLineBold
}
return report_obj.render(self._template, docargs)
然后我调用了模板中的方法
<t t-foreach="layout_category['lines']" t-as="l">
<tr class="table-body">
<span t-esc="doc.setFirstLineBold(l.name)"/></td>
但随后发生的事情实际上与我想要实现的完全相反:描述文本中先前存在的格式(换行符),之前在打印的 pdf 报告中以换行符显示,已完全删除。 HTML-换行符 <br/>
也被打印而不是被解释。
如果我只是运行
@api.multi
def setFirstLineBold(self,txt):
return txt
文本中的所有换行符 ('\n'
) 似乎也被删除或未被解释。文本显示在一个丑陋的块中...
现在我的问题是:如何为描述文本创建格式?我只想把第一行加粗。
感谢!
使用RAW代替ESC解决问题:
<span t-raw="doc.setFirstLineBold(l.name)"/>
https://www.odoo.com/forum/help-1/what-is-the-difference-between-t-esc-and-t-raw-92184
我想将 Flectra/Odoo 报价的打印 PDF 报告中产品描述的第一行设置为 BOLD,因此我将以下代码添加到我的模型中
@api.multi
def setFirstLineBold(self,txt):
txt = txt.replace('\n', '<br/>')
return txt
@api.multi
def render_html(self, docids, data=None):
report = self.env['report']._get_report_from_name(self._template)
docargs = {
'doc_ids': self._ids,
'doc_model': report.model,
'docs': self.env['sale.order'].browse(self._ids),
'setFirstLineBold': self.setFirstLineBold
}
return report_obj.render(self._template, docargs)
然后我调用了模板中的方法
<t t-foreach="layout_category['lines']" t-as="l">
<tr class="table-body">
<span t-esc="doc.setFirstLineBold(l.name)"/></td>
但随后发生的事情实际上与我想要实现的完全相反:描述文本中先前存在的格式(换行符),之前在打印的 pdf 报告中以换行符显示,已完全删除。 HTML-换行符 <br/>
也被打印而不是被解释。
如果我只是运行
@api.multi
def setFirstLineBold(self,txt):
return txt
文本中的所有换行符 ('\n'
) 似乎也被删除或未被解释。文本显示在一个丑陋的块中...
现在我的问题是:如何为描述文本创建格式?我只想把第一行加粗。
感谢!
使用RAW代替ESC解决问题:
<span t-raw="doc.setFirstLineBold(l.name)"/>
https://www.odoo.com/forum/help-1/what-is-the-difference-between-t-esc-and-t-raw-92184