【发布时间】:2015-03-25 07:11:26
【问题描述】:
我的模型数据库中有这个值1/19/2014 4:40,DateTimeField 在 Django 中是否接受该值?因为我试图根据范围过滤我的模型。目前是CharField,我将其更改为DateTimeField,因为我猜不可能通过CharField 过滤范围。我说的对吗?
【问题讨论】:
我的模型数据库中有这个值1/19/2014 4:40,DateTimeField 在 Django 中是否接受该值?因为我试图根据范围过滤我的模型。目前是CharField,我将其更改为DateTimeField,因为我猜不可能通过CharField 过滤范围。我说的对吗?
【问题讨论】:
对于范围过滤,字段必须以可以执行SQL范围查询的格式存储在SQL数据库中。
Char 字段只是文本,因此 SQL 无法知道您查询的范围类型,因为它不理解文本。
因此,您需要将字段转换为 DateTimeField。这种迁移很可能无法使用默认设置执行,您需要编写一些自己的迁移逻辑。你可以使用像dateutil这样的辅助包。
在模型中创建一个新字段
迁移数据库
解析所有旧值并存储在新字段中
删除旧字段
将新字段重命名为旧字段
【讨论】:
DateTimeField 中被接受?因为我的数据是从正在运行的程序自动生成的。
DateTimeField 值或所述字段的正确格式。