Краткая версия:
Есть ли простой, встроенный способ идентификации вызывающего представления в шаблоне Django, без передачи дополнительных контекстных переменных?
Длинная (оригинальная) версия:
В одном из моих приложений Django есть несколько разных представлений, каждый со своим собственным шаблоном URL-адреса, который отображает один и тот же шаблон. Там очень небольшое количество кода шаблона, которое нужно изменить в зависимости от вызываемого представления, слишком мало, чтобы стоить накладных расходов на настройку отдельных шаблонов для каждого вида, поэтому в идеале мне нужно найти способ идентификации вызывающего представления в шаблоне.
Я попытался настроить представления для передачи дополнительных контекстных переменных (например, "имя_выпуска" ), чтобы идентифицировать вызывающее представление, и я также попытался использовать сравнения {% ifequal request.path "/some/path/" %}
, но ни одно из этих решений не кажется особенно элегантным. Есть ли лучший способ идентифицировать вызывающий вид из шаблона? Есть ли способ доступа к имени представления или имени шаблона URL?
Обновление 1: Что касается комментария, это просто случай, когда я недопонимаю MVC, я понимаю MVC, но Django на самом деле структура MVC. Я считаю, что способ, которым настроено мое приложение, согласуется с тем, что Django использует MVC: представления описывают, какие данные представлены, и шаблоны описывают, как данные представлены. Просто случается, что у меня есть несколько представлений, которые готовят разные данные, но все используют один и тот же шаблон, потому что данные представлены одинаково для всех представлений. Я просто ищу простой способ идентифицировать вызывающий вид из шаблона, если он существует.
Обновление 2: Спасибо за все ответы. Я думаю, что вопрос передумал - как уже упоминалось в моем первоначальном вопросе, я уже рассмотрел и пробовал все предлагаемые решения, поэтому я перегнал его до "короткой версии" в верхней части вопроса, И прямо сейчас кажется, что если бы кто-то просто поставил "Нет", это был бы самый правильный ответ:)
Обновление 3: Карл Мейер опубликовал "Нет":) Еще раз спасибо.