---
title: "Bagaimana menyesuaikan perintah shell"
version: 6.0
locale: id
source: https://docs.djangoproject.com/id/6.0/howto/custom-shell/
canonical: https://djangodocs.dev/id/6.0/howto/custom-shell/
---
# Bagaimana menyesuaikan perintah `shell`

[`shell`](/id/6.0/ref/django-admin/#django-admin-shell) Django adalah lingkungan interaktif Python yang menyediakan akses ke model dan pengaturean, membuatnya berguna untuk pengujian kode, bereksperimen dengan permintaan, dan berinteraksi dengan data aplikasi.

Menyesuaikan perintah [`shell`](/id/6.0/ref/django-admin/#django-admin-shell) mengizinkan menambahkan kegunaan tambahan atau pra-muat modul khusus. Untuk melakukan ini, buat perintah pengelolaan baru yang mensubkelaskan `django.core.management.commands.shell.Command` dan menimpan perintah pengelolaan yang ada `shell`. Untuk rincian lebih, mengacu pada guide on [overriding commands](/id/6.0/howto/custom-management-commands/#overriding-commands).

## Penyesuaian impor otomatis

> **New in Django 5.2**

Untuk menyesuaikan perilaku impor otomatis dari perintah pengelolaan [`shell`](/id/6.0/ref/django-admin/#django-admin-shell), timpa metode `get_auto_imports()`. Metode ini harus mengembalikan urutan jalur impor untuk objek atau modul tersedia di aplikasi. Sebagai contoh:

*`polls/management/commands/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",
        ]
```

The customization above adds [`resolve()`](/id/6.0/ref/urlresolvers/#django.urls.resolve) and
[`reverse()`](/id/6.0/ref/urlresolvers/#django.urls.reverse) to the default namespace, which already includes
all models from the apps listed in [`INSTALLED_APPS`](/id/6.0/ref/settings/#std-setting-INSTALLED_APPS) plus what is
imported by default. These objects will be available in the `shell` without
requiring a manual import.

Menjalankan perintah penyesuaian `shell` ini dengan `verbosity=2` akan menampilkan:

```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**
>
> Automatic imports of common utilities, such as `django.conf.settings`,
> were added.

Jika perintah `shell` yang ditimpa menyertakan jalur yang tidak dapat diimpor, kesalahan-kesalahan ini ditampilkan ketika `verbosity` disetel menjadi `1` atau lebih tinggi. Impor ganda otomatis ditangani.

Catat bahwa impor otomatis dapat ditiadakan untuk sesi `shell` khusus menggunakan bendera [`--no-imports`](/id/6.0/ref/django-admin/#cmdoption-shell-no-imports) . Untuk meniadakan secara tetap impor otomatis, timpa `get_auto_imports()` untuk kembalian `None`:

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