我想在我的Django模板的每个页面底部添加完整的类别列表(每个类别都是模型)。我想拥有它,以便自动生成。我宁愿不必为每个视图提供类别列表。基于模型在Django中自动生成页脚的正确方法
有没有适当的方法来做到这一点,以便我不必每次都将它提供给模板?
我想在我的Django模板的每个页面底部添加完整的类别列表(每个类别都是模型)。我想拥有它,以便自动生成。我宁愿不必为每个视图提供类别列表。基于模型在Django中自动生成页脚的正确方法
有没有适当的方法来做到这一点,以便我不必每次都将它提供给模板?
创建一个template tag将该标记添加到基本模板(或任何具有公共页脚的模板)。
你既可以
编写自定义模板标签:
使用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,拉在所有类别,使它们在所有页面的模板上下文中可用。