3
我有一个带窗体的小Django应用程序,它将一些数据保存到数据库。从窗体到UTC的Django DateTimeField
这里的形式:
class SomeForm(forms.Form):
time = forms.DateTimeField()
...
和视图,在这里我将它保存:
class AccountAddIncome(View):
def save(self, form):
model = Model(
time=form.cleaned_data['time']
)
model.save()
def post(self, request, *args, **kwargs):
form = SomeForm(request.POST)
if form.is_valid():
self.save(form)
return redirect(self.success_url)
else:
...
我的问题是,Django管理说:“注意:您是加1小时的服务器时间。“
我Ubuntu上的date
命令(服务器)表示与我的电脑完全相同的日期。
但是,当我保存在数据库中该对象,并进行以下查询:
Model.objects.filter(time__lt=timezone.now())
Django中没有列出一个小时以前保存的模型。如果我去管理员,并设置一个小时的时间,django会显示该对象。
所以,我的问题是,什么是最佳做法,管理django中的日期时间对象?
我想以UTC保存所有内容,但我无法将该日期时间从表单转换为UTC。
看看[这个](http://stackoverflow.com/questions/79797/how-do-i-convert-local-time-to-utc-in-python)。可以帮助你。 – 2014-11-03 20:46:56
在你的'settings.py'中,你有'USE_TZ = True'吗? – 2014-11-03 22:25:19
是的,'USE_TZ'为'True','TIME_ZONE'为'UTC''。 – 2014-11-03 22:27:31