How to skip `python manage.py` from every command in Django

Life is too short to keep typing python manage.py before every command in Django. Instead, you can use of the following solutions to simplify things:

(venv) $ python manage.py runserver
(venv) $ python manage.py migrate
(venv) $ python manage.py makemigrations

Using the Django shortcuts package

The Django shortcuts package from PyPi is the silver bullet to this problem. All you need to do is install locally,

$ pip install django-shortcuts

And voila! You can prepend Django to single letters:

'c'  : 'collectstatic', # django c
'r'  : 'runserver',
'sd' : 'syncdb',
'sp' : 'startproject',
'sa' : 'startapp',
't'  : 'test',

If you’d like to learn a thing or two about shell scripts and aliases, you can use the following methods.

Using a shell script

Steps

  1. Create a Django file in bin:
sudo nano /bin/django

You can use an alternate text editor like gedit.

  1. Add this code to the file:
#!/bin/bash
python manage.py "$@"
  1. Make the file executable:
$ sudo chmod a+x /bin/django
  1. Run any command you wish:
(venv) $ django runserver
(venv) $ django migrate
(venv) $ django makemigrations

Using a bash alias

You can use a bash alias to achieve the same thing.

Steps

  1. Open the bashrc file using a text editor:
$ gedit ~/.bashrc
  1. Add this function to the file:
django(){
 python manage.py "$@"
}
  1. Save the file.

  2. Open a new terminal (won’t take effect in previously opened terminals).

  3. Try the commands:

(venv) $ django runserver
(venv) $ django migrate
(venv) $ django makemigrations

Free Resources

Attributions:
  1. undefined by undefined
Copyright ©2025 Educative, Inc. All rights reserved