Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
1 Trả lời
9947 Lượt xem

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.



Ảnh đại diện
Huỷ bỏ

Hi,

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

Câu trả lời hay nhất

Hi Benjamin,

try this

${object.date_invoice.strftime('%d/%m/%Y')}
Ảnh đại diện
Huỷ bỏ
Tác giả

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?

Bài viết liên quan Trả lời Lượt xem Hoạt động
3
thg 12 22
3003
0
thg 11 19
2928
1
thg 12 23
9117
4
thg 8 24
77044
1
thg 10 20
7736