Принятый ответ будет работать, но я рекомендую использовать имена переменных для отслеживания структуры раздела. Мое личное предпочтение было бы контекстным процессором . Если, например, организация раздела вашего сайта прозрачно отражена в URL, попробуйте что-то вроде:
# It may be convenient to make this function live in or near your url conf.
def convert_url_path_to_folder_path(path):
# fill in the magic here
def sub_folder_available(request):
folder = convert_url_path_to_folder_path(request.path)
return {'subsection': folder, 'local_base':folder+'/base.html'}
Тогда в вашем шаблоне просто позвоните
{% extends local_base %}
Вероятно, есть еще дюжина других способов сделать это, но главное - подумать о том, чтобы избежать жесткого кодирования имени папки в шаблоне. Это даст вам много пробега, тем более что вы можете просто перетащить шаблон между разделами, если они окажутся достаточно похожими. Вы можете добавить еще одну вставку:
def sub_folder_available(request):
folder = convert_url_path_to_folder_path(request.path)
# Check if local base exists:
if os.access(folder+'/base.html',os.F_OK):
base = folder+'/base.html'
else:
# revert to your global base
base = 'base.html'
return {'subsection': folder, 'base':base}
Приятным преимуществом этой стратегии является, конечно, то, что вы можете создать и запустить секцию навесного веса без какого-либо локального базового шаблона.