Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Подсветка текущего пункта меню средствами django [RSS Feed]

#1 Апрель 26, 2013 07:08:33

wiygn
Зарегистрирован: 2012-08-19
Сообщения: 52
Репутация: +  2  -
Профиль   Отправить e-mail  

Подсветка текущего пункта меню средствами django

Здравствуйте, поставил себе задачу, которая описана в названии темы. На данный момент меню вынесено в отдельный шаблон:

menu.html

<div id="nav">
<ul>
	<li><a href="/">Home</a></li>
	<li><a href="/search/">Search</a></li>
	<li><a href="/time/">Current time</a></li>
	<li><a href="/feedback/">Feedback</a></li>
	<h1>{{ request.path }}</h1> <!-- Вывод текущего path -->
</ul>
</div>
Хочется средствами django добавить селектор:
.iscurrent {
	font-size: 1.1em;
	border-bottom: 1px #f00 dotted;
	}
к пункту меню, который ссылается на текущий request.path
Как, собственно, осуществить все это в шаблоне средствами django?

Отредактировано wiygn (Апрель 26, 2013 07:09:26)

Офлайн

#2 Апрель 26, 2013 22:47:27

hulygun
Зарегистрирован: 2012-08-25
Сообщения: 74
Репутация: +  2  -
Профиль   Отправить e-mail  

Подсветка текущего пункта меню средствами django

{% if 'сцылко/пункта/меню' == request.path %}...

Офлайн

#3 Апрель 27, 2013 08:51:13

wiygn
Зарегистрирован: 2012-08-19
Сообщения: 52
Репутация: +  2  -
Профиль   Отправить e-mail  

Подсветка текущего пункта меню средствами django

hulygun, спасибо за ответ, у меня было реализовано похожим образом:

<li><a {% ifequal request.path "/" %}class="iscurrent"{% endifequal %} href="/">Home</a></li>
Но на stackoverflow я видел кучи других решений. Не могу понять теперь преимуществ одних перед другими.

Офлайн

#4 Апрель 27, 2013 13:44:00

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Подсветка текущего пункта меню средствами django

Не стОит в ссылках href писать путь, для этого в роутинге джанги есть параметр name

#urls.py
url(regexp, view, name="index")

<li><a href="{% url index %}">Home</a></li>
Это избавит Вас от многих проблем



Офлайн

#5 Апрель 28, 2013 14:20:37

unkier
От:
Зарегистрирован: 2009-11-05
Сообщения: 92
Репутация: +  2  -
Профиль  

Подсветка текущего пункта меню средствами django

FishHook
Не стОит в ссылках href писать путь, для этого в роутинге джанги есть параметр name

а если урл динамический ?



Офлайн

#6 Апрель 28, 2013 23:36:02

inoks
От: Russia
Зарегистрирован: 2012-12-11
Сообщения: 343
Репутация: +  35  -
Профиль   Адрес электронной почты  

Подсветка текущего пункта меню средствами django

передавайте параметр в урл, он будет динамически строиться

{% url 'user_profile' user.id %}

Офлайн

#7 Апрель 29, 2013 17:14:47

buddha
От:
Зарегистрирован: 2012-03-02
Сообщения: 422
Репутация: +  15  -
Профиль   Отправить e-mail  

Подсветка текущего пункта меню средствами django

wiygn, по мне так лучше под такие задачи подучить JS\JQuery, благо учится быстро и легко.
А всякие такие фишечки кодить на серверной части будут каверкать серверную логику. Но это моё мнение.

Офлайн

#8 Апрель 29, 2013 17:27:57

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Подсветка текущего пункта меню средствами django

buddha
К сожалению, пауки поисковиков не видят JS, поэтому сервер - это единственное место, где этот вопрос можно решить.



Офлайн

#9 Апрель 29, 2013 19:30:36

buddha
От:
Зарегистрирован: 2012-03-02
Сообщения: 422
Репутация: +  15  -
Профиль   Отправить e-mail  

Подсветка текущего пункта меню средствами django

А для чего паукам поисковиков знать какое меню активно?
Активная менюшка - это ж просто визуальное удобство для пользователя, нет?

Офлайн

#10 Апрель 29, 2013 20:08:28

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Подсветка текущего пункта меню средствами django

Уже года 3 как нет.
Это влияет на определение веса ссылки.
Плюс любая активная ссылка входит максимально допустимое для хоста количество ссылок, обрабатываемых пауком за 1 раз.
Видел сайты, где googlebot тупо не доходил до нужных разделов и они не были даже включены в поисковую базу.

Поэтому любые ссылки на текущую страницу нужно делать недоступными.



Офлайн

  • Начало
  • » Django
  • » Подсветка текущего пункта меню средствами django[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version