Categories
Python Answers

How to highlight links in Python Django templates?

Spread the love

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.

By John Au-Yeung

Web developer specializing in React, Vue, and front end development.

Leave a Reply

Your email address will not be published. Required fields are marked *