{"title":"How to create custom django-admin commands","version":"4.1","locale":"id","docname":"howto/custom-management-commands","url":"/id/4.1/howto/custom-management-commands/","canonical":"https://djangodocs.dev/id/4.1/howto/custom-management-commands/","summary":"Aplikasi dapat mendaftarkan tindakan mereka sendiri dengan manage.py . Sebagai contoh, anda mungkin ingin menambahkan sebuah tindakan manage.py untuk sebuah…","html":"<span id=\"how-to-create-custom-django-admin-commands\"></span><h1>How to create custom <code class=\"docutils literal notranslate\">django-admin</code> commands<a class=\"heading-anchor\" href=\"#module-django.core.management\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Aplikasi dapat mendaftarkan tindakan mereka sendiri dengan <code class=\"docutils literal notranslate\">manage.py</code>. Sebagai contoh, anda mungkin ingin menambahkan sebuah tindakan <code class=\"docutils literal notranslate\">manage.py</code> untuk sebuah aplikasi Django yang anda sedang sebarkan. Dalam dokumen ini, kami akan membangun sebuah penyesuaian perintah <code class=\"docutils literal notranslate\">closepoll</code> untuk aplikasi <code class=\"docutils literal notranslate\">polls</code> dari <a class=\"reference internal\" href=\"/id/4.1/intro/tutorial01/\"><span class=\"doc\">tutorial</span></a>.</p>\n<p>To do this, add a <code class=\"docutils literal notranslate\">management/commands</code> directory to the application. Django\nwill register a <code class=\"docutils literal notranslate\">manage.py</code> command for each Python module in that directory\nwhose name doesn't begin with an underscore. For example:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code>polls<span class=\"o\">/</span>\n    <span class=\"fm\">__init__</span><span class=\"o\">.</span>py\n    models<span class=\"o\">.</span>py\n    management<span class=\"o\">/</span>\n        <span class=\"fm\">__init__</span><span class=\"o\">.</span>py\n        commands<span class=\"o\">/</span>\n            <span class=\"fm\">__init__</span><span class=\"o\">.</span>py\n            _private<span class=\"o\">.</span>py\n            closepoll<span class=\"o\">.</span>py\n    tests<span class=\"o\">.</span>py\n    views<span class=\"o\">.</span>py\n</code></pre></div>\n<p>Dalam contoh ini, perintah <code class=\"docutils literal notranslate\">closepoll</code> akan dibuat tersedia pada setiap proyek yang menyertakan aplikasi <code class=\"docutils literal notranslate\">polls</code> dalam <a class=\"reference internal\" href=\"/id/4.1/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\">INSTALLED_APPS</code></a>.</p>\n<p>Modul <code class=\"docutils literal notranslate\">_private.py</code> tidak akan tersedia sebagai perintah pengelolaan.</p>\n<p>Modul <code class=\"docutils literal notranslate\">closepoll.py</code> mempunyai hanya satu persyaratan -- itu harus ditentukan sebuah kelas <code class=\"docutils literal notranslate\">Command</code> yang memperpanjang <a class=\"reference internal\" href=\"#django.core.management.BaseCommand\" title=\"django.core.management.BaseCommand\"><code class=\"xref py py-class docutils literal notranslate\">BaseCommand</code></a> atau satu dari <a class=\"reference internal\" href=\"#ref-basecommand-subclasses\"><span class=\"std std-ref\">subclasses</span></a> nya.</p>\n<aside class=\"admonition-standalone-scripts admonition\" role=\"note\">\n<p class=\"admonition-title\">Tulisan berdiri sendiri</p>\n<p>Penyesuaian pengelolaan perintah adalah khususnya berguna untuk menjalankan tulisan berdiri sendiri atau untuk tulisan yang secara berkala dijalankan dari panel kendali UNIX crontab atau Windows  scheduled tasks.</p>\n</aside>\n<p>Untuk menerapkan perintah, sunting <code class=\"docutils literal notranslate\">polls/management/commands/closepoll.py</code> untuk kelihatan seperti ini:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.core.management.base</span> <span class=\"kn\">import</span> BaseCommand<span class=\"p\">,</span> CommandError\n<span class=\"kn\">from</span> <span class=\"nn\">polls.models</span> <span class=\"kn\">import</span> Question <span class=\"k\">as</span> Poll\n\n<span class=\"k\">class</span> <span class=\"nc\">Command</span><span class=\"p\">(</span>BaseCommand<span class=\"p\">):</span>\n    help <span class=\"o\">=</span> <span class=\"s1\">&#39;Closes the specified poll for voting&#39;</span>\n\n    <span class=\"k\">def</span> <span class=\"nf\">add_arguments</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> parser<span class=\"p\">):</span>\n        parser<span class=\"o\">.</span>add_argument<span class=\"p\">(</span><span class=\"s1\">&#39;poll_ids&#39;</span><span class=\"p\">,</span> nargs<span class=\"o\">=</span><span class=\"s1\">&#39;+&#39;</span><span class=\"p\">,</span> <span class=\"nb\">type</span><span class=\"o\">=</span><span class=\"nb\">int</span><span class=\"p\">)</span>\n\n    <span class=\"k\">def</span> <span class=\"nf\">handle</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"o\">*</span>args<span class=\"p\">,</span> <span class=\"o\">**</span>options<span class=\"p\">):</span>\n        <span class=\"k\">for</span> poll_id <span class=\"ow\">in</span> options<span class=\"p\">[</span><span class=\"s1\">&#39;poll_ids&#39;</span><span class=\"p\">]:</span>\n            <span class=\"k\">try</span><span class=\"p\">:</span>\n                poll <span class=\"o\">=</span> Poll<span class=\"o\">.</span>objects<span class=\"o\">.</span>get<span class=\"p\">(</span>pk<span class=\"o\">=</span>poll_id<span class=\"p\">)</span>\n            <span class=\"k\">except</span> Poll<span class=\"o\">.</span>DoesNotExist<span class=\"p\">:</span>\n                <span class=\"k\">raise</span> CommandError<span class=\"p\">(</span><span class=\"s1\">&#39;Poll &quot;</span><span class=\"si\">%s</span><span class=\"s1\">&quot; does not exist&#39;</span> <span class=\"o\">%</span> poll_id<span class=\"p\">)</span>\n\n            poll<span class=\"o\">.</span>opened <span class=\"o\">=</span> <span class=\"kc\">False</span>\n            poll<span class=\"o\">.</span>save<span class=\"p\">()</span>\n\n            <span class=\"bp\">self</span><span class=\"o\">.</span>stdout<span class=\"o\">.</span>write<span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"o\">.</span>style<span class=\"o\">.</span>SUCCESS<span class=\"p\">(</span><span class=\"s1\">&#39;Successfully closed poll &quot;</span><span class=\"si\">%s</span><span class=\"s1\">&quot;&#39;</span> <span class=\"o\">%</span> poll_id<span class=\"p\">))</span>\n</code></pre></div>\n<aside class=\"admonition admonition-note\" id=\"management-commands-output\" role=\"note\">\n<p class=\"admonition-title\">Catatan</p>\n<p>Ketika anda menggunakan pengelolaan perintah dan berharap untuk menyediakan keluaran tempat tuts, anda harus menulis ke <code class=\"docutils literal notranslate\">self.stdout</code> dan <code class=\"docutils literal notranslate\">self.stderr</code>, daripada mencetak ke <code class=\"docutils literal notranslate\">stdout</code> and <code class=\"docutils literal notranslate\">stderr</code> secara langsung. Dengan menggunakan proxi ini, dia menjadi lebih mudah untuk mencoba penyesuaian perintah anda. Catat juga bahwa anda tidak butuh mengakhiri pesan dengan karakter baris baru, dia akan ditambahkan otomatis, meskipun anda menentukan parameter <code class=\"docutils literal notranslate\">ending</code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"bp\">self</span><span class=\"o\">.</span>stdout<span class=\"o\">.</span>write<span class=\"p\">(</span><span class=\"s2\">&quot;Unterminated line&quot;</span><span class=\"p\">,</span> ending<span class=\"o\">=</span><span class=\"s1\">&#39;&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n</aside>\n<p>Perintah baru penyesuaian dapat dipanggil menggunakan <code class=\"docutils literal notranslate\">python manage.py closepoll &lt;poll_ids&gt;</code>.</p>\n<p>Metode <code class=\"docutils literal notranslate\">handle()</code> mengambil satu atau lebih <code class=\"docutils literal notranslate\">poll_ids</code> dan mensetel <code class=\"docutils literal notranslate\">poll.opened</code> menjadi <code class=\"docutils literal notranslate\">False</code> untuk masing-masing. Jika pengguna mereferensikan jajak pendapat yang tidak ada, sebuah <a class=\"reference internal\" href=\"#django.core.management.CommandError\" title=\"django.core.management.CommandError\"><code class=\"xref py py-exc docutils literal notranslate\">CommandError</code></a> dimunculkan. Atribut <code class=\"docutils literal notranslate\">poll.opened</code> tidak ada dalam <a class=\"reference internal\" href=\"/id/4.1/intro/tutorial02/\"><span class=\"doc\">tutorial</span></a> dan telah ditambahkan pada <code class=\"docutils literal notranslate\">polls.models.Question</code> untuk contoh ini.</p>\n<section id=\"accepting-optional-arguments\">\n<span id=\"custom-commands-options\"></span><h2>Menerima argumen pilihan<a class=\"heading-anchor\" href=\"#accepting-optional-arguments\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p><code class=\"docutils literal notranslate\">closepoll</code> yang sama dapat dengan mudah dirubah untuk menghapus jejak pendapat yang diberikan daripada menutupnya dengan menerima tambahan pilihan baris perintah. Penyesuaian pilihan ini dapat ditambahkan dalam cara <a class=\"reference internal\" href=\"#django.core.management.BaseCommand.add_arguments\" title=\"django.core.management.BaseCommand.add_arguments\"><code class=\"xref py py-meth docutils literal notranslate\">add_arguments()</code></a> seperti ini:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span> <span class=\"nc\">Command</span><span class=\"p\">(</span>BaseCommand<span class=\"p\">):</span>\n    <span class=\"k\">def</span> <span class=\"nf\">add_arguments</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> parser<span class=\"p\">):</span>\n        <span class=\"c1\"># Positional arguments</span>\n        parser<span class=\"o\">.</span>add_argument<span class=\"p\">(</span><span class=\"s1\">&#39;poll_ids&#39;</span><span class=\"p\">,</span> nargs<span class=\"o\">=</span><span class=\"s1\">&#39;+&#39;</span><span class=\"p\">,</span> <span class=\"nb\">type</span><span class=\"o\">=</span><span class=\"nb\">int</span><span class=\"p\">)</span>\n\n        <span class=\"c1\"># Named (optional) arguments</span>\n        parser<span class=\"o\">.</span>add_argument<span class=\"p\">(</span>\n            <span class=\"s1\">&#39;--delete&#39;</span><span class=\"p\">,</span>\n            action<span class=\"o\">=</span><span class=\"s1\">&#39;store_true&#39;</span><span class=\"p\">,</span>\n            help<span class=\"o\">=</span><span class=\"s1\">&#39;Delete poll instead of closing it&#39;</span><span class=\"p\">,</span>\n        <span class=\"p\">)</span>\n\n    <span class=\"k\">def</span> <span class=\"nf\">handle</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"o\">*</span>args<span class=\"p\">,</span> <span class=\"o\">**</span>options<span class=\"p\">):</span>\n        <span class=\"c1\"># ...</span>\n        <span class=\"k\">if</span> options<span class=\"p\">[</span><span class=\"s1\">&#39;delete&#39;</span><span class=\"p\">]:</span>\n            poll<span class=\"o\">.</span>delete<span class=\"p\">()</span>\n        <span class=\"c1\"># ...</span>\n</code></pre></div>\n<p>Pilihan (<code class=\"docutils literal notranslate\">delete</code> dalam contoh kami) tersedia dalam pilihan parameter perintah dari cara penanganan. Lihat dokumentasi Python <a class=\"reference external\" href=\"https://docs.python.org/3/library/argparse.html#module-argparse\" title=\"(di Python v3.14)\"><code class=\"xref py py-mod docutils literal notranslate\">argparse</code></a> untuk lebih tentang penggunaan <code class=\"docutils literal notranslate\">add_argument</code>.</p>\n<p>Dalam tambahan untuk dapat menambahkan penyesuaian pilihan baris perintah, semua <a class=\"reference internal\" href=\"/id/4.1/ref/django-admin/\"><span class=\"doc\">management commands</span></a> dapat menerima beberapa pilihan awal seperti <a class=\"reference internal\" href=\"/id/4.1/ref/django-admin/#cmdoption-verbosity\"><code class=\"xref std std-option docutils literal notranslate\">--verbosity</code></a> dan <a class=\"reference internal\" href=\"/id/4.1/ref/django-admin/#cmdoption-traceback\"><code class=\"xref std std-option docutils literal notranslate\">--traceback</code></a>.</p>\n</section>\n<section id=\"management-commands-and-locales\">\n<span id=\"id1\"></span><h2>Pengelolaan perintah dan lokal<a class=\"heading-anchor\" href=\"#management-commands-and-locales\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Secara awalan, perintah pengelolaan dijalankan dengan lokal aktif saat ini.</p>\n<p>Jika, untuk beberapa alasan, perintah pengelolaan penyesuaian anda harus berjalan tanpa lokal aktif (sebagai contoh, untuk menghindari isi diterjemahkan dari menjadi dimasukkan kedalam basisdata), non aktifkan terjemahan menggunakan decorator <code class=\"docutils literal notranslate\">&#64;no_translations</code> pada metode <a class=\"reference internal\" href=\"#django.core.management.BaseCommand.handle\" title=\"django.core.management.BaseCommand.handle\"><code class=\"xref py py-meth docutils literal notranslate\">handle()</code></a> anda:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.core.management.base</span> <span class=\"kn\">import</span> BaseCommand<span class=\"p\">,</span> no_translations\n\n<span class=\"k\">class</span> <span class=\"nc\">Command</span><span class=\"p\">(</span>BaseCommand<span class=\"p\">):</span>\n    <span class=\"o\">...</span>\n\n    <span class=\"nd\">@no_translations</span>\n    <span class=\"k\">def</span> <span class=\"nf\">handle</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"o\">*</span>args<span class=\"p\">,</span> <span class=\"o\">**</span>options<span class=\"p\">):</span>\n        <span class=\"o\">...</span>\n</code></pre></div>\n<p>Sejak penonaktifan terjemahan membutuhkan akses untuk mengkonfigurasi pengaturan, decorator tidak dapat digunakan untuk perintah yang bekerja tanpa pengaturan yang dikonfigurasikan.</p>\n</section>\n<section id=\"testing\">\n<h2>Pengujian<a class=\"heading-anchor\" href=\"#testing\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Informasi pada bagaimana untuk mencoba penyesuaian pengelolaan perintah dapat ditemukan dalam <a class=\"reference internal\" href=\"/id/4.1/topics/testing/tools/#topics-testing-management-commands\"><span class=\"std std-ref\">dokumen percobaan</span></a>.</p>\n</section>\n<section id=\"overriding-commands\">\n<h2>Menimpa perintah<a class=\"heading-anchor\" href=\"#overriding-commands\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Django mendaftarkan perintah siap-pakai dan kemudian mencari untuk perintah dalam <a class=\"reference internal\" href=\"/id/4.1/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\">INSTALLED_APPS</code></a> secara memutar. Selama pencarian, jika sebuah nama perintah menggandakan sebuah perintah sudah terdaftar, perintah baru yang ditemukan ditimpa dahulu.</p>\n<p>Dengan kata lain, untuk menimpa sebuah perintah, perintah baru harus memiliki nama sama dan aplikasinya harus sebelum menimpa aplikasi perintah dalam <a class=\"reference internal\" href=\"/id/4.1/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\">INSTALLED_APPS</code></a>.</p>\n<p>Perintah pengelolaan dari aplikasi pihak-ketiga yang telah tidak sengaja ditimpa dapat dibuat tersedia dibawah sebuah nama baru dengan membuat perintah baru di satu dari aplikasi proyek anda (diurutkan sebelum aplikasi pihak-ketiga dalam <a class=\"reference internal\" href=\"/id/4.1/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\">INSTALLED_APPS</code></a>) yang mengimpor <code class=\"docutils literal notranslate\">Command</code> dari perintah ditimpa.</p>\n</section>\n<section id=\"command-objects\">\n<h2>Obyek perintah<a class=\"heading-anchor\" href=\"#command-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.management.BaseCommand\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">BaseCommand</span><a class=\"heading-anchor\" href=\"#django.core.management.BaseCommand\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Kelas dasar dari mana semua pengelolaan perintah akhirnya berasal.</p>\n<p>Gunakan kelas ini jika anda ingin mengakses semua mekanisme yang mengurai argumen baris perintah dan bekerja kode apa untuk dipanggil dalam tanggapan; jika anda tidak butuh merubah kebiasaan apapun, pertimbangkan menggunakan satu dari <a class=\"reference internal\" href=\"#ref-basecommand-subclasses\"><span class=\"std std-ref\">subclasses</span></a> nya.</p>\n<p>Mensubkelaskan kelas <a class=\"reference internal\" href=\"#django.core.management.BaseCommand\" title=\"django.core.management.BaseCommand\"><code class=\"xref py py-class docutils literal notranslate\">BaseCommand</code></a> membutuhkan bahwa anda menerapkan cara <a class=\"reference internal\" href=\"#django.core.management.BaseCommand.handle\" title=\"django.core.management.BaseCommand.handle\"><code class=\"xref py py-meth docutils literal notranslate\">handle()</code></a>.</p>\n<section id=\"attributes\">\n<h3>Atribut<a class=\"heading-anchor\" href=\"#attributes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Semua atribut dapat di setel dalam kelas turunan anda dan dapat digunakan dalam <a class=\"reference internal\" href=\"#ref-basecommand-subclasses\"><span class=\"std std-ref\">subclasses</span></a> <a class=\"reference internal\" href=\"#django.core.management.BaseCommand\" title=\"django.core.management.BaseCommand\"><code class=\"xref py py-class docutils literal notranslate\">BaseCommand</code></a>.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.management.BaseCommand.help\">\n<span class=\"sig-prename descclassname\">BaseCommand.</span><span class=\"sig-name descname\">help</span><a class=\"heading-anchor\" href=\"#django.core.management.BaseCommand.help\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Deskripsi singkat dari perintah, dimana akan ditampilkan di pesan bantuan ketika pengguna eksekusi perintah <code class=\"docutils literal notranslate\">python manage.py help &lt;command&gt;</code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.management.BaseCommand.missing_args_message\">\n<span class=\"sig-prename descclassname\">BaseCommand.</span><span class=\"sig-name descname\">missing_args_message</span><a class=\"heading-anchor\" href=\"#django.core.management.BaseCommand.missing_args_message\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Jika perintah anda menentukan argumen penempatan wajib, anda dapat menyesuaikan pesan kesalahan yang dikembalikan dalam kasus argumen yang hilang. Awalnya adalah keluaran oleh <a class=\"reference external\" href=\"https://docs.python.org/3/library/argparse.html#module-argparse\" title=\"(di Python v3.14)\"><code class=\"xref py py-mod docutils literal notranslate\">argparse</code></a> (&quot;terlalu sedikit argumen&quot;).</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.management.BaseCommand.output_transaction\">\n<span class=\"sig-prename descclassname\">BaseCommand.</span><span class=\"sig-name descname\">output_transaction</span><a class=\"heading-anchor\" href=\"#django.core.management.BaseCommand.output_transaction\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sebuah boolean menunjukkan apakah perintah keluaran pernyataan SQL; jika <code class=\"docutils literal notranslate\">True</code>, keluaran akan otomatis dibungkus dengan <code class=\"docutils literal notranslate\">BEGIN;</code> dan <code class=\"docutils literal notranslate\">COMMIT;</code>. Nilai awal adalah <code class=\"docutils literal notranslate\">False</code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.management.BaseCommand.requires_migrations_checks\">\n<span class=\"sig-prename descclassname\">BaseCommand.</span><span class=\"sig-name descname\">requires_migrations_checks</span><a class=\"heading-anchor\" href=\"#django.core.management.BaseCommand.requires_migrations_checks\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sebuah boolean; jika <code class=\"docutils literal notranslate\">True</code>, memerintahkan mencetak sebuah peringatan jika pengaturan perpindahan pada cakram tidak cocok dengan perpindahan di basisdata. Sebuah peringatan tidak mencegah perintah dari penjalanan. Nilai awal adalah <code class=\"docutils literal notranslate\">False</code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.management.BaseCommand.requires_system_checks\">\n<span class=\"sig-prename descclassname\">BaseCommand.</span><span class=\"sig-name descname\">requires_system_checks</span><a class=\"heading-anchor\" href=\"#django.core.management.BaseCommand.requires_system_checks\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A list or tuple of tags, e.g. <code class=\"docutils literal notranslate\">[Tags.staticfiles, Tags.models]</code>. System\nchecks <a class=\"reference internal\" href=\"/id/4.1/topics/checks/#registering-labeling-checks\"><span class=\"std std-ref\">registered in the chosen tags</span></a>\nwill be checked for errors prior to executing the command. The value\n<code class=\"docutils literal notranslate\">'__all__'</code> can be used to specify that all system checks should be\nperformed. Default value is <code class=\"docutils literal notranslate\">'__all__'</code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.management.BaseCommand.style\">\n<span class=\"sig-prename descclassname\">BaseCommand.</span><span class=\"sig-name descname\">style</span><a class=\"heading-anchor\" href=\"#django.core.management.BaseCommand.style\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sebuah atribut instance yang membantu membuat keluaran bewarna ketika menulis ke <code class=\"docutils literal notranslate\">stdout</code> atau <code class=\"docutils literal notranslate\">stderr</code>. Sebagai contoh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"bp\">self</span><span class=\"o\">.</span>stdout<span class=\"o\">.</span>write<span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"o\">.</span>style<span class=\"o\">.</span>SUCCESS<span class=\"p\">(</span><span class=\"s1\">&#39;...&#39;</span><span class=\"p\">))</span>\n</code></pre></div>\n<p>Lihat <a class=\"reference internal\" href=\"/id/4.1/ref/django-admin/#syntax-coloring\"><span class=\"std std-ref\">Pewarnaan sintaksis</span></a> untuk mempelajari bagaimana merubah papan warna dan melihat gaya tersedia (gunakan versi huruf besar dari &quot;roles&quot; yang digambarkan dalam bagian itu).</p>\n<p>Jika anda melewati pilihan <a class=\"reference internal\" href=\"/id/4.1/ref/django-admin/#cmdoption-no-color\"><code class=\"xref std std-option docutils literal notranslate\">--no-color</code></a> ketika menjalankan perintah anda, semua pemanggilan <code class=\"docutils literal notranslate\">self.style()</code> akan mengembalikan deretan karakter asli tidak bewarna.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.management.BaseCommand.suppressed_base_arguments\">\n<span class=\"sig-prename descclassname\">BaseCommand.</span><span class=\"sig-name descname\">suppressed_base_arguments</span><a class=\"heading-anchor\" href=\"#django.core.management.BaseCommand.suppressed_base_arguments\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-added\" data-version=\"4.0\" role=\"note\">\n<p class=\"version-note-title\">New in Django 4.0</p></aside>\n<p>The default command options to suppress in the help output. This should be\na set of option names (e.g. <code class=\"docutils literal notranslate\">'--verbosity'</code>). The default values for the\nsuppressed options are still passed.</p>\n</dd></dl>\n\n</section>\n<section id=\"methods\">\n<h3>Cara<a class=\"heading-anchor\" href=\"#methods\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><a class=\"reference internal\" href=\"#django.core.management.BaseCommand\" title=\"django.core.management.BaseCommand\"><code class=\"xref py py-class docutils literal notranslate\">BaseCommand</code></a> mempunyai beberapa cara yang dapat dikesampingkan tetapi hanya cara <a class=\"reference internal\" href=\"#django.core.management.BaseCommand.handle\" title=\"django.core.management.BaseCommand.handle\"><code class=\"xref py py-meth docutils literal notranslate\">handle()</code></a> harus diterapkan.</p>\n<aside class=\"admonition-implementing-a-constructor-in-a-subclass admonition\" role=\"note\">\n<p class=\"admonition-title\">Menerapkan constructor dalam subkelas</p>\n<p>Jika anda menerapkan <code class=\"docutils literal notranslate\">__init__</code> dalam subkelas anda dari <a class=\"reference internal\" href=\"#django.core.management.BaseCommand\" title=\"django.core.management.BaseCommand\"><code class=\"xref py py-class docutils literal notranslate\">BaseCommand</code></a>, anda harus memanggil <code class=\"docutils literal notranslate\">__init__</code> dari :class:<a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>BaseCommand:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span> <span class=\"nc\">Command</span><span class=\"p\">(</span>BaseCommand<span class=\"p\">):</span>\n    <span class=\"k\">def</span> <span class=\"fm\">__init__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"o\">*</span>args<span class=\"p\">,</span> <span class=\"o\">**</span>kwargs<span class=\"p\">):</span>\n        <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"fm\">__init__</span><span class=\"p\">(</span><span class=\"o\">*</span>args<span class=\"p\">,</span> <span class=\"o\">**</span>kwargs<span class=\"p\">)</span>\n        <span class=\"c1\"># ...</span>\n</code></pre></div>\n</aside>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.management.BaseCommand.create_parser\">\n<span class=\"sig-prename descclassname\">BaseCommand.</span><span class=\"sig-name descname\">create_parser</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">prog_name</em>, <em class=\"sig-param\">subcommand</em>, <em class=\"sig-param\"><span class=\"o\">**</span>kwargs</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.management.BaseCommand.create_parser\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Mengembalikan instance <code class=\"docutils literal notranslate\">CommandParser</code>, yaitu sebuah subkelas <a class=\"reference external\" href=\"https://docs.python.org/3/library/argparse.html#argparse.ArgumentParser\" title=\"(di Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\">ArgumentParser</code></a> dengan sedikit penyesuaian untuk Django.</p>\n<p>Anda dapat menyesuaikan instance dengan menimpa metode ini dan memanggil <code class=\"docutils literal notranslate\">super()</code> dengan <code class=\"docutils literal notranslate\">kwargs</code> dari parameter <a class=\"reference external\" href=\"https://docs.python.org/3/library/argparse.html#argparse.ArgumentParser\" title=\"(di Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\">ArgumentParser</code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.management.BaseCommand.add_arguments\">\n<span class=\"sig-prename descclassname\">BaseCommand.</span><span class=\"sig-name descname\">add_arguments</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">parser</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.management.BaseCommand.add_arguments\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Titik masukan untuk menambahkan pengurai argumen untuk menangani argumen baris perintah dilewati ke perintah. Penyesuaian perintah harus menimpa metode ini untuk menambah kedua argumen penempatan dan pilihan yang diterima oleh perintah. Memanggil <code class=\"docutils literal notranslate\">super()</code> tidak dibutuhkan ketika pengsubkelasan secara langsung <code class=\"docutils literal notranslate\">BaseCommand</code>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.management.BaseCommand.get_version\">\n<span class=\"sig-prename descclassname\">BaseCommand.</span><span class=\"sig-name descname\">get_version</span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.management.BaseCommand.get_version\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Mengembalikan versi Django, yang seharusnya benar untuk semua perintah Django siap pakai. Perintah pasokan-pengguna dapat menimpa metode ini untuk mengembalikan versi mereka sendiri.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.management.BaseCommand.execute\">\n<span class=\"sig-prename descclassname\">BaseCommand.</span><span class=\"sig-name descname\">execute</span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\">*</span>args</em>, <em class=\"sig-param\"><span class=\"o\">**</span>options</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.management.BaseCommand.execute\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Tries to execute this command, performing system checks if needed (as\ncontrolled by the <a class=\"reference internal\" href=\"#django.core.management.BaseCommand.requires_system_checks\" title=\"django.core.management.BaseCommand.requires_system_checks\"><code class=\"xref py py-attr docutils literal notranslate\">requires_system_checks</code></a> attribute). If the command\nraises a <a class=\"reference internal\" href=\"#django.core.management.CommandError\" title=\"django.core.management.CommandError\"><code class=\"xref py py-exc docutils literal notranslate\">CommandError</code></a>, it's intercepted and printed to <code class=\"docutils literal notranslate\">stderr</code>.</p>\n</dd></dl>\n\n<aside class=\"admonition-calling-a-management-command-in-your-code admonition\" role=\"note\">\n<p class=\"admonition-title\">Memanggil perintah pengelolaan di kode anda</p>\n<p><code class=\"docutils literal notranslate\">execute()</code> jangan dipanggil secara langsung dari kode anda untuk menjalankan sebuah perintah. Lebih baik gunakan <a class=\"reference internal\" href=\"/id/4.1/ref/django-admin/#django.core.management.call_command\" title=\"django.core.management.call_command\"><code class=\"xref py py-func docutils literal notranslate\">call_command()</code></a>.</p>\n</aside>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.management.BaseCommand.handle\">\n<span class=\"sig-prename descclassname\">BaseCommand.</span><span class=\"sig-name descname\">handle</span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\">*</span>args</em>, <em class=\"sig-param\"><span class=\"o\">**</span>options</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.management.BaseCommand.handle\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Logika sebenarnya dari perintah. Subkelas harus menerapkan cara ini.</p>\n<p>Itu mungkin mengembalikan sebuah string yang akan dicetak pada <code class=\"docutils literal notranslate\">stdout</code> (dibungkus oleh <code class=\"docutils literal notranslate\">BEGIN;</code> dan <code class=\"docutils literal notranslate\">COMMIT;</code> jika <a class=\"reference internal\" href=\"#django.core.management.BaseCommand.output_transaction\" title=\"django.core.management.BaseCommand.output_transaction\"><code class=\"xref py py-attr docutils literal notranslate\">output_transaction</code></a> adalah <code class=\"docutils literal notranslate\">True</code>).</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.management.BaseCommand.check\">\n<span class=\"sig-prename descclassname\">BaseCommand.</span><span class=\"sig-name descname\">check</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">app_configs<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">tags<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">display_num_errors<span class=\"o\">=</span><span class=\"default_value\">False</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.management.BaseCommand.check\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Uses the system check framework to inspect the entire Django project for\npotential problems. Serious problems are raised as a <a class=\"reference internal\" href=\"#django.core.management.CommandError\" title=\"django.core.management.CommandError\"><code class=\"xref py py-exc docutils literal notranslate\">CommandError</code></a>;\nwarnings are output to <code class=\"docutils literal notranslate\">stderr</code>; minor notifications are output to\n<code class=\"docutils literal notranslate\">stdout</code>.</p>\n<p>Jika <code class=\"docutils literal notranslate\">app_configs</code> dan <code class=\"docutils literal notranslate\">tags</code> keduanya <code class=\"docutils literal notranslate\">None</code>, semua pemeriksaan sistem dilakukan. <code class=\"docutils literal notranslate\">tags</code> dapat menjadi daftar dari etiket pemeriksaan, seperti <code class=\"docutils literal notranslate\">compatibility</code> atau <code class=\"docutils literal notranslate\">models</code>.</p>\n</dd></dl>\n\n</section>\n<section id=\"basecommand-subclasses\">\n<span id=\"ref-basecommand-subclasses\"></span><h3>Subkelas <code class=\"docutils literal notranslate\">BaseCommand</code><a class=\"heading-anchor\" href=\"#basecommand-subclasses\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.management.AppCommand\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">AppCommand</span><a class=\"heading-anchor\" href=\"#django.core.management.AppCommand\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Sebuah pengelolaan perintah yang mengambil satu atau lebih label aplikasi terpasang sebagai argumen, dan melakukan sesuatu dengan masing-masing dari mereka.</p>\n<p>Daripada menerapkan <a class=\"reference internal\" href=\"#django.core.management.BaseCommand.handle\" title=\"django.core.management.BaseCommand.handle\"><code class=\"xref py py-meth docutils literal notranslate\">handle()</code></a>,  subkelas harus menerapkan <a class=\"reference internal\" href=\"#django.core.management.AppCommand.handle_app_config\" title=\"django.core.management.AppCommand.handle_app_config\"><code class=\"xref py py-meth docutils literal notranslate\">handle_app_config()</code></a>, yang akan dipanggil sekali untuk setiap aplikasi.</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.management.AppCommand.handle_app_config\">\n<span class=\"sig-prename descclassname\">AppCommand.</span><span class=\"sig-name descname\">handle_app_config</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">app_config</em>, <em class=\"sig-param\"><span class=\"o\">**</span>options</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.management.AppCommand.handle_app_config\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Melakukan tindakan perintah untuk <code class=\"docutils literal notranslate\">app_config</code>, yang akan menjadi sebuah instance <a class=\"reference internal\" href=\"/id/4.1/ref/applications/#django.apps.AppConfig\" title=\"django.apps.AppConfig\"><code class=\"xref py py-class docutils literal notranslate\">AppConfig</code></a> terhubung ke sebuah label aplikasi yang diberikan pada baris perintah.</p>\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.management.LabelCommand\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">LabelCommand</span><a class=\"heading-anchor\" href=\"#django.core.management.LabelCommand\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Sebuah pengelolaan perintah yang mengambil satu atau lebih argumen (label) yang berubah-ubah pada baris perintah, dan melakukan sesuatu dengan masing-masing dari mereka.</p>\n<p>Daripada menerapkan <a class=\"reference internal\" href=\"#django.core.management.BaseCommand.handle\" title=\"django.core.management.BaseCommand.handle\"><code class=\"xref py py-meth docutils literal notranslate\">handle()</code></a>,  subkelas harus menerapkan <a class=\"reference internal\" href=\"#django.core.management.LabelCommand.handle_label\" title=\"django.core.management.LabelCommand.handle_label\"><code class=\"xref py py-meth docutils literal notranslate\">handle_label()</code></a>, yang akan dipanggil sekali untuk setiap label.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.management.LabelCommand.label\">\n<span class=\"sig-prename descclassname\">LabelCommand.</span><span class=\"sig-name descname\">label</span><a class=\"heading-anchor\" href=\"#django.core.management.LabelCommand.label\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sebuah string menggambarkan argumenberubah-ubah dilewatkan ke perintah. String digunakan dalam penggunaan teks dan pesan kesalahan dari perintah. Awalan pada <code class=\"docutils literal notranslate\">'label'</code>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.management.LabelCommand.handle_label\">\n<span class=\"sig-prename descclassname\">LabelCommand.</span><span class=\"sig-name descname\">handle_label</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">label</em>, <em class=\"sig-param\"><span class=\"o\">**</span>options</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.management.LabelCommand.handle_label\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Melakukan tindakan perintah untuk <code class=\"docutils literal notranslate\">label</code>, yang akan menjadi deretan karakter seperti yang diberikan pada baris perintah.</p>\n</dd></dl>\n\n</section>\n<section id=\"command-exceptions\">\n<h3>Perintah pengecualian<a class=\"heading-anchor\" href=\"#command-exceptions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py exception\">\n<dt class=\"sig sig-object py\" id=\"django.core.management.CommandError\">\n<em class=\"property\"><span class=\"k\">exception</span> </em><span class=\"sig-name descname\">CommandError</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">returncode<span class=\"o\">=</span><span class=\"default_value\">1</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.management.CommandError\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Kelas pengecualian mengindikasikan sebuah masalah selama menjalankan perintah pengelolaan.</p>\n<p>If this exception is raised during the execution of a management command from a\ncommand line console, it will be caught and turned into a nicely-printed error\nmessage to the appropriate output stream (i.e., <code class=\"docutils literal notranslate\">stderr</code>); as a result,\nraising this exception (with a sensible description of the error) is the\npreferred way to indicate that something has gone wrong in the execution of a\ncommand. It accepts the optional <code class=\"docutils literal notranslate\">returncode</code> argument to customize the exit\nstatus for the management command to exit with, using <a class=\"reference external\" href=\"https://docs.python.org/3/library/sys.html#sys.exit\" title=\"(di Python v3.14)\"><code class=\"xref py py-func docutils literal notranslate\">sys.exit()</code></a>.</p>\n<p>Jika sebuah pengelolaan perintah dipanggil dari kode melalui <a class=\"reference internal\" href=\"/id/4.1/ref/django-admin/#django.core.management.call_command\" title=\"django.core.management.call_command\"><code class=\"xref py py-func docutils literal notranslate\">call_command()</code></a>, itu terserah kamu untuk menangkap pengecualian ketika dibutuhkan.</p>\n</section>\n</section>","rootId":"module-django.core.management","toc":[{"title":"Menerima argumen pilihan","anchor":"accepting-optional-arguments","children":[]},{"title":"Pengelolaan perintah dan lokal","anchor":"management-commands-and-locales","children":[]},{"title":"Pengujian","anchor":"testing","children":[]},{"title":"Menimpa perintah","anchor":"overriding-commands","children":[]},{"title":"Obyek perintah","anchor":"command-objects","children":[{"title":"Atribut","anchor":"attributes","children":[]},{"title":"Cara","anchor":"methods","children":[]},{"title":"Subkelas BaseCommand","anchor":"basecommand-subclasses","children":[]},{"title":"Perintah pengecualian","anchor":"command-exceptions","children":[]}]}],"breadcrumbs":[{"docname":"howto/index","title":"Panduan \"Bagaimana\"","url":"/id/4.1/howto/"}],"prev":{"docname":"howto/csrf","title":"How to use Django's CSRF protection","url":"/id/4.1/howto/csrf/"},"next":{"docname":"howto/custom-model-fields","title":"How to create custom model fields","url":"/id/4.1/howto/custom-model-fields/"},"formats":{"html":"/id/4.1/howto/custom-management-commands/","markdown":"/id/4.1/howto/custom-management-commands.md","json":"/id/4.1/howto/custom-management-commands.json"},"source":"https://github.com/django/django/blob/stable/4.1.x/docs/howto/custom-management-commands.txt","official":"https://docs.djangoproject.com/id/4.1/howto/custom-management-commands/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10","1.9"],"inLocales":["en","zh-hans","fr","ja","id","it","pt-br","ko","es","el","pl"]}