在页面上的特定位置呈现Django模板块

时间:2017-08-01 15:48:00

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

我试图在Django Templating Language中实现某些功能而不知道它是否可行(不使用JS或类似的东西)。

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

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

这三个区块是单项,产品和新来港定居人士。上面的代码出现在layout.html中,它基本上负责呈现主页面的整个布局。

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

由于我可以访问Single Item,Products和New Arrivals促销的各个模板,我尝试在那里创建DTL块,然后在layout.html的适当位置调用这些块。但是,这不起作用。

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

1 个答案:

答案 0 :(得分:-1)

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

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

希望我加入了启蒙。