繁体   English   中英

在页面上的特定位置渲染Django模板块

[英]Rendering Django Template Blocks in Specific Places on Page

我正在尝试在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适当位置调用这些块。 但是,这不起作用。

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

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

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

希望我能有所启发。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM