显示相同占位符内容的 Django-CMS apphook 模板

Posted

技术标签:

【中文标题】显示相同占位符内容的 Django-CMS apphook 模板【英文标题】:Django-CMS apphooked templates showing same placeholder content 【发布时间】:2014-08-31 21:59:57 【问题描述】:

我有一个 django-cms 站点,我在该站点上创建了一个带有应用程序挂钩的 /managers-home/ 页面,以便我可以从该页面使用 myapp

myapp/managers-home/ 下的各种 URL 处呈现各种模板,我希望这些模板中的每一个都有一个可通过 django-cms 内容插件编辑的部分。因此我在这些模板中添加了% staticplaceholder "content" site %,因为据我了解,您不能在挂钩的应用程序中使用标准的% placeholder "" %

我从这个开始,并在/managers-home/page-1/ 上的占位符上添加了一些文本,它使用page-1.html,然后当我到达/managers-home/page-2 上的占位符时,我已经可以看到第 1 页的内容,尽管现在使用page-2.html 所以这两个单独模板上的占位符正在共享。

如何在我的应用程序模板中正确添加 django-cms 占位符?

【问题讨论】:

【参考方案1】:

原来我的问题是static_placeholder 就是这样,只是一个由给定名称标识的占位符,并且在任何引用该名称的地方都会得到相同的内容。

所以为了让我的每个模板都能显示自定义文本,我为每个模板创建了一个 static_placeholder。

# page-1.html
% static_placeholder "page-1" site or %
    Default text goes here
% endstatic_placeholder %

# settings.py
CMS_PLACEHOLDER_CONF = 
    'page-1': 
        'plugins': ['TextPlugin', 'UploadedPicturePlugin'],
        'text_only_plugins': ['LinkPlugin'],
        'extra_context': "width": 640,
        'name': gettext("Content"),
    

【讨论】:

嘿,马克,我面临同样的问题,我在新闻博客应用程序中的所有文章都使用相同的模板。当我无法为每篇文章制作模板时,您知道有什么方法可以自定义每个占位符的内容吗? @Nate 如果您有一个应用程序可以从 News 模型呈现对象的内容,我想您的新闻对象使用 PlaceholderField,所以您不必担心static_placeholder? 我有 aldryn_newsblog 应用程序,所以我最终修改了站点包,这不是我理想的解决方案,但最干净

以上是关于显示相同占位符内容的 Django-CMS apphook 模板的主要内容,如果未能解决你的问题,请参考以下文章

Django-CMS - 全球占位符?

将自定义占位符添加到 django-cms

在不同的占位符/模板上以不同的方式呈现 Django-CMS 插件

Django-cms:前端编辑器未同步到管理站点中的内容

Django CMS 自动显示正确的占位符插件

Django-cms Placeholderfield 不工作,抛出 lambda 异常