2015-10-22 65 views
0

我試圖從植物日創建2個月的預期日期時間。而且,這是我的代碼:如何在odoo中創建預期的日期時間?

@api.one 
@api.depends('date_plant','nursery_plandate') 
def calculateplandate(self): 
    fmt = '%Y-%m-%d' 
    if self.date_plant: 
     d1 = self.date_plant 
     conv = datetime.date(d1) 
     d2 = datetime.strptimes(str(conv),fmt) 
     d3 = d2.month 
     hasil = d3+2 
     self.nursery_plandate = hasil 

和我的錯誤:

line 148, in calculateplandate 
d2 = datetime.date(d1) 
TypeError: descriptor 'date' requires a 'datetime.datetime' object but received a 'str' 
+0

如果你發現你的答案比請接受它。 –

+0

我找到了我的答案。 –

回答

1

這個錯誤的原因是,要傳遞代替datetime.date()。當我們收到日期數據時,它將是字符串類型,您必須將其轉換爲日期類型。

試試這個代碼: - 我包括一個示例代碼,用於將60天添加到您的工廠日期。請進行必要的更改以滿足您的需求。

def calculateplandate(self): 
    if self.date_plant: 
     start = datetime.strptime(self.date_plant, DEFAULT_SERVER_DATE_FORMAT) 
     conv = datetime.date(d1) 
     hasil = start + datetime.timedelta(days=60) # for adding 60 days 
     self.nursery_plandate = hasil 

希望這有助於。

0

感謝您的回答,我發現了另一個答案我的情況下,像這樣:

def calculateplandate(self): 
    fmt = '%Y-%m-%d' 
    if self.date_plant: 
     from_date = self.date_plant 
     d1=datetime.strptime(str(from_date),fmt) 
     date_after_month = datetime.date(d1)+ relativedelta(months=1) 
     cetak = date_after_month.strftime(fmt) 
     self.nursery_plandate = cetak 

,我發現我的情況另一個問題,我不能得到價值浮動了幾個月,例如我得到的值1,5個月的月份,我希望從種植的一天的預計日期是1,5個月。

0

python datetime - 日期/時間值操作。

目的:日期時間模塊包括用於做日期和時間解析,格式化功能和類,和算術。

可用在:2.3及更高版本

使用datetime類來保存包括日期和時間組件的值。與日期一樣,有幾種方便的類方法可以用來從其他常用值創建日期時間實例。

解決方案:

@api.one 
@api.depends('date_plant','nursery_plandate') 
def calculateplandate(self): 
    if self.date_plant: 
     d1 = datetime.strptimes(str(self.date_plant),DEFAULT_SERVER_DATE_FORMAT) 
     d2 = d1.month + 2 
     hasil = datetime.date(d1.year, d2, d1.day) 
     self.nursery_plandate = hasil 

參考爲Python日期時間:

datetime — Basic date and time types

datetime – Date/time value manipulation

datetime – Date/time value manipulation

1

在odoo 9.0中,fields.Date和fields.Datetime具有from_string()和to_string()方法。 您可以使用這些來創建日期/日期時間對象,然後根據需要進行操作。

date = fields.Date.from_string(self.date_plant) 
相關問題