[英]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.