# Dokumentasi Django 5.2.8

# Bagaimana menyesuaikan perintah `shell`

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

## Penyesuaian impor otomatis

New in Django 5.2.

Untuk menyesuaikan perilaku impor otomatis dari perintah pengelolaan `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`

    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.

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

    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` . Untuk meniadakan secara tetap impor otomatis, timpa `get_auto_imports()` untuk kembalian `None`:

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