我正在部署一個Django網站。我所有的自定義插件都可以在我的電腦上工作(我可以從下拉列表中將它們添加到模板塊中),但是當我將代碼推送到站點時,並非所有插件都可用。Django-CMS插件沒有出現
創建數據庫表,如果我導入plugin_pool
並呼叫discover_plugins()
,然後get_all_plugins()
插件都顯示出來。所以我的問題是,爲什麼我的插件不顯示?有任何想法嗎?
我正在部署一個Django網站。我所有的自定義插件都可以在我的電腦上工作(我可以從下拉列表中將它們添加到模板塊中),但是當我將代碼推送到站點時,並非所有插件都可用。Django-CMS插件沒有出現
創建數據庫表,如果我導入plugin_pool
並呼叫discover_plugins()
,然後get_all_plugins()
插件都顯示出來。所以我的問題是,爲什麼我的插件不顯示?有任何想法嗎?
是你的應用程序的插件(cms_plugins.py
文件)在INSTALLED_APPS
?
它有一個models.py
(可能是空的)文件嗎?
使用python manage.py shell
時,能導入cms_plugins.py
文件嗎?
最常見的問題是在跟隨basic example Django的CMS 3.在cms_plugins.py文件
我遇到過這個問題導入錯誤的例子表明,下面的代碼就可以了(在發生關聯的模板):
#cms_plugins.py
from cms.models.pluginmodel import CMSPlugin
class HelloPlugin(CMSPluginBase):
model = CMSPlugin
render_template = "hello_plugin.html"
plugin_pool.register_plugin(HelloPlugin)
然而,我發現,使用CMSPlugin
作爲模型時,插件是不是在頁面結構編輯器中可見。
儘管這是一個事實,即插件是:
INSTALLED APPS
models.py
文件(但該插件沒有使用任何這些模型)cms_plugins.py
文件可以從Django的殼嘗試Django的外殼進口進口,爲L isted示例頁面上:
$ python manage.py shell
>>> from django.utils.importlib import import_module
>>> m = import_module("myapp.cms_plugins")
的解決方案是使用在models.py
文件中定義的模型,其延伸CMSPlugin:
#cms_plugins.py
from .models import MyModel
class HelloPlugin(CMSPluginBase):
model = MyModel
render_template = "hello_plugin.html"
plugin_pool.register_plugin(HelloPlugin)
# models.py
class MyModel(CMSPlugin):
pass
像魔法,插件然後在「通用」上市頁面結構編輯器。
添加更多信息:) – iElectric
您可能會建議一些嗎?我真的不知道從哪裏開始尋找django-cms。 –