A quick minor efficiency tip for today that'll make your life at the Django command line incrementally better.
You're using django-extensions in your project, right? If not, go and rectify that problem immediately.
The best feature™ that django-extensions provides is the shell_plus command, which imports all of your models and the most common django modules. If you've got ipython installed (you should!) the shell will launch within an ipython shell.
You know the worst thing about
shell_plus? The name. That's a long name to type out into your
shell, especially since it's snake_case, and I type
the command approximately 15,000 times per day.
Wouldn't it be nice to alias
shell_plus to something like
sh? Well, now you can!
Create a new file under one of your apps (I chose the "core" app) commands subfolders called
and add the following code:
# core/management/commands/sh.py """ A shortcut for shell_plus """ from django_extensions.management.commands.shell_plus import Command
And now you too can enter a
shell_plus session with the much nicer command
$ ./manage.py sh
Why not a bash/zsh/whatever alias?
Because docker, really. We could mount everyones bash or zsh profile. Or we could just rename a command and still access all of the help, arguments, and command line switches previously available. I like that.
Setup your own extra default imports, so you'll never have to import
timedelta ever again!
SHELL_PLUS_POST_IMPORTS = [ ("sales.enums", "*"), ("datetime", "timedelta") ]