为Django-CMS创建插件

时间:2013-09-05 23:29:56

标签: database django plugins django-models django-cms

我想我在尝试创建django-cms插件的时候搞砸了,现在我无法回头了。插件(称为sbbplugin)似乎“正在工作”(它会显示),但每当我尝试发布网站时,我都会收到以下错误:

DatabaseError at /admin/cms/page/18/publish/

relation "cmsplugin_sbbmodel" does not exist
LINE 1: ...id", "cmsplugin_sbbmodel"."cmsplugin_ptr_id" FROM "cmsplugin...
                                                             ^

我尝试删除插件,但由于页面未发布,我无法执行此操作。我的插件没有模型或任何东西。此外,我无法通过单击删除从页面中删除插件。好像数据库坏了。由于我没有足够的经验知道你需要什么信息我会很感激,如果你能给我进一步说明我应该做什么。

更新:我认为问题是我尝试使用我删除的模型(sbbmodel)。我应该再尝试添加模型吗?如果是这样,我该怎么做才能修复数据库?我是否必须为我的应用程序运行迁移?我是否必须将该插件注册为应用程序?

Update2:所以我尝试再次添加模型并迁移应用程序,但是我收到以下错误:

CommandError: One or more models did not validate:
sbbplugin.sbbmodel: Accessor for field 'cmsplugin_ptr' clashes with related field 'CMSPlugin.sbbmodel'. Add a related_name argument to the definition for 'cmsplugin_ptr'.
sbbplugin.sbbmodel: Reverse query name for field 'cmsplugin_ptr' clashes with related field 'CMSPlugin.sbbmodel'. Add a related_name argument to the definition for 'cmsplugin_ptr'.
S.sbbmodel: Accessor for field 'cmsplugin_ptr' clashes with related field 'CMSPlugin.sbbmodel'. Add a related_name argument to the definition for 'cmsplugin_ptr'.
S.sbbmodel: Reverse query name for field 'cmsplugin_ptr' clashes with related field 'CMSPlugin.sbbmodel'. Add a related_name argument to the definition for 'cmsplugin_ptr'.

我真的不明白,因为我从未指定过外键。我认为这是因为我继承了CMSPlugin。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

我终于修好了。首先,我删除了为插件创建的每个文件。然后我删除了保存在数据库中的插件的每个实例。不幸的是,这并没有解决问题,即使重新启动服务器后我仍然得到相同的错误。

诀窍是进入phpPgAdmin并选择所有表而不是选择“正确”。它没有告诉我究竟是什么问题,但事后一切都恢复正常了。因此,如果您遇到同样的问题,只需自动“更正”您的数据库。