【问题标题】:How do i make djangoCMS urls to work with my django app urls?如何使 djangoCMS url 与我的 django 应用程序 url 一起使用?
【发布时间】:2018-08-12 13:22:41
【问题描述】:

我正在开发一个 django 站点,并且我已经构建了所有模板,然后决定安装 djangoCMS 来管理我的内容,所以问题是我的 django url 模式似乎不适用于 djangoCMS 页面生成的路径和这个导致我的模板页面中的placeholders 出现严重问题,因为它们仅在我导航到 djangoCMS 页面生成路径时显示在结构视图中,但是当我使用自己定义的 url 访问同一页面时,占位符在结构中不可见页面视图?什么可能导致这个问题?

【问题讨论】:

    标签: python django django-cms


    【解决方案1】:

    您需要修改现有应用以与 CMS 兼容,然后您可以使用应用挂钩属性将它们附加到页面。

    您可以在此处阅读有关创建应用挂钩的文档; http://docs.django-cms.org/en/latest/how_to/apphooks.html

    基本上你会在你的应用程序中创建一个cms_apps.py 文件,看起来像这样;

    from cms.app_base import CMSApp
    from cms.apphook_pool import apphook_pool
    from django.utils.translation import ugettext_lazy as _
    
    @apphook_pool.register
    class MyApphook(CMSApp):
        name = _("My Apphook")
    
        def get_urls(self, page=None, language=None, **kwargs):
            return ["myapp.urls"]
    

    设置好应用后,您可能希望为其创建菜单,以便特权用户无需离开前端即可执行管理任务。这里有相关信息; http://docs.django-cms.org/en/latest/how_to/apphooks.html#apphook-menus

    【讨论】:

    • 谢谢@markwalker_ apphooks 为我工作,但现在占位符标签不再工作,我将如何解决?
    • 应用内@DennisGathagu,占位符标签需要转成{% static_placeholder "my placeholder" %}
    • 这意味着我的应用程序上的所有静态占位符将始终显示在每个页面的structure 视图上,这与仅显示特定模板上可用标签的placeholder 标签不同?
    • @DennisGathagu 是的,但是在应用程序中,您可以将静态占位符名称定义为上下文变量,因此它很灵活。同样,在应用程序中,您倾向于为每个视图设置不同的模板,因此在每个视图中设置一个占位符并添加一些变量命名(如果有动态内容)。
    猜你喜欢
    • 2011-03-10
    • 2017-06-23
    • 2012-07-28
    • 2022-01-20
    • 1970-01-01
    • 2010-12-05
    • 1970-01-01
    • 2020-05-22
    • 1970-01-01
    相关资源
    最近更新 更多