Django Admin Custom Action

Default action and additional custom action

By default, Django admin provide delete model in action. We can add custom action.

Here some quick steps to add custom action.

Step 1: Preparation
a. Create virtualenv and start it.

> virtualenv venv
> venv\Scripts\activate

b. Install Django

(venv)> pip install django

c. Create Django Project

(venv)> django-admin startproject myproject

d. Goto Project Folder and Create Django Application

(venv)> cd myproject
(venv)/ myproject> python manage.py startapp myapp

e. Register Django App to Django Project
add ‘myapp’ in INSTALLED_APPS in myproject/settings.py

f. Initial Migrate

(venv)/ myproject> python manage.py migrate

g. Create superuser

(venv)/ myproject> python manage.py createsuperuser

type username, email, password and retype password.

Step 2: Create Book Model

a. Create Book Model
add book model in myapp/models.py

b. Register model and add custom action
register book model in myapp/admin.py

action above will change selected book to ‘Out of Stock’.

c. Make migration and migrate

(venv)/ myproject> python manage.py makemigrations
(venv)/ myproject> python manage.py migrate

Step 3: Start Apps

(venv)/ myproject> python manage.py runserver

open http://127.0.0.1:8000/admin open Book menu and add some book data and do some test with new custom action.

Software Engineer