问题描述
所以我刚刚部署了一个 django
网络应用,但令我惊讶的是,它记录了所有带有 UTC +0
的时间对象。他们都!不管用户的timezone
。
我在设置中有 USE_TZ = True
。这是我要插入时间的地方。
模型.py
class Timesheet(models.Model):
....
start_date = models.DateTimeField(default=timezone.Now)
....
def save(self,*args,**kwargs):
entry = Timesheet.objects.filter(id=self.request.user)
if entry.exists():
Timesheet.objects.filter(id=self.request.user).update(end_date=timezone.Now())
...
super().save(*args,**kwargs)
如何让它使用美国各地用户的时区?
解决方法
您需要使用 localtime(now()) 而不是 timezone.now()
from django.utils.timezone import localtime,now
localtime(now())