django - Django auto_now_add=True 但“收到一个天真的日期时间”
问题描述
我有一个带有时区感知自动添加的模型字段,如下所示:
start_date = models.DateTimeField(auto_now_add=True, blank=True)
但是,在运行测试时我仍然会收到 RuntimeWarning:
RuntimeWarning: DateTimeField Survey.start_date received a naive datetime (2020-07-16 03:15:14.463640) while time zone support is active.
当我有以下情况时,我会得到同样的结果:
start_date = models.DateTimeField(default=timezone.now, blank=True)
有什么想法吗?
解决方案
你的第二个选项应该没问题。但是您应该删除blank=True
,因为通过提供默认值意味着您可以在没有此字段的情况下发送请求。
start_date = models.DateTimeField(default=timezone.now)
确保你已经运行python manage.py makemigrations
并且python manage.py migrate
在你做出改变之后。
推荐阅读
- ios - 从函数返回 Alamofire 响应
- mongodb - 如何过滤与 MongoDB 中的任何内容都不匹配的 ObjectId?
- r - R按名称组合列表分配和填充列表
- java - 循环遍历Java中的多个变量
- mod-security - ModSecurity - 有没有办法根据规则配置 DetectionOnly
- php - 在单行中获取数据(键 - 值)
- qt - 如何通过索引 QML 为网格布局上的 1 项设置颜色?
- javascript - 计算多个异步回调的总和
- java - 在 JSP 中根据从数据库中选择的值更改表
- google-apps-script - 类 ColumnChartBuilder 示例不起作用