Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django manage.py迁移验证错误_Python_Django_Python 3.x_Django Models_Django Migrations - Fatal编程技术网

Python Django manage.py迁移验证错误

Python Django manage.py迁移验证错误,python,django,python-3.x,django-models,django-migrations,Python,Django,Python 3.x,Django Models,Django Migrations,在使用python manage.py migrate运行django时,在运行python manage.py makemigrations File "manage.py", line 22, in <module> execute_from_command_line(sys.argv) File "/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/core/management/__

在使用
python manage.py migrate
运行django时,在运行
python manage.py makemigrations

File "manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
    utility.execute()
  File "/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/core/management/__init__.py", line 375, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/core/management/base.py", line 323, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/core/management/base.py", line 364, in execute
    output = self.handle(*args, **options)
  File "/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/core/management/base.py", line 83, in wrapped
    res = handle_func(*args, **kwargs)
  File "/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/core/management/commands/migrate.py", line 234, in handle
    fake_initial=fake_initial,
  File "/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/db/migrations/executor.py", line 117, in migrate
    state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial)
  File "/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/db/migrations/executor.py", line 147, in _migrate_all_forwards
    state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
  File "/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/db/migrations/executor.py", line 245, in apply_migration
    state = migration.apply(state, schema_editor)
  File "/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/db/migrations/migration.py", line 124, in apply
    operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
  File "/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/db/migrations/operations/fields.py", line 112, in database_forwards
    field,
  File "/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/db/backends/base/schema.py", line 433, in add_field
    definition, params = self.column_sql(model, field, include_default=True)
  File "/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/db/backends/base/schema.py", line 161, in column_sql
    default_value = self.effective_default(field)
  File "/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/db/backends/base/schema.py", line 233, in effective_default
    return field.get_db_prep_save(self._effective_default(field), self.connection)
  File "/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/db/models/fields/__init__.py", line 789, in get_db_prep_save
    return self.get_db_prep_value(value, connection=connection, prepared=False)
  File "/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/db/models/fields/__init__.py", line 1429, in get_db_prep_value
    value = self.get_prep_value(value)
  File "/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/db/models/fields/__init__.py", line 1408, in get_prep_value
    value = super().get_prep_value(value)
  File "/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/db/models/fields/__init__.py", line 1268, in get_prep_value
    return self.to_python(value)
  File "/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/db/models/fields/__init__.py", line 1393, in to_python
    params={'value': value},
django.core.exceptions.ValidationError: ["'' value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] format."]
文件“manage.py”,第22行,在
从命令行(sys.argv)执行命令
文件“/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/core/management/_-init___u;.py”,第381行,从命令行执行
utility.execute()
文件“/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/core/management/_-init__.py”,执行中第375行
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/core/management/base.py”,第323行,运行于
self.execute(*args,**cmd_选项)
文件“/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/core/management/base.py”,第364行,在execute中
输出=self.handle(*args,**选项)
文件“/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/core/management/base.py”,第83行,包装
res=句柄函数(*args,**kwargs)
handle中的文件“/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/core/management/commands/migrate.py”,第234行
假首字母=假首字母,
文件“/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/db/migrations/executor.py”,第117行,在migrate中
状态=self.\u迁移\u所有\u转发(状态,计划,完整计划,假=假,假首字母=假首字母)
文件“/Users/rasikraj/Desktop/eb virt/lib/python3.7/site packages/django/db/migrations/executor.py”,第147行,全部向前迁移
state=self.apply\u迁移(state,migration,false=false,false\u initial=false\u initial)
文件“/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/db/migrations/executor.py”,第245行,应用程序迁移
state=migration.apply(状态,模式编辑器)
文件“/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/db/migrations/migration.py”,第124行,在apply中
操作。数据库转发(self.app\u标签、模式编辑器、旧状态、项目状态)
文件“/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/db/migrations/operations/fields.py”,第112行,在数据库中
领域
文件“/Users/rasikraj/Desktop/eb virt/lib/python3.7/site packages/django/db/backends/base/schema.py”,第433行,在add_字段中
定义,params=self.column\u sql(模型,字段,include\u默认值=True)
文件“/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/db/backends/base/schema.py”,第161行,在sql列中
默认值=自生效默认值(字段)
文件“/Users/rasikraj/Desktop/eb virt/lib/python3.7/site packages/django/db/backends/base/schema.py”,第233行,默认有效
返回字段.get\u db\u prep\u save(self.\u effective\u default(字段),self.connection)
文件“/Users/rasikraj/Desktop/eb virt/lib/python3.7/site packages/django/db/models/fields/_________.py”,第789行,在get_db_prep_save中
返回self.get_db_prep_值(值,connection=connection,prepared=False)
文件“/Users/rasikraj/Desktop/eb virt/lib/python3.7/site packages/django/db/models/fields/_________.py”,第1429行,在get_db_prep_值中
value=self.get\u prep\u值(value)
文件“/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/db/models/fields/_-init__.py”,第1408行,在get_-prep_值中
value=super()。获取值(value)
文件“/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/db/models/fields/_-init__.py”,第1268行,在get_-prep_值中
返回self.to_python(值)
文件“/Users/rasikraj/Desktop/eb-virt/lib/python3.7/site-packages/django/db/models/fields/_-init__.py”,第1393行,在python中
params={'value':value},
django.core.exceptions.ValidationError:[““”值的格式无效。它必须是YYYY-MM-DD HH:MM[:ss[.UUUUU]][TZ]格式。“]
此错误的原因可能是什么?我如何解决此问题。
我使用的是Python3.7和Django 2.2,基于这个错误,有一个带有as的错误。但这不是一个有效的默认值:
datetime字段
应该在数据库中存储一个datetime(如果该字段为
NULL
-able,则为
None

因此,您应该为该
DateTimeField
提供一个有效的默认值,例如:

from django.utils import timezone

class SomeModel(models.Model):
    my_field = DateTimeField(default=timezone.now)
从django.utils导入时区
类模型(models.Model):
my_field=DateTimeField(默认值为timezone.now)
或者您可以忽略默认值,然后运行
makemigrations
。在这种情况下,Django将询问您是否希望提供一个一次性默认值,该默认值将应用于数据库中已有的记录


更改字段后,您需要删除在添加(或更改)该字段的位置构建的(无效)迁移文件,并使用
manage.py makemigrations
进行新迁移。毕竟,在构建迁移文件时不会发生这种验证,现在迁移它确实会出错。如果以后更改模型,仍然不会执行无效的迁移填充,因此,它将再次引发相同的错误。

您是否使用默认的空字符串创建了
DateTimeField
?@WillemVanOnsem我创建了并运行了
makemigrations
,然后运行了
migrate
,但随后我意识到了我的错误,并删除了该字段,再次运行了
makemigrations
,我仍然得到了这个错误,您仍然需要删除原始迁移文件(以及新的迁移文件,因为该文件也是错误的)。