Skip to content

Fixed #19737 -- Deprecated the shell management command. #1365

wants to merge 1 commit into from

4 participants

Django member

I think the release notes for this should explain the pain in keeping it - if we claim this is "all it does", then why not keep it?

Django member

here's the text from the ticket, would you edit it at all?

The downside of having "shell" in Django is that it's a non-trivial maintenance burden to decide which REPLs to support, add support for them, and then update and fix that support through the years. We've seen a steady stream of tickets related to various edge-cases in IPython startup, not to mention the major API changes in recent IPython versions. There's no reason for Django to have to be maintaining code related to IPython.

Django member

I might say something along the lines of:

Historically, Django has aimed to maintain compatibility with the various python REPLs. There have been a number of awkward edge cases, in particular with IPython, and the maintenance burden is much greater than the benefit offered.

Personally, I can see the argument for deprecating it, but you are asking basically every django user to change something they probably use every single day, not to mention is exceedingly well documented in tutorials everywhere. IMO, if the maintenance is the problem, drop iPython/bPython support and just leave a simple shell command. This may be worth a discussion on -dev I think. It's not a deprecation to be taken lightly.


I think the removal of the shell hurts people who work on many different Django applications. At the moment you can change into any project and run ./ shell, and you'll get an interactive shell relevant to that project. With the shell removed, you will have to fiddle around finding the application name and setting the environment variable before being able to run the Python interpreter and get some work done.

I imagine that if you only have 1 project to work on moving the process into a singular command is convenient, but for those of us with multiple, it's going to be a lot of hassle for little benefit (from the end-user's perspective, I realise the contributors are annoyed with tickets being created surrounding it).


Yes, it's definately a handy tool i use it every day to fast check models and settings on different dev, test and production environments.

For sure it can be replaced by scripts and such, but i find it very convenient imho.

Django member

Closed ticket as "won't fix."

@timgraham timgraham closed this Jul 24, 2013
@timgraham timgraham deleted the timgraham:19737 branch Jul 24, 2013
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.