我的models.DateTimeField存在问题,因为我来自México,在settings.py中我使用了这个:
TIME_ZONE = 'America/Mexico_City'
但是当我在我的mysql数据库中添加一个寄存器时,它说该寄存器在18:00添加(4小时后,因为这里,在墨西哥城是14:00)
titulo = models.CharField(max_length = 60)
contenido = models.CharField(max_length = 140)
fecha = models.DateTimeField(auto_now_add = True)
答案 0 :(得分:4)
如果启用USE_TZ = True,则Django会在数据库中始终使用UTC。这就是为什么你要提前4小时看到的时间 - 即UTC时间。
https://docs.djangoproject.com/en/dev/topics/i18n/timezones/
Django有助手接受UTC,然后在视图中显示时将其转换回来。尝试从使用DateTimeField的数据库中获取一个对象,并在{{ value }}
为日期时间的视图中尝试此操作:
{% load tz %}
{% localtime on %}
{{ value }}
{% endlocaltime %}
{% localtime off %}
{{ value }}
{% endlocaltime %}
如果你还没有安装pytz作为要求,你可能已经这样做了:
pip install pytz