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