Создание плагина для 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), которую я удалил. Должен ли я попробовать добавить модель еще раз? Если да, то что я должен сделать, чтобы исправить базу данных? Нужно ли выполнять миграцию для моего приложения? Нужно ли мне вообще регистрировать плагин как приложение?

Обновление 2: поэтому я попытался снова добавить модель и перенести приложение, но получаю следующую ошибку:

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. Любая помощь?


person user667804    schedule 05.09.2013    source источник


Ответы (1)


Я наконец исправил это. Сначала я удалил все файлы, созданные для моего плагина. Затем я удалил все экземпляры моего плагина, которые были сохранены в базе данных. К сожалению, это не решило проблему, и я все еще получал ту же ошибку даже после перезапуска сервера.

Хитрость заключалась в том, чтобы зайти в phpPgAdmin и выбрать все таблицы, а затем выбрать «правильно». Он не сказал мне, в чем именно была проблема, но потом все снова вернулось в норму. Поэтому, если вы каким-то образом столкнетесь с той же проблемой, просто «исправьте» свою базу данных автоматически.

person user667804    schedule 06.09.2013