django - Django 时区如何与 model.field 的 auto_now_add 一起工作

标签 django timezone

我想时区管理是在 Django 1.4 中添加的,所以这个问题很新。

我用了一个简单的模型

class Sample(models.Model):
    ...
    date_generated = models.DateTimeField(auto_now_add = True)

当我尝试检索新创建的记录时失败。

min_datetime = datetime.now() - timedelta(seconds = 300)
sample = Sample.objects.get(date_generated__gte = min_datetime)

然后服务器发出警告。

DateTimeField received a naive DateTime (2012-06-29 15:02:15.074000) while time zone support is active.

我找到了解决该问题的两种方法。

  1. 在 settings.py 中禁用时区管理

     USE_TZ = False 
    

但这并不总是可取的。 2.改变

    date_generated = models.DateTimeField(auto_now_add = True) 

    date_generated = models.DateTimeField(default=datetime.now()) 

是保持时区管理正常工作的解决方案

最佳答案

使用django的时区工具

from django.utils import timezone
date_generated = models.DateTimeField(default=timezone.now)

关于django - Django 时区如何与 model.field 的 auto_now_add 一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11262828/

相关文章:

python - 如何获取系统时区设置并将其传递给 pytz.timezone?

python - Django 自定义登录页面

python - 在 For 循环中格式化 Django ValidationError

python - 如何在用户输入错误时重新加载具有无效表单的页面

php - 关于在 mysql 数据库中存储 PHP 支持的时区的最佳实践

perl - 在不同时区安排脚本

apache - SetEnv TZ 与 date.timezone

python - 如何为两个相关模型组织迁移并自动为新建对象的 id 设置默认字段值?

django - Django模板中的分组CheckboxSelectMultiple

heroku - Heroku 服务器使用哪个时区?