# Django 5.2.8 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",
            ]

The customization above adds `resolve()` and `reverse()` to the default namespace, which already includes all models from the apps listed in `INSTALLED_APPS` plus what is imported by default. These objects will be available in the `shell` without requiring a manual import.

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:

Automatic imports of common utilities, such as `django.conf.settings`, were added.

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