Django DateTimeField从表单到UTC

时间:2014-11-03 20:00:43

标签: python django datetime utc

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

以下表格:

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命令(服务器)与我的计算机完全相同。

但是,当我在DB中保存此对象时,请进行以下查询:

Model.objects.filter(time__lt=timezone.now())

django不会列出以前保存的模型一小时。如果我去管理员,并将时间设置回一小时,django将会显示该对象。

所以,我的问题是,在django中管理日期时间对象的最佳做法是什么?

我想以UTC格式保存所有内容,但我无法将该日期时间从表单转换为UTC。

1 个答案:

答案 0 :(得分:-4)

转到Django项目的settings.py

评论时区设置并使用TIME_ZONE = timezone.now()

private void OnMouseDown()
  {
      Destroy(gameObject);
      ui.AddScore(scoreValue);
  }

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