【问题标题】:Rendering Django Template Blocks in Specific Places on Page在页面上的特定位置呈现 Django 模板块
【发布时间】:2018-01-08 14:04:46
【问题描述】:

我正在尝试在 Django 模板语言中实现某些东西,但不知道它是否可能(不诉诸 JS 或类似的东西)。

我有以下代码(来自 Django-Oscar),它在主页上呈现 3 个促销块:

{# Render promotions #}
<div id="promotions">
    {% for promotion in promotions_page %}
       {% render_promotion promotion %}
    {% endfor %}
</div>

这三个板块是单品、产品和新品。上面的代码出现在layout.html 中,它主要负责渲染主页面的整个布局。

问题是,只要 Django 遇到这段代码,它就会一个接一个地渲染那里的所有促销活动。但是,我想选择在页面上放置它们的位置。更重要的是,我不相信我在渲染它们方面有很大的灵活性,阅读 - 除非绝对必要,否则我不想更改 Oscar 电子商务和渲染代码。

由于我可以访问单个商品、产品和新品促销活动的各个模板,因此我尝试在那里创建 DTL 块,然后在 layout.html 上的适当位置调用这些块。但是,这不起作用。

实现我想要做的事情的正确和最有效的方法是什么?

【问题讨论】:

    标签: python html django django-templates django-oscar


    【解决方案1】:

    Django 模板系统提供的功能可以让您添加自定义模板来代替应用程序附带的模板。您不需要为此修补 django-oscar。

    从这里开始:https://docs.djangoproject.com/fr/1.11/howto/overriding-templates/

    希望我增加了启示。

    【讨论】:

      猜你喜欢
      • 2020-04-24
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多