Django 1.7 中的自定义 CMSPlugin 迁移

Custom CMSPlugin migrations in Django 1.7

我正在使用 Django CMS 3.1 和 Django 1.7.8。我正在尝试将一个旧项目升级到这些各自的版本,但我用我的几个自定义编写的 CMSPlugin-inhereting 插件碰壁了。

Django 不会 migrate 任何模型。

django.db.migrations.state.InvalidBasesError: Cannot resolve bases for [..My Models..]

模型的定义与最新文档中的一样:

from cms.models.pluginmodel import CMSPlugin

class Layout(CMSPlugin):
    ...

我需要做什么才能让 Django 知道这些 CMSPlugin 后代应该如何迁移?请注意,这些模型没有 any 迁移。南边的我删了

Note these models don't have any migrations.

这就是你的问题所在。您使用 CMSPlugin 作为新模型基础的方式要求您的模型进行迁移,因为 CMSPlugin 也进行迁移。

documentation says:

Be aware, however, that unmigrated apps cannot depend on migrated apps, by the very nature of not having migrations.

文档说得更多,但它添加的详细信息对于确定您是否遇到麻烦并不是特别有用。但是,您可以查看 this ticket where the reporter was trying to create a custom user model by inheriting from django.contrib.auth.models.User and ran into the issue you ran into. See also this other ticket,其中 Django 开发人员决定编写错误消息,专门指出继承是您 运行 遇到的问题的可能原因。