2017-08-11 6 views
0

で終わるCMS_PLACEHOLDER_CONFプレースホルダは「FOO」で始まるすべてのプレースホルダを設定したり、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を動的に生成したり、それに応じて拡張することはできません。

問題は、事前にすべての候補プレースホルダを知る必要があることです。

get_placeholder_confhttps://github.com/divio/django-cms/blob/0d25012fce3743130a4c94418c523faa568f2a76/cms/utils/placeholder.py#L40の機能にサンクスパッチを適用することで解決できるかもしれませんが、プレースホルダの名前に基づいて処理することができます。

関連する問題