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

[`shell`](/id/5.2/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/5.2/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/5.2/howto/custom-management-commands/#overriding-commands).

## Penyesuaian impor otomatis

> **New in Django 5.2**

Untuk menyesuaikan perilaku impor otomatis dari perintah pengelolaan [`shell`](/id/5.2/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",
        ]
```

Penyesuaian diatas menambahkan [`resolve()`](/id/5.2/ref/urlresolvers/#django.urls.resolve) dan [`reverse()`](/id/5.2/ref/urlresolvers/#django.urls.reverse) ke namespace awalan, yang sudah menyertakan semua models dari aplikasi terdaftar dalam [`INSTALLED_APPS`](/id/5.2/ref/settings/#std-setting-INSTALLED_APPS). Objek-objek ini akan tersedia dalam `shell` tanpa membutuhkan impor manual.

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

```console
8 objects imported automatically:

  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
```

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/5.2/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
```
