#定義結束日期欄位。結束日期由開始日期加上持續時間決定。若要設定結束日期,您需要自行計算持續時間。
end_date = fields.Date(string="結束日期", store=True,
compute='_get_end_date', inverse='_set_end_date')
#「取得結束日期」事件的回應函式:計算結束日期
@api.depends('start_date', 'duration')
def _get_end_date(self):
for r in self:
if not (r.start_date and r.duration):
r.end_date = r.start_date
continue
start = fields.Datetime.from_string(r.start_date)
duration = timedelta(days=r.duration, seconds=-1)
r.end_date = start + duration
#「設定結束日期」事件的回應函式:計算並設定持續時間
def _set_end_date(self):
for r in self:
if not (r.start_date and r.end_date):
continue
start_date = fields.Datetime.from_string(r.start_date)
end_date = fields.Datetime.from_string(r.end_date)
r.duration = (end_date - start_date).days + 1Odoo14中的逆計算inverse方法屬性值用法——由compute字段的值逆向修改其依賴值
Odoo14inverse方法屬性值用法
網誌: 開發實施
登入 發表評論
