Django Taggit: Model Tag, Admin and Filtering

Adi Ramadhan
3 min readJun 24, 2022

Django Taggit, model tag, registered in admin, and filtering, with bootstrap.
Official docs django-taggit.

filter by tag

Project structure. templates folder, base.html, articles.html, myapp/urls.py files are manually created, other files are auto-generated.

project structure

Step 1: Preparation, Create Django Project
create virtualenv: virtualenv venv
start virtualenv: venv/Scripts/activate
install Django and django-taggit in virtualenv:
pip install django==3.2 django-taggit
Create Django: django-admin startproject myproject
Go to myproject folder: cd myproject

Step 2: Create Django Apps and Register Django-taggit
Create apps: python manage.py startapp myapp
Add myapp and taggit to INSTALLED_APPS in myproject/settings.py

INSTALLED_APPS in myproject/settings.py

Step 3: Add Model with Tags

myapp/models.py

Step 4: Register Model in Django Admin

myapp/admin.py

Step 5: Makemigrations and Migrate
Make migrations: python manage.py makemigrations
Migrate: python manage.py migrate

Step 6: Create Superuser
Create superuser: python manage.py createsuperuser
Type username, email password and retype password

Step 7: Run Server and Add Some Data
Run Server: python manage.py runserver
Access: http://127.0.0.1:8000/admin
Login with superuser and add some data

article list in admin

Step 8: Set up Templates Folder
Create folder templates in myapp

Add template directory in TEMPLATES parameter in myproject/settings.py

Path(BASE_DIR, 'myapp', 'templates'),

Step 9: Create HTML Files in myapp/templates Folder

Create bootstrap base template, template/base.html

myapp/templates/base.html

Create template/articles.html

myapp/templates/articles.html

Step 10: Create View in myapp/views.py

myapp/views.py

Step 11: Setup URLs in myapp and myproject Folder

Create myapp/urls.py

myapp/urls.py

Update myproject/urls.py

myproject/urls.py

Step 12: Run Server and Test
Run Server: python manage.py runserver
Access:
http://127.0.0.1:8000/articles

--

--