У меня есть шаблон, который отображает элементы объекта с гиперссылками на другие части моего сайта. У меня есть другая функция, которая отображает прошлые версии одного и того же объекта. На этом экране я не хочу гиперссылок.
Я предполагаю, что не могу динамически отключать гиперссылки, поэтому я включил обе версии в один и тот же шаблон. Я использую оператор if, чтобы отобразить версию с гиперссылкой или текстовую версию. Я предпочитаю хранить их в одном шаблоне, потому что если мне нужно изменить формат одного из них, его будет легко применить к другому прямо там.
Шаблон расширяет framework.html. Framework имеет систему хлебных крошек и расширяет base.html. База имеет простую систему верхнего меню.
Итак, вот моя дилемма. При просмотре стандартных данных гиперссылки я хочу видеть главное меню и панировочные сухари. Но при просмотре текстовых данных в предыдущей версии мне нужны только данные, ни меню, ни хлебные крошки. Я не уверен, возможно ли это, учитывая мой текущий дизайн. Я попытался, чтобы Framework наследовал основной шаблон, чтобы я мог выбрать либо Framework (и отображать хлебные крошки), либо сам шаблон, пропуская хлебные крошки, но я хочу, чтобы framework.html был доступен и для других шаблонов. Если framework.html расширяет определенный шаблон, я теряю возможность отображать его в других шаблонах.
Я попытался написать оператор if, который бы отображал блок top_menu и блок nav_menu из base.html и framework.html соответственно. Это перезапишет их блоки и позволит мне отключить эти элементы по условию if. К сожалению, это не кажется условным; если элементы блока вообще присутствуют в шаблоне, окружены ли они или нет, я теряю меню.
Я думал об использовании {% include%} для сбора панировочных сухарей и разделенного верхнего меню. В этом случае, однако, я должен буду включать это все время. Нет больше наследства. Это лучший вариант с учетом моих требований?