Just Learn Code

Customize Your Django Favicon: A Step-by-Step Guide

In today’s digital age, having a website is a necessity for most businesses. With that comes ensuring that your brand is well-represented, not just in the website’s content, but also in the little details, such as the favicon.

A favicon is a small icon that appears on your browser tab beside your website’s name. It may seem like a minor detail, but it can make a significant impact on your audience’s perception of your brand.

In this article, we will guide you on how to set a custom favicon in Django and customize it for different templates.

Default Favicon in Django

When you create a new Django project, its default favicon is a simple HTML icon. If you haven’t changed it yet, then you’ll still have this default icon.

While it may suffice in some cases, you’d want to change it to better represent your brand. Fortunately, the process is quite simple.

Fixing Broken Favicon

Before setting a custom favicon, make sure that your favicon is working correctly. If you see something like the broken image icon in your browser tab, then there’s something wrong with your favicon.

To fix it, create a new Django project and add the following code to your urls.py file:


from django.views.generic.base import RedirectView

from django.urls import path

favicon_view = RedirectView.as_view(url=’/static/favicon.ico’, permanent=True)

urlpatterns = [

# … path(‘favicon.ico’, favicon_view),

# …



This code is telling Django to redirect requests for your favicon to a specific URL, which should point to your actual favicon image.

Adding Static Directory

Now, we need to create a static directory to store our favicon image. To do this, go to your terminal, navigate to your project’s directory, and run the following command:


$ mkdir static


Once you’ve created the static directory, the next step is to download your desired favicon image and save it inside the newly created static directory.

In your settings.py file, add this line of code:


STATICFILES_DIRS = [os.path.join(BASE_DIR, ‘static’)]


This code tells Django where to look for static files like your favicon. Of course, don’t forget to import os at the beginning of your settings.py file.

Loading Static Directory in HTML Template

In Django, we can set up a “base” template that other templates can inherit from. We can add to our base template the necessary code to load static file directories.

This code is:


{% load static %}


It’s crucial to include this code in your base template since other templates that inherit from it will automatically load the static file directories as well.

Setting Custom Favicon in HTML Template

At this point, we’re all set to add our custom favicon to our HTML template. In your HTML template’s section, add the following tag:



This code tells Django to look for a file called “favicon.png” in our static directory.

Make sure to replace it with the actual name of your favicon image file. You can also change the image’s file format to what’s appropriate for your image.

Customizing Favicon for Different Templates

While having a custom favicon for your website is great, sometimes, you’d want to have a different favicon for some of your templates. Doing this involves changing the image path in your tag or adding a favicon to a particular template.

Changing Image Path in Tag

Sometimes, you might want to change the favicon’s image path for a specific template. You can achieve this by changing the relative path to your favicon image.

For instance, to change the image path for a template named “blog.html”, the code would look like:


{% extends ‘base.html’ %}

{% block head %}

{% endblock %}


Adding Favicon to a Particular Template

In some cases, you might want to add a favicon to a particular template that’s not in your base template. To do this, open the HTML template file and add the following code inside the section:




In conclusion, setting a custom favicon in Django is simple and can be accomplished in just a few steps. It’s an essential aspect of website branding that should not be overlooked.

By utilizing our handy guide, you can customize your favicon to your heart’s content and make your website stand out in the crowded digital world. In this article, we have learned how to set a custom favicon in Django, starting with fixing a broken favicon and adding a static directory to the project.

We also covered how to load the static directory in an HTML template and set a custom favicon in tag. Moreover, we provided guides on how to change the image path in a tag and how to add a favicon to a particular template.

Customizing your website’s favicon is essential as it enhances your website’s branding and user experience. By following our guide, you can easily set up your custom favicon and make your website stand out in the digital world.

Popular Posts