2016-12-16 128 views
0

我在Django中創建了一個模型,我想在默認情況下在當地時間輸入創建時間。我已在settings.py如下:默認在Django模型中輸入當地時間的當前日期時間

TIME_ZONE = 'Asia/Kolkata' 
USE_TZ = True 

我曾嘗試以下:

import pytz 

status_timezone = pytz.timezone('Etc/UTC') 

class Status(models.Model): 
    status = models.IntegerField(default=0, blank=True) 
    active = models.IntegerField(default=1, blank=True) 
    creation_date = models.DateTimeField(default=status_timezone.localize(datetime.now())) 

這總是給所有條目的相同日期時間(模型初始化的時間

class Status(models.Model): 
    status = models.IntegerField(default=0, blank=True) 
    active = models.IntegerField(default=1, blank=True) 
    creation_date = models.DateTimeField(default=datetime.now) 

這給出了日期時間在UTC

有人請告訴如何輸入日期時間在IST默認?在此先感謝

回答

0

如在Django docs中所解釋的,auto_now_add被填入默認時區。如here所述,這是根據TIME_ZONE設置填充的。

所以 - 我想回答你的問題是:

TIME_ZONE=Asia/Kolkota

creation_date = models.DateTimeField(auto_add_now=True)

0

它一個常見的模式是:

created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True)

0

您需要改變。

USE_TZ = False 

通過這樣做,你會停止使用UTCTIME_ZONE = 'Asia/Kolkata'生效。

相關問題