Алдрин привет мировой вопрос
Я учу себя, как использовать Aldryn для размещения сайта django-cms. Я работал над учебником по разработке приложений на сайте readthedocs, и я дошел почти до самого конца. Когда я бегу aldryn project up
Я получаю ошибку, которая говорит мне, чтобы проверить журналы. Я проверяю логи используя docker-compose logs web
и в конце журнала я вижу: django.core.exceptions.ImproperlyConfigured: CMS Plugins must define a render template (<class 'hello_world_ct.cms_plugins.HelloWorld'>) that exists: hello_world_ct/hello.html
По какой-то причине проект aldryn, похоже, не распознает лицо, на котором я определил render_template внутри class HelloWorld(CMSPluginBase):
, Когда я закомментирую render_template, журнал выдает мне ту же ошибку.
Я настроил проект ТОЧНО, как подсказывает мне учебник. Дерево каталогов внутри папки addons-dev выглядит следующим образом:
hello-world-ct/
├── addon.json
├── hello_world_ct
│ ├── admin.py
│ ├── cms_plugins.py
│ ├── cms_plugins.pyc
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── models.pyc
│ ├── templates
│ │ └── hello_world_ct
│ │ └── hello.html
│ ├── tests.py
│ └── views.py
├── LICENSE
├── MANIFEST.in
├── README.rst
└── setup.py
Файл cms_plugins.py выглядит следующим образом:
from cms.plugin_base import CMSPluginBase
from cms.plugin_pool import plugin_pool
from cms.models.pluginmodel import CMSPlugin
class HelloWorld(CMSPluginBase):
model = CMSPlugin
render_template = "hello_world_ct/hello.html"
text_enabled = True
plugin_pool.register_plugin(HelloWorld)
... это выглядит правильно для меня, но, возможно, я что-то упустил.
1 ответ
У меня такая же проблема. Вот решение, которое сработало для меня.
в
settings.py
файл, добавьте папку шаблона вашего приложения в
TEMPLATES
переменная:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
os.path.join(BASE_DIR, 'your_core_app', 'core_app_templates_folder'),
os.path.join(BASE_DIR, 'hello_world_ct', 'templates'),
],
'OPTIONS': {
...
},
},
]
И добавьте имя шаблона в
CMS_TEMPLATES
переменная:
CMS_TEMPLATES = (
('fullwidth.html', 'Fullwidth'),
...
('hello.html', 'Hello World CT'),