关于python:Django模型,添加新值,迁移

Django models, adding new value, migrations

我与Django 1.9合作,并在myapp/models.py中添加了一个新字段(creation_date)。之后我运行"python manage.py makemigrations"。我得到:

Please select a fix:

  • Provide a one-off default now (will be set on all existing rows)
  • Quit, and let me add a default in models.py."
  • 我选择了1-st选项,并以错误格式"10.07.2016"添加了值。在这个错误之后,我无法运行"python manage.py migrate"。

    所以我决定更改models.py并添加一个默认值"datetime.now"。但在那之后,我仍然有关于"python manage.py makemigrations"的问题。我看到这样的事情:

    django.core.exceptions.ValidationError: [u"'10.07.2016' value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] format."]

    如何解决这个问题?


    只要迁移没有应用到数据库,就可以手动更新位于myapp/migrations/*.py中的迁移文件。找到字符串"10.07.2016",并将其更新为支持的格式。

    一个不太有吸引力的解决方案是删除旧的迁移文件(只要它不适用于数据库),然后用python manage.py makemigrations创建一个新的迁移文件。因为您已经将模型更新为使用默认值,所以这次不会要求一次性默认值。

    检查迁移是否应用于数据库运行:python manage.py showmigrations