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. Надеюсь, что это работает.

Другие вопросы по тегам