如何在 Django DateField 中仅保留日期部分
Posted
技术标签:
【中文标题】如何在 Django DateField 中仅保留日期部分【英文标题】:How to keep only date part in Django DateField 【发布时间】:2013-02-27 11:44:02 【问题描述】:我在下面的模型类中定义了一个 DateField,我只想将它用作 Date 类型,根本没有时间部分。但是,一旦我以 YYYY-MM-DD 格式加载数据,它就会自动添加 12:00:00 AM。
FromDate = models.DateField(blank=True, null=True)
我尝试了 Django DateField default options 的解决方案,例如 date = models.DateField(_("Date"), default=date.today) 但 syncdb 让我知道了
NameError:名称“_”未定义
Django 版本 1.2.1 和 1.4.2 都有相同的错误。
我错过了什么吗?
非常感谢。
【问题讨论】:
您在哪里注意到它是在 12:00:00 自动添加的?DateField
应该只返回一个 Python datetime.date
实例。
@AustinPhillips 是正确的。如果您的字段是 DateTimeField,它将自动添加 12:00:00
你用的是什么数据库?
mysql 5.1.41-3ubuntu12
请添加您的代码,以便我们查看您是否做错了什么
【参考方案1】:
也许您的数据库已经将该列创建为日期时间?例如,如果您首先在模型中有 DateTime
字段,然后运行 syncdb
,然后将模型更改为使用 Date
,则可能会发生这种情况。
如果是这种情况,请尝试修改您的数据库表,或删除它并重新运行syncdb
。
【讨论】:
是的,我总是删除表并重新运行 syncdb 以重新创建它,但它没有帮助。以上是关于如何在 Django DateField 中仅保留日期部分的主要内容,如果未能解决你的问题,请参考以下文章
我的 django 模型 DateField 如何将 30 天添加到提供的值?