【问题标题】:Django-CMS apphooked templates showing same placeholder content显示相同占位符内容的 Django-CMS apphook 模板
【发布时间】: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 占位符?

【问题讨论】:

    标签: django django-templates 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 应用程序,所以我最终修改了站点包,这不是我理想的解决方案,但最干净
    猜你喜欢
    • 2017-09-19
    • 2015-05-20
    • 2015-03-16
    • 2015-10-03
    • 2012-04-21
    • 2013-09-07
    • 2013-09-26
    • 1970-01-01
    • 2015-05-21
    相关资源
    最近更新 更多