我尝试使用以下代码在 django_admin 中预填充 TimeField :
from django.utils import timezone
time_start = models.TimeField('Heure de debut',max_length=20, default=timezone.now)
我已经安装了pytz并且设置正确
TIME_ZONE = 'Europe/Brussels'
USE_TZ = True
如果我点击管理中的“现在”按钮,它会正确设置时间。但是,它最初显示 UTC 时间(在我的例子中比实际时间早两个小时)
我错过了什么吗?有办法解决这个问题吗?我不想使用 auto_now_add=False 因为我希望稍后能够更改这个时间...
最佳答案
要获取 settings.py 中设置的本地时区时间,请使用:
from django.utils import timezone
timezone.localtime(timezone.now())
至于在 django 模型中的使用,请参阅此处的答案 https://stackoverflow.com/a/12654998/1340421
关于django.utils.timezone.now 在默认 TimeField 中返回 UTC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39953166/