Как отформатировать дату в отчете Odoo 10 QWeb?

t-field-option не работает.

я пытался

<span t-field="o.date_invoice" t-field-options='{"format": "MM/dd/yyyy"}'/>

person Community    schedule 15.12.2016    source источник


Ответы (6)


Вместо использования

<span t-field="o.date_invoice" t-field-options='{"format": "MM/dd/yyyy"}'/>

использовать

<span t-field="o.date_invoice" t-options='{"format": "MM/dd/yyyy"}'/>

Надеюсь, это поможет!

person Perino    schedule 20.11.2018
comment
В v12 поля даты/даты/времени являются объектами даты/даты/времени Python, а не строковыми представлениями. В v12 будет работать следующее форматирование Python: ‹span t-esc=o.date_invoice.strftime('%m/%d/%Y')/› . odoo.com/groups/technical-62/technical-56392463 - person Tirtha R; 09.08.2019
comment
@TirthaR нет, это не будет работать должным образом, если вы запустите odoo на разных языках, формат strftime основан на локали, а не на произвольном языке. - person Loïc Faure-Lacroix; 15.01.2020

Для отображения локализованных строк даты. Попробуйте следующее:

<span t-field="o.date_invoice" t-options="{&quot;widget&quot;: &quot;date&quot;}" />
person spacebiker    schedule 21.06.2018
comment
Примечание для редакторов: пожалуйста, НЕ РЕДАКТИРУЙТЕ, так как это должно быть добавлено в редактор qweb, спасибо - person spacebiker; 21.10.2019

Для тех, кто приходит сюда из поисковых систем, можно управлять отображением даты в полях формы с помощью виджетов.

<field name="date_planned" widget="date"/>

or,

<field name="date_planned" widget="datetime"/>

В v12 поля даты/даты/времени являются объектами даты/даты/времени Python, а не строковыми представлениями. В отчетах v12 будет работать следующее форматирование Python:

<span t-esc="o.date_invoice.strftime('%m/%d/%Y')"/>

https://www.odoo.com/groups/technical-62/technical-56392463

person Tirtha R    schedule 13.11.2018
comment
Это именно то, что я искал! Odoo 12, при создании заказа на покупку в приложении «Покупки» виджет даты и времени добавлял слишком много информации! Я пробовал t-options='{"format": "yyyy/MM/dd"}', но это не сработало. Использование widget="date" решило проблему. Спасибо! - person Patrick; 21.08.2019

Чтобы удалить раздел времени:

<span t-field="o.date_invoice" t-field-options='{"widget": "date"}'/>

Используйте t-field-options вместо t-options

Не меняйте положение кавычек в t-field-options

Этот код учитывает дату формата в соответствии с языком/страной.

person Daniel Lago Suárez    schedule 23.10.2019

Попробуй это.

<span t-esc="datetime.datetime.strptime(o.sale_id.confirmation_date, '%Y-%m-%d %H:%M:%S').strftime('%B %d,%Y')"/>

Мой вывод: 28 мая 2018 г.

person Er.Ankit H Gandhi    schedule 28.05.2018
comment
Ошибка при компиляции AST TypeError: аргумент strptime() 1 должен быть str, а не datetime.date. Я получаю эту ошибку. Не могли бы вы помочь - person BomberMan; 20.08.2020

Согласно моему опыту, вы использовали правильный способ форматирования даты Qweb, но иногда проблема возникает в другом, и odoo выдает ошибку где-то еще. Надеюсь, что попытка этого кода может быть полезной.

<span t-field="o.date_order" t-field-options='{"format": "d MMMM y"}'/>

также используйте этот код

<span t-field="o.date_order" t-field-options="{'format': 'yyyy-MM-dd'}" />

Вы также можете сделать одну вещь, отформатировав переменную даты в самой модели, а затем отобразить ее в своем отчете QWeb.

person Abhay Singh Rathore    schedule 15.07.2018