我有一个模型,其中有一个 DateTimeField。
class Event(models.Model):
.....
date = models.DateTimeField()
以及本次活动的范本
class EventForm(ModelForm):
class Meta:
model= Event
当我从管理员创建事件时,我将时间设置为我希望事件发生的时间,比如 19:30。但是,如果我调用 events.date 属性,我会得到
event.date
datetime.datetime(2013, 11, 20, 17, 30, tzinfo=<UTC>)
如果我在模板中使用它
{{event.date.hour}}:{{event.date.minute}}
它显示 17:30。
但是当我将它加载到模型表单中的模板上时
event_form = EventForm(instance=event)
并在模板中
{{event_form.as_p}}
然后日期呈现与我在管理页面中添加的相同,即 19:30
我怎样才能改变这种行为。django 是否总是以 UTC 格式保存日期?我在希腊,因此 datetime 对象的负 2 小时(我认为)。假设我的应用程序将在许多不同的国家/地区运行,我可以自动执行此操作吗,例如当我使用属性在模板上呈现日期时,它将显示实际保存的时间,而不是 UTC 时间。希望我是有道理的......
在我的设置文件中,我有
TIME_ZONE = 'Europe/Athens'
USE_TZ = True