gpt4 book ai didi

python - Django DateTimeField 从表单到 UTC

转载 作者:太空狗 更新时间:2023-10-30 01:39:14 26 4
gpt4 key购买 nike

我有一个带有表单的小型 Django 应用程序,它将一些数据保存到数据库中。

这是表格:

class SomeForm(forms.Form):
time = forms.DateTimeField()
...

还有我保存它的 View :

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。

最佳答案

转到 Django 项目的 settings.py

注释时区设置并使用 TIME_ZONE = timezone.now()

from django.utils import timezone


TIME_ZONE = timezone.now()

# TIME_ZONE = 'UTC'
# USE_I18N = True
# USE_L10N = True
# USE_TZ = True

你永远不会看到这个 - 注意:你比服务器时间提前 1 小时。

关于python - Django DateTimeField 从表单到 UTC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26722141/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com