Я пытаюсь скопировать пример плагина Hello в документации по Django CMS здесь: http://docs.django -cms.org / ru / latest / how_to / custom_plugins.html
В CMS я могу видеть и добавлять HelloPlugin, но когда я нажимаю сохранить, я получаю:
Значение исключения: нет такой таблицы: DEC_hello («DEC» - это название моего проекта)
Я скопировал / вставил код из doc'n в models.py и cms_plugins.py и hello_plugin html.
Я знаю, что это нормально в models.py для обычных (models.model) классов / таблиц, добавляемых в базу данных с префиксом имени проекта.
Но класс Hello (CMSPlugin) не создает таблицу в базе данных. Я предполагаю, что это «другое» и не должно быть добавлено в БД вообще как таблица, и, конечно, не с именем DEC_hellow.
Я сохранил все эти файлы .py, запустил makemigrations и перенес несколько раз без изменений / изменений.
Заранее спасибо за помощь.
Под управлением Django CMS 3.6.0, Django версия 1.11.20 Python 3.7.3 под управлением Windows 10
models.py
from django.db import models
from cms.models.pluginmodel import CMSPlugin
class Hello(CMSPlugin):
guest_name = models.CharField(max_length=50, default='Guest')
cms_plugins.py
from cms.plugin_base import CMSPluginBase
from cms.plugin_pool import plugin_pool
from django.utils.translation import ugettext_lazy as _
from .models import Hello
@plugin_pool.register_plugin
class HelloPlugin(CMSPluginBase):
model = Hello
name = _("Hello Plugin")
render_template = "hello_plugin.html"
cache = False
def render(self, context, instance, placeholder):
context = super(HelloPlugin, self).render(context, instance, placeholder)
return context
hello_plugin.html
<h1>Hello {% if request.user.is_authenticated %}
{{ request.user.first_name }} {{ request.user.last_name}}
{% else %}
{{ instance.guest_name }}
{% endif %}</h1>
Ошибка при нажатии сохранить, чтобы добавить плагин в CMS:
OperationalError at /en/admin/cms/page/add-plugin/
no such table: DEC_hello
Request Method: POST
Request URL: http://localhost:8000/en/admin/cms/page/add-plugin/?placeholder_id=41&plugin_type=HelloPlugin&cms_path=/en/purpose-list/&plugin_language=en
Django Version: 1.11.20
Exception Type: OperationalError
Exception Value:
no such table: DEC_hello
Exception Location: D:\dev\djangocms\lib\site-packages\django\db\backends\sqlite3\base.py in execute, line 328
Python Executable: D:\dev\djangocms\Scripts\python.exe
Python Version: 3.7.3
Python Path:
['D:\\dev\\djangocms\\StoneProj',
'D:\\dev\\djangocms\\Scripts\\python37.zip',
'D:\\dev\\djangocms\\DLLs',
'D:\\dev\\djangocms\\lib',
'D:\\dev\\djangocms\\Scripts',
'c:\\users\\dad\\appdata\\local\\programs\\python\\python37\\Lib',
'c:\\users\\dad\\appdata\\local\\programs\\python\\python37\\DLLs',
'D:\\dev\\djangocms',
'D:\\dev\\djangocms\\lib\\site-packages']
Server time: Mon, 13 May 2019 14:01:15 -0400