如何设计销售中产品描述输出的样式.订单报告模板在flextra或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差异- - - - - - - - - t - esc -和- t -生- 92184

最新更新