You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Django CMS插件类拆分到多文件而非仅存于cms_plugins.py中?

解决Django CMS插件放在cms_plugins文件夹不生效的问题

Django CMS 默认仅会自动加载每个 app 根目录下的 cms_plugins.py 文件,如果你想用文件夹管理多个插件,需要手动完成模块导入配置,具体步骤如下:

1. 确认文件夹结构

确保你的 app 目录符合 Python 包规范:

your_app/
    __init__.py
    models.py  # 插件对应的模型(若有)
    cms_plugins/
        __init__.py
        ThePlugin.py  # 你的插件文件
        # 可添加更多插件文件,比如AnotherPlugin.py

2. 在cms_plugins/__init__.py中导入插件类

打开cms_plugins/__init__.py,将各个插件文件中的插件类导入进来。比如ThePlugin.py中定义了MyFirstPlugin,就添加:

from .ThePlugin import MyFirstPlugin
# 若有其他插件文件,继续导入对应类
# from .AnotherPlugin import MySecondPlugin

3. 检查插件文件的代码正确性

确保ThePlugin.py里的插件类正确继承并注册:

from cms.plugin_base import CMSPluginBase
from cms.plugin_pool import plugin_pool
from django.utils.translation import gettext_lazy as _
from your_app.models import MyPluginModel  # 替换为你的插件模型

class MyFirstPlugin(CMSPluginBase):
    name = _("我的第一个插件")
    model = MyPluginModel
    render_template = "your_app/plugin_templates/my_first_plugin.html"
    # 可添加缓存、权限等其他配置

plugin_pool.register_plugin(MyFirstPlugin)

4. 重启开发服务器

修改配置后必须重启 Django 开发服务器,新插件才能被加载识别。

常见排查点

  • 确认你的 app 已添加到settings.py的INSTALLED_APPS中
  • 检查文件名和导入语句的大小写(Python 对大小写敏感)
  • 确保插件类的model属性指向正确的模型类(若使用模型)

内容的提问来源于stack exchange,提问作者Cedric Rabarijohn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 05:31:34