django-icons
August 28, 2026 ยท View on GitHub
Icons for Django.
Goal
The goal of this project is to provide a single, simple template tag for rendering icons from any icon library in Django templates.
- Define your icons in your settings, with defaults for name, title and other attributes.
- Generate icons using template tags.
- Supports Font Awesome, Material, Bootstrap 3 and images.
- Add other libraries and custom icon sets by subclassing
IconRenderer.
Status
Ready for production. Issues and pull requests welcome, see CONTRIBUTING.md.
Requirements
This package requires a combination of Python and Django that is currently supported.
See "Supported Versions" on https://www.djangoproject.com/download/.
This package uses uv and just for local development.
Documentation
The full documentation is at https://django-icons.readthedocs.io/en/latest/
Installation
-
Install using pip:
pip install django-icons -
Add to
INSTALLED_APPSin yoursettings.py:INSTALLED_APPS = ( # ... "django_icons", # ... ) -
Define an icon:
DJANGO_ICONS = { "ICONS": { "edit": {"name": "fa-solid fa-pencil"}, }, } -
In your templates, load the
iconslibrary and use the{% icon %}tag. See example below.
Example template
{% load icons %}
<!-- Include your icon library. This example uses Font Awesome 6 through cdnjs. -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
{% icon 'edit' %}
This will generate the FontAwesome 6 pencil icon in regular style.
<i class="fa-solid fa-pencil"></i>
Add extra classes and attributes to your predefined icon.
{% load icons %}
{% icon 'edit' extra_classes='fa-2xs my-extra-class' title='Update' %}
These will be added to the HTML output.
<i class="fa-solid fa-pencil fa-2xs my-extra-class" title="Update"></i>
Example app
An example app is provided in the folder example. You can run the example app with this command:
just example
Bugs and suggestions
If you have found a bug or if you have a request for additional functionality, please use the issue tracker on GitHub.
https://github.com/zostera/django-icons/issues
License
You can use this under BSD-3-Clause. See LICENSE file for details.
Author
Developed and maintained by Zostera.
Original author: Dylan Verheul.
Thanks to everybody that has contributed pull requests, ideas, issues, comments and kind words.
Please see AUTHORS for a list of contributors.
Origin
Our plans at Zostera for an icon tool originate in https://github.com/dyve/django-bootstrap3. We isolated this into a Font Awesome tool in https://github.com/zostera/django-fa. When using our own product, we felt that the icon tool provided little improvement over plain HTML. Also, Font Awesome's icon names did not match the intended function of the icon.
This is how we came to think of a library that:
- Took a limited number of arguments
- Converted those arguments into an icon
- Was able to support multiple icon libraries
- Could bind an icon definition to a preset name for easy reuse
- Could easily be extended by users
This is how we came to write and use django-icons.