1
0
mirror of https://github.com/django/django.git synced 2025-10-27 15:46:10 +00:00

Fixed #35680 -- Added automatic imports of common utilies to shell management command.

This commit is contained in:
Salvo Polizzi
2025-02-14 08:17:25 +01:00
committed by Sarah Boyce
parent 8499fba0e1
commit a5cd84ad20
5 changed files with 119 additions and 20 deletions

View File

@@ -39,20 +39,29 @@ For example:
The customization above adds :func:`~django.urls.resolve` and
:func:`~django.urls.reverse` to the default namespace, which already includes
all models from the apps listed in :setting:`INSTALLED_APPS`. These objects
will be available in the ``shell`` without requiring a manual import.
all models from the apps listed in :setting:`INSTALLED_APPS` plus what is
imported by default. These objects will be available in the ``shell`` without
requiring a manual import.
Running this customized ``shell`` command with ``verbosity=2`` would show:
.. console::
8 objects imported automatically:
13 objects imported automatically:
from django.db import connection, reset_queries, models
from django.conf import settings
from django.contrib.admin.models import LogEntry
from django.contrib.auth.models import Group, Permission, User
from django.contrib.contenttypes.models import ContentType
from django.contrib.sessions.models import Session
from django.urls import resolve, reverse
from django.utils import timezone
.. versionchanged:: 6.0
Automatic imports of common utilities, such as ``django.conf.settings``,
were added.
If an overridden ``shell`` command includes paths that cannot be imported,
these errors are shown when ``verbosity`` is set to ``1`` or higher. Duplicate

View File

@@ -1067,9 +1067,15 @@ Starts the Python interactive interpreter.
All models from installed apps are automatically imported into the shell
environment. Models from apps listed earlier in :setting:`INSTALLED_APPS` take
precedence. For a ``--verbosity`` of 2 or higher, the automatically imported
objects will be listed. To disable automatic importing entirely, use the
``--no-imports`` flag.
precedence. The following common utilities are also imported::
from django.db import connection, reset_queries, models
from django.conf import settings
from django.utils import timezone
For a ``--verbosity`` of 2 or higher, the automatically imported objects will
be listed. To disable automatic importing entirely, use the ``--no-imports``
flag.
See the guide on :ref:`customizing this behavior
<customizing-shell-auto-imports>` to add or remove automatic imports.
@@ -1078,6 +1084,11 @@ See the guide on :ref:`customizing this behavior
Automatic models import was added.
.. versionchanged:: 6.0
Automatic imports of common utilities, such as ``django.conf.settings``,
were added.
.. django-admin-option:: --interface {ipython,bpython,python}, -i {ipython,bpython,python}
Specifies the shell to use. By default, Django will use IPython_ or bpython_ if

View File

@@ -224,6 +224,9 @@ Management Commands
* The :djadmin:`startproject` and :djadmin:`startapp` commands now create the
custom target directory if it doesn't exist.
* Common utilities, such as ``django.conf.settings``, are now automatically
imported to the :djadmin:`shell` by default.
Migrations
~~~~~~~~~~