2015-11-28 89 views
2

問題是header.html partial始終包含保存在數據庫上的類別字典。包括這部分與渲染諧音我需要傳遞參數自動將參數傳遞給partials

{% include "_partials/header.html" with categories %} 

每次類字典

render("index.html", {"flowers":flowers, "categories":categories}) 
render("details.html", {"flower":flower, "categories":categories}) 
... 

是否有任何解決方案,即header.html諧音總是包含categories字典。

+0

的可能的複製[如何在django中設置自定義中間件](http://stackoverflow.com/questions/18322262/how-to-s etup-custom-middleware-in-django) – Sayse

+0

^您可以創建自己的中間件,以便您可以將其包含在您的請求中。還有[上下文處理器](https://docs.djangoproject.com/en/1.8/ref/templates/api/#subclassing-context-requestcontext) – Sayse

回答

3

使用包含標籤解決它。

templatetags/tags.py文件

from django import template 
from flowers.models import Category 
register = template.Library() 
@register.inclusion_tag('_partials/nav.html') 
def show_categories(): 
    categories = Category.objects.all() 
    print categories 
    return {'categories':categories} 
_partials/nav.html文件它

創建的模板

<nav> 
    <ul> 
     {% for category in categories %} 
      <li><a href="{% url 'category:detail' category.id' %}">{{ category.name }}</a></li> 
     {% endfor %} 
    </ul> 
</nav> 

在結束

創建自定義標籤,使用該標籤

{% load tags %} 
{% show_categories %}