2017-08-11 89 views
0

到底是有什么方法来设置与“富”开头的所有占位符或CMS_PLACEHOLDER_CONF与“酒吧”结束CMS_PLACEHOLDER_CONF占位符启动或

例如:

CMS_PLACEHOLDER_CONF = { 
    'foo_*': { 
     'name': "Starts with", 
     'default_plugins': [ 
      { 
       'plugin_type': 'TextPlugin', 
       'values': { 
        'body': '<h1>Jason start</h1>' 
       }, 
      }, 
     ] 
    }, 
    '*_bar': { 
     'name': "Ends with", 
     'default_plugins': [ 
      { 
       'plugin_type': 'TextPlugin', 
       'values': { 
        'body': '<h1>Jason end</h1>' 
       }, 
      }, 
     ] 
    }, 
} 

任何帮助将不胜感激

+0

看来这目前是不可能的。你可以添加一个模板标签或包含文件,并将其添加到Django模板中的占位符位置之前/之后吗? – mch

+0

没有解决方案,我尝试了不同的东西。我有一个多站点占位符名称根据网站更改。 – Jason

+0

您可以在'.html'文件中使用上下文变量来命名占位符,但在settings.py中您需要指定占位符名称。 –

回答

0

尽管没有开箱即用的解决方案,但由于settings.py是一个python文件,因此无法阻止您动态生成CMS_PLACEHOLDER_CONF或相应地对其进行增强。

挑战在于,您仍然需要事先了解所有可能的占位符。

另一个(虽然不太可维护)的解决方案是在https://github.com/divio/django-cms/blob/0d25012fce3743130a4c94418c523faa568f2a76/cms/utils/placeholder.py#L40中修改get_placeholder_conf函数 - 在那里您可以根据占位符名称进行进一步处理。