【问题标题】:Django's loaddata giving ValidationError on valid dateDjango loaddata 在有效日期给出验证错误
【发布时间】:2012-03-10 04:15:17
【问题描述】:

我正在尝试使用 Django 中的固定装置为我的一个项目提供一些初始数据。我要向其提供此数据的模型有一个名为“已添加”的 DateField。因此,在包含我的夹具的 JSON 文件中,我包含了以下行:

"added": "2011-11-11",

当我使用

加载此文件时
python manage.py loaddata test.json

我收到此错误

ValidationError: [u'Enter a valid date in YYYY-MM-DD format.']

所以我尝试使用转储数据来找出内部格式与我所做的不同

python manage.py dumpdata modelname > bla.json

但它包含我使用的同一行:

"added": "2011-11-11",

如何在 JSON 文件中使用日期?我真的看不出哪里出错了,因为我的格式与 dumpdate 给我的格式相同。

我几乎所有的模型都包含 DateFields,我需要来自固定装置的数据来测试我的应用程序。

【问题讨论】:

  • 您是否通过 lint 运行 json 以确保其有效?
  • 需要更多信息,这应该可以正常工作。
  • 项目使用 Python 2.7.2 和 Django 1.3.1。我使用 SQLite 作为我的数据库,并在我的应用程序(即网站上的表单)中存储日期工作正常。

标签: python django datefield validationerror


【解决方案1】:

实际上,Django 灯具中的日期格式必须是 yyyy-mm-dd hh:mm:ss

【讨论】:

    【解决方案2】:

    我有同样的问题尝试使用 2011-11-11T16:52:11

    【讨论】:

    • 注意:这对 MySQL 有效,但对 PostgreSQL 无效。后者需要2011-11-11 16:52:11 格式。
    • 真的吗?我遇到了从固定装置加载到 MySQL 的 OP 问题。我将转储 JSON 中的所有“T”更改为空格,从而解决了问题。无论如何,在创建灯具时如何更改日期格式(以便它使用''而不是'T')?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    • 1970-01-01
    • 2018-08-29
    • 1970-01-01
    • 2012-05-06
    • 2010-12-10
    • 2011-01-21
    相关资源
    最近更新 更多