# Django 6.0.5 documentation

# Hur man anpassar kommandot `shell`

Django `shell` är en interaktiv Python-miljö som ger tillgång till modeller och inställningar, vilket gör den användbar för att testa kod, experimentera med frågor och interagera med applikationsdata.

Genom att anpassa kommandot `shell` kan du lägga till extra funktionalitet eller förladda specifika moduler. För att göra detta skapar du ett nytt hanteringskommando som underklassar `django.core.management.commands.shell.Command` och åsidosätter det befintliga hanteringskommandot `shell`. För mer information, se guiden om Överskriva kommandon.

## Anpassa automatisk import

New in Django 5.2.

Om du vill anpassa beteendet för automatisk import i hanteringskommandot `shell`, åsidosätter du metoden `get_auto_imports()`. Denna metod bör returnera en sekvens av importsökvägar för objekt eller moduler som är tillgängliga i programmet. Till exempel:

`polls/hantering/kommandon/shell.py`

    from django.core.management.commands import shell

    class Command(shell.Command):
        def get_auto_imports(self):
            return super().get_auto_imports() + [
                "django.urls.reverse",
                "django.urls.resolve",
            ]

Anpassningen ovan lägger till `resolve()` och `reverse()` till standardnamnområdet, som redan innehåller alla modeller från apparna som listas i `INSTALLED_APPS` plus det som importeras som standard. Dessa objekt kommer att vara tillgängliga i `shell` utan att manuell import krävs.

Att köra detta anpassade `shell`-kommando med `verbosity=2` skulle visa:

    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

Changed in Django 6.0:

Automatisk import av vanliga verktyg, såsom `django.conf.settings`, har lagts till.

Om ett åsidosatt `shell`-kommando innehåller sökvägar som inte kan importeras visas dessa fel när `verbosity` är inställt på `1` eller högre. Duplikatimport hanteras automatiskt.

Observera att automatisk import kan avaktiveras för en specifik `shell`-session med hjälp av `--no-imports`-flaggan. För att permanent inaktivera automatisk import, åsidosätt `get_auto_imports()` så att den returnerar `None`:

    class Command(shell.Command):
        def get_auto_imports(self):
            return None