从 Django 基本模板访问模型数据

joh*_*ees 5 python django django-templates django-models

我有一个模型Category,我希望它的对象始终显示在我的base.html模板的导航菜单中(我的所有其他模板都扩展了该菜单

我想学习最佳实践,所以想知道向模板提供这些数据的正确/可接受的方式是什么。

asa*_*fge 7

使用自定义上下文处理器:

在 context_processors.py 中:

def categories(request):
    return {
        'categories': Categories.objects.all()
    }
Run Code Online (Sandbox Code Playgroud)

并将其添加到您的 settings.py:

TEMPLATE_CONTEXT_PROCESSORS = (
    # ... django's default context processors
    "your_app.context_processors.categories", 
)
Run Code Online (Sandbox Code Playgroud)


ple*_*ong 5

您可以为类别创建自定义标签并将其放置在基本模板中。这样您就不必将“类别”变量发送到每个视图的上下文..

祝你好运