1

我无法弄清楚如何做我想做的事(不必在创建对象时设置日期时间)并解决这个错误。

Django 1.11,Python 3.6。我目前正在从 Django 1.8 升级。

当我运行 python manage.py migrate 时出现问题

  File "C:\Dev\Python36\lib\site-packages\django\db\models\fields
  \__init__.py", line 1423, in to_python
  params={'value': value},
  django.core.exceptions.ValidationError: ["Value '' has an invalid date 
  format. Must be in the format YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]."]

我以前的 models.py(在 Django 1.8 中)

    timeToServe = models.DateTimeField(default='', null=True, blank=True,
                                   verbose_name=get_lang(None, 'time_to_serve'))

我当前的 models.py(在 Django 1.11 中)

timeToServe = models.DateTimeField(default=None,
    null=True, blank=True,
    auto_now=False, auto_now_add=False,
    verbose_name=get_lang(None, 'time_to_serve'))

我以前的迁移文件(在 Django 1.8 中)

('timeToServe', models.DateTimeField(default='', blank=True, verbose_name='Serveringstid', null=True)),

我当前的迁移(0021_auto_xxxx.py)(在 Django 1.11 中)

    operations = [
    migrations.AlterField(
        model_name='booking',
        name='timeToServe',
        field=models.DateTimeField(
            default=None, blank=True, null=True, verbose_name='time'),
    ),
4

1 回答 1

0

似乎没有自动解决方案。我为解决这个问题所做的是:

  1. 检查创建的迁移文件中的哪些更改实际上会导致数据库更改。就我而言,有一些,我设法编辑迁移文件以反映这些更改并删除迁移文件中的所有其他更改。然后,我得到了 Django 想做但不会更改数据库的更改。
  2. 在我的下一步中,我卸载了迁移。注意假标志。

    python manage.py migrate --fake myAppName 为零

  3. 我删除了所有当前的迁移文件和相应的 .pyc 文件

  4. 创建了新的迁移文件

    Python manage.py makemigrations

  5. 我安装了新的迁移文件。注意假标志。

    python manage.py migrate --fake-initial

要检查迁移的状态,您可以运行

  • python manage.py showmigrations
于 2018-05-30T11:28:49.857 回答