Membuat Custom Django Management Command Sendiri

Artikel ini membahas mengenai bagaimana cara membuat sendiri perintah yang bisa kita jalankan melalui file manage.py pada project berbasis Django. Berikut ini adalah poin-poin yang akan dibahas nanti :
  • Sekilas Tentang Django Management Commands
  • Membuat Django App (jika belum ada)
  • Menambahkan Custom Command ke Django App

Sekilas Tentang Django Management Commands

Bila anda sudah terbiasa atau mungkin sedang belajar Django, pasti anda sering menjalankan perintah melalui file manage.py misalnya seperti menjalankan perintah runserver , makemigrations , migrate , atau createsuperuser, dan lain-lain . Nah, perintah-perintah yang telah disebutkan tadi merupakan contoh dari Django Management Commands yang sudah ada dari bawaan Django-nya. Lalu, pernahkah anda terpikirkan untuk membuat perintah sendiri yang bisa dijalankan melalui file manage.py ? Jika anda menjawab ya, maka anda telah membaca artikel yang tepat. Hal ini dapat dimanfaatkan misal kita ingin menjalankan suatu proses diluar django, sebagai contoh misalnya jika kita ingin mengirimkan email ke subscriber, kita dapat membuat dan menjalankan commandnya melalui file manage.py . Oleh karena itu, kita dapat mengirim email tanpa harus menjalankan django, melainkan cukup melalui command line dengan file manage.py . Tentu masih banyak lagi penerapan django management command ini, silahkan lanjut ke halaman berikutnya untuk mulai masuk ke pembahasan inti.

Membuat Django App

Perintah-perintah yang ada di file manage.py dikelompokkan berdasarkan app-nya. Jadi anda dapat membuat command sendiri yang berkaitan dengan app tersebut, dalam praktik ini saya membuat sebuah app yang bernama " pengguna ". Jika memang anda sudah memiliki app dalam project django, langsung saja ke halaman selanjutnya untuk melihat tahap berikutnya.
$ python manage.py startapp pengguna
Perintah di atas akan menghasilkan folder baru dengan nama sesuai dengan nama app yang kita buat yang di dalamnya sudah berisi file-file python untuk membuat app.
Tahap selanjutnya adalah mendaftarkan app tersebut ke project django kita dengan cara menambahkan nama app yang kita buat tadi ke dalam daftar INSTALLED_APPS di file settings.py .

Menambahkan Custom Command ke Django App

Nah, langkah selanjutnya adalah masuk ke folder app yang tadi dibuat. Kemudian buat sebuah direktori baru bernama management , lalu di dalam direktori management buatlah lagi direktori baru dengan nama commands . Jangan lupa untuk membuatkan file __init__.py pada setiap folder yang dibuat barusan. Nah, sekarang anda dapat membuat file python dengan nama bebas di dalam direktori commands tadi. Setiap file ini nantilah yang mewakili setiap perintah yang ingin kita tambahkan ketika menjalankan perintah melalui file manage.py .
Dalam contoh ini, saya akan mencoba untuk membuat perintah yang dapat menampilkan daftar admin yang ada dalam project django tersebut. Langkah yang perlu diambil selanjutnya adalah membuat file dengan nama show_admin.py . Kira-kira beginilah jadinya struktur direktori yang baru saja kita buat beserta file pythonnya.

Lalu pada file show_admin.py yang kita buat tadi, isi dengan script berikut :
Poin penting dari script di atas adalah pada method handle , yap, di method tersebutlah proses terjadi ketika perintah dieksekusi. Dalam contoh script di atas, saya mencoba untuk melakukan query user yang merupakan superuser / admin, kemudian hasil dari query tadi saya iterasi untuk ditampilkan usernamenya satu per satu.
Sekarang mari kita coba untuk cek apakah perintah tersebut sudah muncul di manage.py dengan cara menjalankan perintah berikut untuk melihat daftar perintah yang tersedia.
$ python manage.py help
Maka akan muncul banyak sekali perintah yang tersedia yang dikelompokkan berdasarkan app-nya. Carilah perintah yang tadi anda buat, nama file python tadi adalah nama perintah anda misal seperti ini.

Nah, ternyata command yang saya tambahkan tadi telah muncul di daftar command manage.py . Kemudian kita coba untuk tes, apakah command yang baru saja kita buat bekerja dengan baik. Pastikan dalam project anda sudah ada user admin, jadi ketika perintah ini dirunning akan memunculkan daftar admin. Cara menjalankannya adalah sebagai berikut :
$ python manage.py show_admin
Berikut ini adalah hasilnya :
Page : 1 2 3 4

0 komentar