wagtail 2.0的迁移错误

Posted

技术标签:

【中文标题】wagtail 2.0的迁移错误【英文标题】:Migration error with wagtail 2.0 【发布时间】:2018-10-28 23:44:55 【问题描述】:

您好,我正在尝试升级到 wagtail 2.0。我已经处理了一系列错误,但我无法克服迁移时发生的错误:

  File "/Users/tim/wagtailcmsdemo/home/migrations/0001_initial.py", line 17, in Migration
    ('page_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='wagtailcore.Page')),
TypeError: __init__() missing 1 required positional argument: 'on_delete'

非常感谢任何帮助

谢谢

提姆

完整的控制台错误:

(wagtail-isa) MacBook-Air:wagtailcmsdemo tim$ ./manage.py makemigrations Traceback(最近一次调用最后一次):文件 “./manage.py”,第 10 行,在 execute_from_command_line(sys.argv) 文件“/Users/tim/Virtualenvs/wagtail-isa/lib/python3.6/site-packages/django/core/management/init.py”, 第 371 行,在 execute_from_command_line utility.execute() 文件“/Users/tim/Virtualenvs/wagtail-isa/lib/python3.6/site-packages/django/core/management/init.py”, 第 365 行,执行中 self.fetch_command(subcommand).run_from_argv(self.argv) 文件“/Users/tim/Virtualenvs/wagtail-isa/lib/python3.6/site-packages/django/core/management/base.py”, 第 288 行,在 run_from_argv self.execute(*args, **cmd_options) 文件“/Users/tim/Virtualenvs/wagtail-isa/lib/python3.6/site-packages/django/core/management/base.py”, 第 335 行,执行中 输出 = self.handle(*args, **options) 文件“/Users/tim/Virtualenvs/wagtail-isa/lib/python3.6/site-packages/django/core/management/commands/makemigrations.py”, 第 78 行,在句柄中 loader = MigrationLoader(无,ignore_no_migrations=True)文件“/Users/tim/Virtualenvs/wagtail-isa/lib/python3.6/site-packages/django/db/migrations/loader.py”, 第 49 行,在 init 中 self.build_graph() 文件“/Users/tim/Virtualenvs/wagtail-isa/lib/python3.6/site-packages/django/db/migrations/loader.py”, 第 200 行,在 build_graph self.load_disk() 文件“/Users/tim/Virtualenvs/wagtail-isa/lib/python3.6/site-packages/django/db/migrations/loader.py”, 第 109 行,在 load_disk 中 migration_module = import_module("%s.%s" % (module_name, migration_name)) 文件 "/Users/tim/Virtualenvs/wagtail-isa/lib/python3.6/importlib/init.py", 第 126 行,在 import_module 中 return _bootstrap._gcd_import(name[level:], package, level) File "", line 978, in _gcd_import File "",第 961 行,在 _find_and_load 文件中 "",第 950 行,在 _find_and_load_unlocked 文件“”,第 655 行,在 _load_unlocked 文件“”,第 678 行,在 exec_module 文件“”,第 205 行,在 _call_with_frames_removed 文件“/Users/tim/wagtailcmsdemo/home/migrations/0001_initial.py”,第 7 行, 在 类迁移(migrations.Migration):文件“/Users/tim/wagtailcmsdemo/home/migrations/0001_initial.py”,第 17 行, 在迁移 ('page_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='wagtailcore.Page')), TypeError: init() 缺少 1 个必需项 位置参数:'on_delete'

【问题讨论】:

【参考方案1】:

docs of wagtail v2.0.1 compatibility

Wagtail 在 Python 3.4、3.5 和 3.6 上支持 Django 1.11.x 和 2.0。支持的数据库后端是 PostgreSQL、mysql 和 SQLite。

但你尝试使用 Django >= 1.11 doc django ForeignKey 1.11 版

(on_delete 实际上不是必需的,但不提供它会给出弃用警告。在 Django 2.0 中将是必需的。)

【讨论】:

@TimK 对你有帮助吗? 是的,谢谢你这是一个新手错误。我将 Django 版本更改为 1.11,一切顺利。 很高兴为您提供帮助

以上是关于wagtail 2.0的迁移错误的主要内容,如果未能解决你的问题,请参考以下文章

如何正确重命名 wagtail 页面模型

Django 从 2.0 迁移到 2.2(查看权限问题)

迁移到 Asp.Net Identity 2.0:未在 AspNetUsers 表中创建新列

从 Cake 1.3 迁移到 2.0 及更高版本 - 迁移现有的,还是仅用于新的?

如何迁移 .NET Framework 应用程序? [3.5 到 2.0]

从facelets 1.1迁移到faclets 2.0 - FaceletViewHandler