基于模型在Django中自动生成页脚的正确方法

时间:2012-03-20 12:25:34

标签: python django

我想在Django模板的每个页面的底部添加一个完整的类别列表(每个类别是一个模型)。我希望它能够自动生成。我也不必从每个视图中提供类别列表。

是否有正确的方法来执行此操作,以便我不必每次都将其提供给模板?

2 个答案:

答案 0 :(得分: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可以提取所有类别,并在所有网页的模板上下文中提供这些类别。

答案 1 :(得分:2)

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