微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Django模板 – 具有灵活名称的可重用片段

我有一个可重用的 HTML片段,用于列出项目.所以要在视图中列出项目,我只是这样做:

variables = RequestContext(request,{
    'items': items,}
return render_to_response('template_in_question',variables)

这个片段是:

{% for item in items %}
    <p>Item: {{item.name}} </p>
{% endfor %}

到现在为止还挺好.但是,有些视图我想要使用相同的可重用片段两次.例如,如果我想列出最畅销商品和最新商品,我需要创建该可重复使用片段的两个副本:

视图将是这样的:

variables = RequestContext(request,{
    'most_sold_items': most_sold_items,'latest_items': latest_items
}

并且在HTML中需要有两个可重用的HTML模板:

{% for item in most_sold_items %}
     <p>Item: {{item.name}}</p>
{% endfor %}

还有第二个

{% for item in latest_items %}
     <p>Item: {{item.name}}</p>
 {% endfor %}

所以我的问题是:如何在同一视图中使用两个或多个项目列表,并使用通用的HTML模板?例如,在上面的视图中传递“most_sold_items”和“latest_items”并以某种方式仅使用一个HTML模板分别列出每个?

解决方法

你可以使用include标签来完成它.基本上,你最终得到:

<h1>Most sold items</h1>
{% include "items.html" with items=most_sold_items only %}

<h1>Latest items</h1>
{% include "items.html" with items=latest_items only %}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐