2012-03-20 96 views
1

我想在我的Django模板的每个页面底部添加完整的类别列表(每个类别都是模型)。我想拥有它,以便自动生成。我宁愿不必为每个视图提供类别列表。基于模型在Django中自动生成页脚的正确方法

有没有适当的方法来做到这一点,以便我不必每次都将它提供给模板?

回答

2

创建一个template tag将该标记添加到基本模板(或任何具有公共页脚的模板)。

3

你既可以

编写自定义模板标签:
使用inclusion tag它提取所有类别和展示他们的模板。将此模板标签包含在您的基本模板中。

from django import template 
register = template.Library() 

from app.models import Category 

@register.inclusion_tag("footer.html") 
def footer(): 
    categories = Category.objects.all() 
    return {"categories": categories} 

这可能是你想要做的最好的选择。

使用自定义背景处理器:
Create a function,拉在所有类别,使它们在所有页面的模板上下文中可用。