【问题标题】:Static Text to Dynamic Text in Django TemplatingDjango模板中的静态文本到动态文本
【发布时间】:2010-11-01 11:04:30
【问题描述】:

大家干杯!我对 Django 很陌生,但我已经研究了几个星期了。我正在围绕 Django 构建一个基本网站,我对该框架本身及其可能性感到非常兴奋。我的问题可能听起来“菜鸟”,如果是,请不要抱怨。

我已经开发了一个新闻提要、页面、评论、分类和一堆现在可以使用的其他东西,但是当我不得不将模板应用到我的网站时,我突然想到我错过了一些东西 - 静态文本。

您知道所有网站都有一些静态文本,例如版权声明、一些标语文本、主页上的介绍性文本、侧边栏中的一些文本和/或图像,这些都是静态的。我知道所有这些都可以分解为模型,但我不喜欢在我的网站上的每一点文本/原始 html 数据上这样做的开销。

我正在考虑使用包含 html 块名称及其内容的单个模型,然后选择适用于某个视图的模型并将内容传递给模板。所以我的问题是 - 这是正确的做法吗?我会将版权声明存储在我网站底部的数据库中吗?我可以使用一个字典来存储所有可用的文本块,以便在我的模板中使用,但是如果它们的数量变得非常大怎么办?我是否只需要在我的每一个视图中查询我需要的那些?或者我应该引入一个特殊的模板标签来为我完成这类工作?

只是给你一个想法,这是我想到的两个选项:

# Option 1
{% load text %}
{% text some-text-label %}

# Option 2 (assuming text was passed in the Context)
{{ text.some-text-label %}

您究竟是如何解决此类问题的?

问题?是的 - 你可以告诉我,我可以在我的模板中硬编码我的版权声明,这很好,但是客户,客户,客户。他们不懂 HTML,而且他们确实想从管理面板内部编辑网站的任何部分(当然就内容而言)。所以,是的,希望能解释它;)

感谢您的回答!

【问题讨论】:

  • 警告词:“管理面板”旨在供管理员使用,而不是您的客户。
  • @John 我更多地考虑的是内容管理员,而不是管理员。但是无论如何,即使是管理员也不应该编辑模板.. 我猜 ;)

标签: django django-templates


【解决方案1】:

您可能想查看执行此类操作的各种第三方应用之一 - django-flatblocksdjango-chunksgeneric-flatblocks

【讨论】:

    【解决方案2】:

    如果我的要求正确,您可以按照以下说明操作:

    1. 首先,您必须创建一个 base.html(或其他名称)并创建不同的块。
    2. 您可以创建模板标签并设置逻辑以从数据库中获取数据(即版权信息和您想要的任何内容)
    3. 您可以将模板标签加载到各个块中以动态获取数据。
    4. 将此模板用作基本模板并在所有其他模板中继承它。

    希望对你有帮助。

    【讨论】:

    • 当然可以,但我问的是在数据库中/从数据库中实际存储和检索块的过程;)
    • 这取决于你想要它的方式。您为用户提供了一个编辑器,他会将内容以 html 本身的形式呈现并呈现为页脚、徽标等,或者您可以根据您的要求放置其他逻辑。
    【解决方案3】:

    我一直在使用 django-flatblocks (http://github.com/zerok/django-flatblocks) 来处理此类信息并通过管理员对其进行管理。

    【讨论】:

      猜你喜欢
      • 2015-03-29
      • 2013-01-23
      • 2013-06-18
      • 2011-12-18
      • 1970-01-01
      • 2021-07-07
      • 2012-02-28
      • 2019-02-14
      • 2022-01-10
      相关资源
      最近更新 更多