2016-12-16 175 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'生效。

相关问题