I’m curious as to the best-practise way to handle having something appear on every page, or on a number of pages without having to assign the data manually to every page like so:
# 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)
)
Now I can think of a few ways to do this, including writing my own Context or maybe some middleware, and of course, copy/pasting this locality assignment on every page… I’m just not sure of the best way to do this. I’m pretty sure that it’s not that last one though.
You want a context processor. The data they generate is included in every context created as a
RequestContext. They are perfect for this.Combined with base templates that show common things, you can get rid of lots of need for copying and pasting code.