Алдрин привет мировой вопрос

Я учу себя, как использовать 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'),

Другие вопросы по тегам