如何在Django的每个页面上显示某些内容?

Dan*_*inn 3 python django

我很好奇处理每个页面或多个页面上出现某些内容的最佳实践方法,而不必手动将数据分配给每个页面,如下所示:

# views.py

def page0(request):
    return render_to_response(
        "core/index.html",
        {
            "locality": getCityForm(request.user),
        },
        context_instance=RequestContext(request)
    )

def page1(request):
    return render_to_response(
        "core/index.html",
        {
            "locality": getCityForm(request.user),
        },
        context_instance=RequestContext(request)
    )
...
def page9(request):
    return render_to_response(
        "core/index.html",
        {
            "locality": getCityForm(request.user),
        },
        context_instance=RequestContext(request)
    )
Run Code Online (Sandbox Code Playgroud)

现在我可以考虑一些方法来做到这一点,包括编写我自己的Context或者一些中间件,当然,locality在每个页面上复制/粘贴这个任务...我只是不确定这样做的最好方法.我很确定它不是最后一个.

Ned*_*der 16

你想要一个上下文处理器.它们生成的数据包含在作为a创建的每个上下文中RequestContext.他们是完美的.

结合显示常见内容的基本模板,您可以摆脱大量复制和粘贴代码的需要.