Python 默认情况下,在django模型中以本地时间输入当前日期时间
我在Django中创建了一个模型,我希望在本地时间中默认输入创建时间。我已在settings.py中设置了以下内容:Python 默认情况下,在django模型中以本地时间输入当前日期时间,python,django,datetime,django-models,pytz,Python,Django,Datetime,Django Models,Pytz,我在Django中创建了一个模型,我希望在本地时间中默认输入创建时间。我已在settings.py中设置了以下内容: 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
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中输入日期时间吗?请提前感谢,如中所述,auto\u now\u add使用默认时区填充。如前所述,这是根据时区设置填充的
因此,我认为你的问题的答案是:
时区=亚洲/Kolkota
creation\u date=models.datetime字段(auto\u add\u now=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()))
created\u at=models.datetime字段(auto\u now\u add=True)
更新的\u at=models.DateTimeField(自动\u now=True)
您需要更改
USE_TZ = False
这样,您将停止使用UTC
“时区=”亚洲/加尔各答“
将生效。最简单的方法是
在“设置/py”中:
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'Asia/Kolkata' #'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
在“models.py”中:
from django.utils import timezone
creation_date = models.DateTimeField(default = timezone.now, blank=False)