我想以本地化格式输出 odoo 8 日期时间字段,但没有时间。
t-field
我用 option扩展了hide_time
。有没有更简单的内置解决方案?
您可以尝试在 中指定格式t-field-options
,如下所示:
<span t-field="object.datetimefield" t-field-options='{"format": "MMMM d y"}'/>
只需根据需要调整格式。
我刚刚遇到了这个问题,现在可以轻松地做到这一点。除了根据打印报告的用户保留日期的相应格式语言之外,这种方式仅显示没有时间的日期。
<p t-field="o.your_datetime_field" t-field-options='{"widget": "date"}'/>
警告:的引号t-field-options
必须与我写的完全一样,否则该行将不起作用。
希望它在未来对任何需要它的人有所帮助。
你可以使用formatLang
,<t-esc="formatLang(o.your_datatime_field,date=True)"/>
但您需要覆盖报告,如以下示例代码所示:
#################
import time
from openerp.report import report_sxw
from openerp.osv import osv
class QuotationPrint(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context=None):
super(QuotationPrint, self).__init__(cr, uid, name, context=context)
self.localcontext.update({
'time': time,
})
self.context = context
class quotation(osv.AbstractModel):
_name = 'report.sale.quotation_template'
_inherit = 'report.abstract_report'
_template = 'sale.quotation_template'
_wrapped_report_class = QuotationPrint
您可以使用 QWeb 选项(t-field-options)。例如:
<div class="col-xs-6 text-center report-field">
<span t-field="ph_id.image_date" t-field-options='{"format":"d MMMM y"}'/>
</div>
您可以使用以下内容:
<span t-esc="time.strftime('%m/%d/%Y',time.strptime(object.datetimefield,'%Y-%m-%d %H:%M:%S'))"/>
原始日期字段:
2017 年 1 月 15 日 10:41:01
输出日期字段:
2017 年 1 月 15 日
我不知道为什么t-field-options
不起作用,而是使用t-options
.
<span t-field="o.date_approve" t-options="{'widget': 'date'}" />
输出将是这样的:09-Jun-21