创建自定义插件后,它可用于网站上的每个placeholder
。如果我希望它们只能在特定static_placeholder
上使用并从其余部分中排除,该怎么办?
我知道documentation告诉我如何在每个占位符上手动包含每个插件,但不知道如何从中插入插件。目前可能吗?
我正在使用Django CMS 3.1.2
答案 0 :(得分:1)
关于ojii答案的后续行动:
虽然目前正在批准合并(见#5412),但yakky描述的方法如下:
要实施黑名单,请在
中添加要列入黑名单的插件CMS_PLACEHOLDER_CONF[None]['excluded_plugins']
列表
请参阅#4979
谢谢@yakky:)
编辑:从Issue #5412提取更多信息:
有时候全局配置会让事情变得更好/ 简单
@ojii提出了一个等级结构(增加 优先顺序)
CMS_PLACEHOLDER_CONF[None] (global)
CMS_PLACEHOLDER_CONF['template']
(如果给出模板)
CMS_PLACEHOLDER_CONF['placeholder']
CMS_PLACEHOLDER_CONF['template placeholder']
(如果给出模板)
编辑2 在Django CMS 3.4.0上尝试了这些新配置,它运行良好
CMS_PLACEHOLDER_CONF = {
'About': {
'excluded_plugins': ['CMSArticlePlugin', 'FormPlugin'],
},
'Contact': {
'excluded_plugins': ['CMSArticlePlugin'],
},
'Editions': {
'excluded_plugins': ['CMSArticlePlugin', 'FormPlugin'],
},
'Involved': {
'excluded_plugins': ['CMSArticlePlugin', 'FormPlugin'],
},
'Gallery': {
'excluded_plugins': ['CMSArticlePlugin', 'FormPlugin'],
},
'News': {
'excluded_plugins': ['FormPlugin'],
},
}
很棒,Django CMS团队!
答案 1 :(得分:0)
目前,您只能将插件列入白名单,而不是将其列入黑名单。这意味着,现在,您必须在所有其他占位符上指定所有插件的列表(自定义插件除外)(请注意,您可以使用模板作为键来选择模板中的所有占位符),并定义静态列表包含自定义插件的占位符。
在django CMS Issue Tracker上提出这个问题可能也值得在未来的版本中找到更好的解决方案。