【问题标题】:Django - Static content display based on URLDjango - 基于 URL 的静态内容显示
【发布时间】:2010-04-24 19:37:49
【问题描述】:

我正在开发一个具有基本三栏设计的 Django 网站。左栏导航、中栏内容和右栏 URL 特定内容块。

我的问题是关于控制右栏中 URL 特定内容块的最佳方法。

我正在考虑类似 Flatpages 应用程序的一些东西,如果 URL 匹配预先确定的模式(可能是正则表达式?),它将使内容可用于模板上下文。

有谁知道这样的应用是否已经存在?

如果没有,我正在寻找有关实施它的最佳方法的一些建议。特别是关于模式与当前 URL 的匹配。有什么好的方法可以重用 Django URL 调度程序的部分内容吗?

【问题讨论】:

    标签: django content-management


    【解决方案1】:

    Django CMS 是一个很好的建议,这取决于你想走多远。如果这只是您想要的不同类型动态内容的开始,那么您肯定应该这样做。

    一个简单的一次性解决方案是这样的:

    您只需要编写一个视图并在 URL 的末尾添加一些变量来定义在那里显示的内容。根据您需要的花哨程度,您可以创建一个简单的模型,并将视图映射到模型键

    www.example.com/content/sidecontent/jokes/

    因此,如果“笑话”是您的可变 sidecontent 块(您的侧面模型实例中的许多之一),则 urls.py 条目将是

    (r'^content/sidecontent/(?P<side>)/$,sides.views.showsides),
    

    然后在你的侧面应​​用程序中,你有一个带有

    的视图
    def showsides(request, side):
        Sides.objects.get(pk=side)
    

    等等……

    【讨论】:

      【解决方案2】:

      对于这样的事情,我个人会使用Django CMS。这就像类固醇上的平面页面。

      Django CMS 有页面、模板和插件的概念。每个页面都有一个关联的模板。模板有占位符,您可以在其中插入不同的插件。插件就像可以拥有基于模型的动态内容的迷你应用程序。

      【讨论】:

      • 这看起来是一个有趣的解决方案。我认为它适用于网站的静态页面。我唯一关心的是它如何与站点的其余部分以及所有自定义 Django 视图一起使用。
      • 它与其他应用程序配合得很好。您可以将应用程序直接集成到 Paging 框架中,也可以像不使用 Django CMS 时一样将它们包含到 django 项目中。它非常灵活,不需要太多精力来集成。我建议花时间至少阅读文档。它不是很长。 Django CMS 可能对您当前的问题没有用处,但它可能是未来另一个项目的救星。这是给我的。
      【解决方案3】:

      虽然 Django-CMS 是一个有趣的建议,但仍有不少项目专门按照您的要求进行 - 根据 URL 呈现内容块。我知道的主要是django-flatblocks

      【讨论】:

      • 这更符合我最初的想法。但是据我所知,它仍然需要我为每个“平面块”放置一个特定的模板标签。我想到的更像是一类平面块,根据 URL 模式匹配显示适当的平面块。如果我找不到我要找的东西,这似乎是一个开始自己动手的好地方。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-19
      • 1970-01-01
      • 1970-01-01
      • 2011-04-29
      • 1970-01-01
      • 2016-09-20
      相关资源
      最近更新 更多