---
title: "Hur man anpassar kommandot shell"
version: 6.0
locale: sv
source: https://docs.djangoproject.com/sv/6.0/howto/custom-shell/
canonical: https://djangodocs.dev/sv/6.0/howto/custom-shell/
---
# Hur man anpassar kommandot `shell`

Django [`shell`](/sv/6.0/ref/django-admin/#django-admin-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`](/sv/6.0/ref/django-admin/#django-admin-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](/sv/6.0/howto/custom-management-commands/#overriding-commands).

## Anpassa automatisk import

> **New in Django 5.2**

Om du vill anpassa beteendet för automatisk import i hanteringskommandot [`shell`](/sv/6.0/ref/django-admin/#django-admin-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`*

```python
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()`](/sv/6.0/ref/urlresolvers/#django.urls.resolve) och [`reverse()`](/sv/6.0/ref/urlresolvers/#django.urls.reverse) till standardnamnområdet, som redan innehåller alla modeller från apparna som listas i [`INSTALLED_APPS`](/sv/6.0/ref/settings/#std-setting-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:

```console
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`](/sv/6.0/ref/django-admin/#cmdoption-shell-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
```
