Как установить тег id равным имени URL в django

Я пытаюсь установить атрибут динамического идентификатора для тега <body> в HTML.

Как-то так - <body id="{{ django_view_name }}>"

Я хочу, чтобы атрибут id имел имя страницы, например, для домашней страницы id="home" и для страницы блога id="blog" и страницы контактов id="contact"

Я не хочу использовать Javascript или Jquery.

Я создал шаблон main.html, а затем стал inheriting основным шаблоном в каждом из других шаблонов, таких как шаблоны index.html.

Код в main.htmltag выглядит так:

<div class="content-wrapper" id="content">
    <%include file="${static.get_template_path('header.html')}" args="online_help_token=online_help_token" />
    ${self.body()}
</div>

а потом на шаблоне index.html я inheriting вот так -

<%inherit file="main.html" />

ОБНОВЛЕНИЕ: ТРЕБУЕТСЯ ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ

Как я могу оценить значение ${ request.resolver_match.url_name }. Например, если id="${ request.resolver_match.url_name }" оценивается как id="home", я хочу сделать что-то вроде этого:

%if ${ request.resolver_match.url_name }=root:
    <div class="container">
else:
    something_else

Как я могу это сделать? Любая помощь очень ценится.


person Nishant Dixit    schedule 31.07.2017    source источник
comment
Возможный дубликат Как создать динамические идентификаторы для тегов в django шаблоны   -  person    schedule 31.07.2017
comment
@AvrilLavine Нет, это не так.   -  person Nishant Dixit    schedule 31.07.2017


Ответы (1)


Попробуй это,

<body id="{{ request.resolver_match.url_name }}"> 

это сгенерирует идентификатор на основе вашего имени URL, которое вы определили в urls.py URL-адресах

Обновление: после редактирования вопроса я вижу, что вы использовали шаблоны mako

Итак, вам нужно,

<body id="${ request.resolver_match.url_name }"> 
person Aniket Pawar    schedule 31.07.2017
comment
мне нужно что-то импортировать специально для этого? - person Nishant Dixit; 31.07.2017
comment
он добавил то же самое в html, не вычисляя его. Теперь у меня есть <body id="{{ request.resolver_match.url_name }}" class="ltr lang_en"> на моей странице - person Nishant Dixit; 31.07.2017
comment
как вы вызываете базовый шаблон в шаблоне вашего представления? вы расширяете макеты? Можете ли вы показать немного вашего кода шаблонов и представлений? - person Aniket Pawar; 31.07.2017
comment
вы используете шаблоны mako с django? - person Aniket Pawar; 31.07.2017
comment
Давайте продолжим обсуждение в чате. - person Aniket Pawar; 31.07.2017
comment
Тогда, очевидно, вам нужно использовать синтаксис Mako для переменной, а не Django, верно? - person Daniel Roseman; 31.07.2017
comment
@DanielRoseman Спасибо. В этом мне помог Аникет. Это была глупая ошибка. - person Nishant Dixit; 31.07.2017