Je suis en train d'écrire un site web python construit à l'arrière du framework django, je cherche un moyen de mettre en évidence le lien actuel que l'utilisateur est en train de passer sur ce que l'URL quelque chose comme ça fonctionnerait.donner un actif à la classe au lien actif
Ce que je l'ai fait est de créer une nouvelle application appelée nav
et construit quelques templatetags, comme si,
from django import template
register = template.Library()
URL_PATTERNS = {
'home': (r'^/$',),
}
@register.tag
def nav_selection(parser, token):
try:
tag_name, nav_item = token.split_contents()
except ValueError:
raise template.TemplateSyntaxError, "%r tag requires a single argument" % token.contents.split()[0]
if not (nav_item[0] == nav_item[-1] and nav_item[0] in ('"', "'")):
raise template.TemplateSyntaxError, "%r tag's argument should be in quotes" % tag_name
return NavSelectionNode(nav_item[1:-1])
class NavSelectionNode(template.Node):
def __init__(self, nav_item):
self.nav_item = nav_item
def render(self, context):
if not 'request' in context:
return ""
import re
try:
regs = URL_PATTERNS[self.nav_item]
except KeyError:
return ''
for reg in regs:
if re.match(reg, context['request'].get_full_path()):
return "active"
return ''
Dans mon modèle Je le fais encore le balisage
<ul id="navigation">{% load nav %}
<li><a href="{% url views.home %}" class='{% nav_selection "home" %}'>home</a></li>
<li><a href="{% url views.about %}" class='{% nav_selection "about" %}'>about neal & wolf</a></li>
<li><a href="{% url shop.views.home %}" class='{% nav_selection "shop" %}'>our products</a></li>
<li><a href="{% url shop.views.home %}" class='{% nav_selection "shop" %}'>shop</a></li>
<li><a href="{% url views.look %}" class='{% nav_selection "look" %}'>get the look</a></li>
<li><a href="{% url news.views.index %}" class='{% nav_selection "news" %}'>news</a></li>
<li><a href="{% url contact.views.contact %}" class='{% nav_selection "contact" %}'>contact us</a></li>
<li><a href="{% url store_locator.views.index %}" class='{% nav_selection "finder" %}'>salon finder</a></li>
<li><a href="{% url professional.views.index %}" class='{% nav_selection "contact" %}'>neal & wolf professional</a></li>
</ul>
Je sors dans firebug est-ce dans cet exemple, je suis la page d'index
<a class="" href="/home/">
Quelque chose échoue évidemment mais je ne peux pas voir où, quelqu'un peut-il m'aider s'il vous plaît?
Désolé je suis vraiment épais quand il s'agit de python, seulement le faire environ 2 semaines, est-ce une bonne façon de le faire? Ce n'est pas mon code, j'en ai hérité, y a-t-il un moyen plus simple? Comment puis-je voir ce qui est dans l'objet de requête? Quand je rends_to_response mon dernier paramètre est RequestContext, c'est ce que vous voulez dire? Désolé d'être stupide. – Udders