我有三個字段start_date
,end_date
和total_days
。計算python openerp中兩個日期的總天數
如果我輸入start_date
和end_date
字段,它應該自動顯示total_days
。
這是我的功能不工作。
<field name="start_date" on_change="get_number_of_days(start_date,end_date)"/>
<field name="end_date" on_change="get_number_of_days(end_date,start_date)"/>
<field name="total_days" />
def get_number_of_days(self, cr, uid, ids, start_date, end_date):
"""Returns a float equals to the timedelta between two dates given as string."""
result = self.browse(cr, uid, ids)
if (end_date and start_date) and (start_date <= end_date):
DATETIME_FORMAT = "%d/%m/%Y %H:%M:%S"
from_dt = datetime.datetime.strptime(start_date, DATETIME_FORMAT)
to_dt = datetime.datetime.strptime(end_date, DATETIME_FORMAT)
timedelta = to_dt - from_dt
diff_day = timedelta.days + float(timedelta.seconds)/86400
result['value']['total_days'] = round(math.floor(diff_day))+1
return result
有沒有其他方法?或可能是什麼問題
請提供一個什麼樣的錯誤的信息,這將簡化錯誤查找 –
它沒有給予任何錯誤。只是它沒有計算就節省了。我無法追蹤它出錯的地方 –
聽起來好像你的條件從不計算爲「真」,結果總是與「self.browse(...)」提供的相同。 – jbndlr