Sometimes, we want to highlight links in Python Django templates
In this article, we’ll look at how to highlight links in Python Django templates
How to highlight links in Python Django templates?
To highlight links in Python Django templates, we can create a tag.
For instance, we write
@register.simple_tag
def active(request, pattern):
import re
if re.search(pattern, request.path):
return 'active'
return ''
to create the active tag that returns 'active' if the current URL patches the path pattern for the link.
We use the @register.simple_tag tag to register the template tag.
Then in urls.py, we add some routes by writing
urlpatterns += patterns('',
(r'/$', view_home_method, 'home_url_name'),
(r'/services/$', view_services_method, 'services_url_name'),
(r'/contact/$', view_contact_method, 'contact_url_name'),
)
And then in a template, we write
{% load tags %}
{% url 'home_url_name' as home %}
{% url 'services_url_name' as services %}
{% url 'contact_url_name' as contact %}
<div id="navigation">
<a class="{% active request home %}" href="{{ home }}">Home</a>
<a class="{% active request services %}" href="{{ services }}">Services</a>
<a class="{% active request contact %}" href="{{ contact }}">Contact</a>
</div>
to use the active tag to set the class attribute to active if the link URL matches the current URL.
Conclusion
To highlight links in Python Django templates, we can create a tag.