odoo выдает ошибку разбора при использовании email.template при создании шаблона электронной почты
Я хотел бы создать шаблон электронной почты в odoo. Мой код выглядит следующим образом,
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data>
<record id="room_request_approval" model="email.template">
<field name="name">Approval Notification</field>
<field name="email_from">${object.users_company.email}</field>
<field name="subject">Room request approved</field>
<field name="email_to" >${object.assignee.email}</field>
<field name="auto_delete" eval="True"/>
<field name="model_id" ref="model_request_room"/>
<field name="body_html"><![CDATA[
<html>
<head>
<title>Room Request Approved</title>
<style>
span.oe_mail_footer_access {
display:block;
text-align:center;
color:grey;
}
</style>
</head>
<body>
<p>Hiii</p>
</body>
</html>
]]>
</field>
</record>
Выдает ошибку следующим образом: ParseError: "email.template" при разборе файла
2 ответа
Решение
Вы проверили, если проблема внутри body_html
поле? Попробуйте что-нибудь попроще, например, следующее, а также добавьте безопасное в электронные письма:
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data>
<record id="room_request_approval" model="email.template">
<field name="name">Approval Notification</field>
<field name="email_from">${(object.users_company.email or '')|safe}</field>
<field name="subject">Room request approved</field>
<field name="email_to" >${(object.assignee.email or '')|safe}</field>
<field name="auto_delete" eval="True"/>
<field name="model_id" ref="model_request_room"/>
<field name="body_html"><![CDATA[
<p>Hello!</p>]]></field>
</record>
</data>
</openerp>
Я думаю, что ваша модель названа request.room
и у него есть два Many2one
названные поля users_company
а также assignee
не так ли?
А в коде Python у вас должно быть что-то вроде этого для отправки почты:
request_room_recordset = self.env['request.room'].search(
whatever_domain).ensure_one()
et_pool = self.pool.get('email.template')
mail_sent = et_pool.send_mail(
self.env.cr, 1, template.id, request_room_recordset.id,
force_send=True, context=self.env.context)
Попробуйте добавить зависимость 'email_template' в ваш файл.py. Надеюсь, что это работает.