如何解决无法渲染模板 <Template memory:7f71d4d57a90> Odoo 13
我想在 pos 中向经理组发送电子邮件,并在聊天中添加它。所以,我添加了一个模板,并在 python 函数中添加了发送电子邮件的代码。但是,我收到以下错误:
Failed to render template <Template memory:7f71d4d57a90> using values {'format_date': <function MailTemplate._render_template.<locals>.<lambda> at 0x7f71d6146c80>,'format_datetime': <function MailTemplate._render_template.<locals>.<lambda> at 0x7f71d6146e18>,'format_amount': <function MailTemplate._render_template.<locals>.<lambda> at 0x7f71d6146f28>,'format_duration': <function MailTemplate._render_template.<locals>.<lambda> at 0x7f71d6146ea0>,'user': res.users(2,),'ctx': {'lang': 'en_US','tz': False,'uid': 2,'allowed_company_ids': [1],'active_model': 'pos.config','active_id': 1,'active_ids': [1],'safe': False},'object': pos.session(3,)}
UndefinedError: 'odoo.api.pos.session object' has no attribute 'user'
Python 代码:
class PosSession(models.Model):
_inherit = 'pos.session'
def _warning_balance_closing(self):
self.ensure_one()
context = dict(self._context)
context['session_id'] = self.id
template_id = self.env.ref('my_module.email_template')
managers = self.env.ref('point_of_sale.group_pos_manager')
users = managers.users
users = list(set(users))
if template_id:
for user in users:
template_id.send_mail(self.id,force_send=True,raise_exception=True,email_values={'email_to': user.email})
return {
'name': _('Balance control'),'view_type': 'form','view_mode': 'form','res_model': 'closing.balance.confirm.wizard','views': [(False,'form')],'type': 'ir.actions.act_window','context': context,'target': 'new'
}
模板:
<record id="email_template" model="mail.template">
<field name="name">Template e-mail</field>
<field name="email_from">${(user.email or '')|safe}</field>
<field name="subject">Template e-mail</field>
<field name="lang">${object.lang}</field>
<field name="model_id" ref="model_pos_session"/>
<field name="auto_delete" eval="True"/>
<field name="body_html">
<![CDATA[
<p>Dear ${object.user.name or ''},Regards,</p>
]]>
</field>
</record>
我的代码有什么问题?请问有什么帮助吗? 谢谢。
解决方法
你得到了:
UndefinedError: 'odoo.api.pos.session object' has no attribute 'user'
要获取用户名,请改用 user_id
。
示例:
object.user_id.name
,
您可能忘记在 init_.py
中导入模型版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。