İçereği Atla
Menü
Bu soru işaretlendi
1 Cevapla
9979 Görünümler

Hello

How can I format a date in an email template (send invoice by email for example) in Odoo 13?

It seems that this has been changed since V12. In Odoo 12 I have used the following placeholder to format the invoice date ${format_tz(object.date_invoice, tz='UTC', format='%d/%m/%Y')}

But now the same placeholder doesn't work anymore and I receive the following error:

Failed to render template using values {'format_date': <function MailTemplate._render_template.. at 0x7fa452db9c80>, 'format_datetime': <function MailTemplate._render_template.. at 0x7fa45131b048>, 'format_amount': <function MailTemplate._render_template.. at 0x7fa45131b2f0>, 'format_duration': <function MailTemplate._render_template.. at 0x7fa45131b268>, 'user': res.users(2,), 'ctx': {'lang': 'en_US', 'tz': 'Europe/Brussels', 'uid': 2, 'allowed_company_ids': [1], 'template_id': 31, 'active_model': 'mail.template', 'active_id': 31, 'active_ids': [31], 'template_preview_lang': 'en_US', 'safe': False}, 'object': account.move(86,)}

UndefinedError: 'format_tz' is undefined


All this can be tested and reproduced on odoo runbot.

Thanks in advance for any kind of help.



Avatar
Vazgeç

Hi,

thanks for your answer, this is working for v14 too!

En İyi Yanıt

Hi Benjamin,

try this

${object.date_invoice.strftime('%d/%m/%Y')}
Avatar
Vazgeç
Üretici

Hello Murad

Thank you for your quick reply. This is working for odoo 13

Best Regards,

Benjamin

Also working in Odoo 14, thanks!

This prints the hour in UTC, how can I print the hour in a choosen timezone?

İlgili Gönderiler Cevaplar Görünümler Aktivite
3
Ara 22
3010
0
Kas 19
2950
1
Ara 23
9127
4
Ağu 24
77092
1
Eki 20
7745