CMS_PLACEHOLDER_CONF占位符开头或结尾

时间:2017-08-11 12:27:12

标签: django settings placeholder django-cms

有没有办法设置所有以' foo'开头的占位符?或以' bar'结尾在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>'
                },
            },
        ]
    },
}

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

虽然没有开箱即用的解决方案,因为settings.py是一个python文件,但没有什么能阻止您动态生成CMS_PLACEHOLDER_CONF或相应地增强它。

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

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