Odooに沿って使用されるデフォルトの日付形式はDEFAULT_SERVER_DATETIME_FORMAT
です。これは、次のコードのようにフィールドを宣言するのであれば、その定数が使用されようとしているmisc.py
DEFAULT_SERVER_DATE_FORMAT = "%Y-%m-%d"
DEFAULT_SERVER_TIME_FORMAT = "%H:%M:%S"
DEFAULT_SERVER_DATETIME_FORMAT = "%s %s" % (
DEFAULT_SERVER_DATE_FORMAT,
DEFAULT_SERVER_TIME_FORMAT)
ファイルに定義されています。
pickup_time = fields.Datetime(
string="Pickup time",
)
だから、あなたはあなたができる別の形式を使用したい場合そのカスタム形式の計算フィールドを作成します。いくつかの日付関数を使用する必要があります:strftime
(文字列へのオブジェクト)とstrptime
(文字列からオブジェクトへ)。フォーマットコードはthis python documentation page
from datetime import datetime
from odoo.tools import DEFAULT_SERVER_DATETIME_FORMAT
[...]
pickup_time_formated = fields.Char( # it is going to be a readonly field
string='Pickup time formated',
compute='_compute_pickup_time_formated'
)
@api.multi
@api.depends('pickup_time')
def _compute_pickup_time_formated(self):
for record in self:
date = record.pickup_time
date_obj = datetime.strptime(date, DEFAULT_SERVER_DATETIME_FORMAT) # to convert it in a date object
v = date_obj.day % 10 # to get the remainder of the operation
if v == 1:
ordinal_suffix = 'st'
elif v == 2:
ordinal_suffix = 'nd'
elif v == 3:
ordinal_suffix = 'rd'
else:
ordinal_suffix = 'th'
# format 'July 3rd 3:00PM'
record.pickup_time_formated = datetime.strftime(date_obj, '%B %d' + ordinal_suffix + ' %I:%M %p')
# format '3 Jul 3:00PM'
# record.pickup_time_formated = datetime.strftime(date_obj, '%d %b %I:%M %p'),
の下部にはほとんど説明されている。そして、あなたはXML形式で新しいフィールドを表示することができます
<field name="pickup_time_formated"/>
あなたは – ChesuCR
をする形式で、計算フィールドを作成することができます計算フィールド?コーディング経由で?ビアコーディングを使用している場合は、任意のサンプルですか? – Basit
はい、それをPythonで宣言する必要があります。 Odooの書類を確認してください – ChesuCR