我想时区管理是在 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.
我找到了解决该问题的两种方法。
在 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/