Is there a way to specify a default base-template for all templates in django?
Don't forget, it's a guiding principle in Python - and therefore also in Django - that explicit is better than implicit. So whereas Rails, for example, emphasises convention over configuration and has all sorts of things happen automatically, this is very much alien to the Python way of doing things.
So no, there is no way to get Django to make templates inherit from a base automatically. And while you probably could get that working by creating a custom template loader, it's not a very good idea as it would confuse everyone else looking at your project.
I'm 2 hours into Django and am wondering if there is a way to specify a default base template that will automatically be loaded for all templates so that you don't have to repeat yourself and specify {% extends "foo.html" %} at the top of every page template.
For example, at the project or app level some metadata(settings) could specify a default template that was used unless either the call to render or the template itself specified that you shouldn't include the template. 
i. e. render(... other args..., layout=null) or {% noextends "foo.html" %}
This effectively turns the opt-in style into an opt-out, which in my experience is preferred. Given that it's specified in something like settings it's not "magic" and breaking with the spirit of Django.
I've looked over the documentation and this doesn't seem to be available by default.  I suppose I could do something like override the built-in render routine to try and concatenate the {% extends "foo.html" %} call on to every template, but I am hoping the internet can just tell me there is already a solution that I'm missing.