如何在 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 天添加到提供的值?

如何让用户在 SwiftUI 文本字段中仅使用数字输入货币,同时保留 $ 和 .?

在 django 模型中加密 DateField?

如何在Java中仅删除字符串的尾随空格并保留前导空格?

如何在给定文件夹中仅保留十个最近的文件夹?

Django DateField TypeError 预期的字符串或类似字节的对象