Python 奥尔德林你好世界问题

Python 奥尔德林你好世界问题,python,django,django-cms,divio,Python,Django,Django Cms,Divio,我正在自学如何使用Aldryn来主持django cms网站。我一直在浏览网站上的应用程序开发教程,几乎一直到最后。当我运行aldryn project up时,我得到一个错误,告诉我检查日志。我使用docker compose logs web检查日志,在日志的末尾我看到:django.core.exceptions.impropertlyconfigured:CMS插件必须定义一个存在的呈现模板():hello\u world\u ct/hello.html 由于某些原因,aldryn项目似

我正在自学如何使用Aldryn来主持django cms网站。我一直在浏览网站上的应用程序开发教程,几乎一直到最后。当我运行
aldryn project up
时,我得到一个错误,告诉我检查日志。我使用docker compose logs web检查日志,在日志的末尾我看到:
django.core.exceptions.impropertlyconfigured:CMS插件必须定义一个存在的呈现模板():hello\u world\u ct/hello.html

由于某些原因,aldryn项目似乎无法识别我在
类HelloWorld(CMSPluginBase):
中定义了渲染模板的面。当我注释掉render_模板时,日志会给出相同的错误

我完全按照教程的要求设置了项目。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)

。。。在我看来这是对的,但也许我遗漏了什么。

我也有同样的问题。这是对我有效的解决方案

settings.py
文件中,将应用程序的模板文件夹添加到
TEMPLATES
变量:

模板=[
{
'BACKEND':'django.template.backends.django.DjangoTemplates',
“DIRS”:[
join(BASE\u DIR、'your\u core\u app'、'core\u app\u templates\u folder'),
join(BASE\u DIR、'hello\u world\u ct、'templates'),
],
“选项”:{
...
},
},
]
并将模板名称添加到
CMS\u TEMPLATES
变量:

CMS\u模板=(
('fullwidth.html','fullwidth'),
...
('hello.html'、'hello World CT'),

值得仔细检查,只是为了确定,您的路径和对路径的引用确实都包含下划线,而不是破折号(
hello\u world\u ct
)。要进行调试,您可以尝试手动通过django获取模板,以查看这是模板加载的一般问题还是插件中的特定问题。首先注释掉
插件池。注册插件(HelloWorld)
cms\u plugins.py
中,这样django就可以启动了。使用
docker compose run--rm web python manage.py shell
跳入django shell。然后从django.template导入loader;loader.get\u模板(“hello\u world\u ct/hello.html”)。也可以尝试
loader.get\u模板(“base.html”)
(您知道的一些模板可以工作)作为测试的参考。