我已经在Django 1.8.3中为我的模型添加了datetimefield,现在我需要迁移。我试图弄清楚如何添加默认日期,但无法在文档中找到任何有用的信息。
我跑:
python manage.py makemigrations demo-model
python manage.py migrate demo-model
提示响应:
You are trying to add a non-nullable field 'date_uploaded' to demo-model without a default; we can't do that (the database needs something to populate existing rows).
1) Provide a one-off default now (will be set on all existing rows)
2) Quit, and let me add a default in models.py
Select an option: 1
Please enter the default value now, as valid Python
The datetime and django.utils.timezone modules are available, so you can do e.g. timezone.now()
我试过了:
>>> 2014-08-01
Django说:
Invalid input: invalid token (<string>, line 1)
所以我试试:
>>> datetime(2014, 08, 01).isoformat(' ')
我得到同样的错误。
我不知道Django想要什么......这无疑非常简单,但我无法在任何地方找到示例或适当的文档。
解决 问题在于我如何使用datetime。因为零&#39; 08&#39;被解释为八进制文字,它抛出的错误并没有被显示出来。
解决方案是:
datetime.date(2014, 8, 1)
答案 0 :(得分:1)
尝试:
datetime(2014, 8, 1)
答案 1 :(得分:0)
为什么你在日期时间叫isoformat?你需要一个日期时间,而不是一个字符串。只需datetime(2014, 08, 01)
。