{"title":"Sinyal","version":"6.0","locale":"id","docname":"ref/signals","url":"/id/6.0/ref/signals/","canonical":"https://djangodocs.dev/id/6.0/ref/signals/","summary":"Sebuah daftar dari semua sinyal yang Django kirim. Semua sinyal siap-pakai dikirim menggunakan metode send() . Lihat juga Lihat dokumentasi pada signal dispatcher…","html":"<h1>Sinyal<a class=\"heading-anchor\" href=\"#signals\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Sebuah daftar dari semua sinyal yang Django kirim. Semua sinyal siap-pakai dikirim menggunakan metode <a class=\"reference internal\" href=\"/id/6.0/topics/signals/#django.dispatch.Signal.send\" title=\"django.dispatch.Signal.send\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">send()</span></code></a>.</p>\n<aside class=\"admonition admonition-seealso\">\n<p class=\"admonition-title\">Lihat juga</p>\n<p>Lihat dokumentasi pada <a class=\"reference internal\" href=\"/id/6.0/topics/signals/\"><span class=\"doc\">signal dispatcher</span></a> untuk informasi menurut bagaimana mendaftarkan dan menerima sinyal.</p>\n<p><a class=\"reference internal\" href=\"/id/6.0/topics/auth/\"><span class=\"doc\">authentication framework</span></a> mengirim <a class=\"reference internal\" href=\"/id/6.0/ref/contrib/auth/#topics-auth-signals\"><span class=\"std std-ref\">signals when a user is logged in / out</span></a>.</p>\n</aside>\n<section id=\"module-django.db.models.signals\">\n<span id=\"model-signals\"></span><h2>Sinyal model<a class=\"heading-anchor\" href=\"#module-django.db.models.signals\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Modul <a class=\"reference internal\" href=\"#module-django.db.models.signals\" title=\"django.db.models.signals: Signals sent by the model system.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.db.models.signals</span></code></a> menentukan sekumpulan sinyal dikirim oleh sistem model.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Peringatan</p>\n<p>Signals can make your code harder to maintain. Consider implementing a\nhelper method on a <a class=\"reference internal\" href=\"/id/6.0/topics/db/managers/#custom-managers\"><span class=\"std std-ref\">custom manager</span></a>, to\nboth update your models and perform additional logic, or else\n<a class=\"reference internal\" href=\"/id/6.0/topics/db/models/#overriding-model-methods\"><span class=\"std std-ref\">overriding model methods</span></a> before using\nmodel signals.</p>\n</aside>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Peringatan</p>\n<p>Banyak dari sinyal-sinyal ini dikirim oleh beragam metode model seperti <code class=\"docutils literal notranslate\"><span class=\"pre\">__init__()</span></code> atau <a class=\"reference internal\" href=\"/id/6.0/ref/models/instances/#django.db.models.Model.save\" title=\"django.db.models.Model.save\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">save()</span></code></a> yang anda dapat timpa dalam kode anda sendiri.</p>\n<p>If you override these methods on your model, you must call the parent\nclass' methods for these signals to be sent.</p>\n<p>Note also that Django stores signal handlers as weak references by default,\nso if your handler is a local function, it may be garbage collected. To\nprevent this, pass <code class=\"docutils literal notranslate\"><span class=\"pre\">weak=False</span></code> when you call the signal's\n<a class=\"reference internal\" href=\"/id/6.0/topics/signals/#django.dispatch.Signal.connect\" title=\"django.dispatch.Signal.connect\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">connect()</span></code></a>.</p>\n</aside>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Catatan</p>\n<p>Model signals <code class=\"docutils literal notranslate\"><span class=\"pre\">sender</span></code> model can be lazily referenced when connecting a\nreceiver by specifying its full application label. For example, an\n<code class=\"docutils literal notranslate\"><span class=\"pre\">Question</span></code> model defined in the <code class=\"docutils literal notranslate\"><span class=\"pre\">polls</span></code> application could be referenced\nas <code class=\"docutils literal notranslate\"><span class=\"pre\">'polls.Question'</span></code>. This sort of reference can be quite handy when\ndealing with circular import dependencies and swappable models.</p>\n</aside>\n<section id=\"pre-init\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">pre_init</span></code><a class=\"heading-anchor\" href=\"#pre-init\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.signals.pre_init\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">django.db.models.signals.</span></span><span class=\"sig-name descname\"><span class=\"pre\">pre_init</span></span><a class=\"heading-anchor\" href=\"#django.db.models.signals.pre_init\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Whenever you instantiate a Django model, this signal is sent at the beginning\nof the model's <code class=\"docutils literal notranslate\"><span class=\"pre\">__init__()</span></code> method.</p>\n<p>Argumen dikirim dengan dinyal ini:</p>\n<dl class=\"simple\">\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">sender</span></code></dt><dd><p>Kelas model yang baru mempunyai sebuah instance yang dibuat.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">args</span></code></dt><dd><p>A list of positional arguments passed to <code class=\"docutils literal notranslate\"><span class=\"pre\">__init__()</span></code>.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">kwargs</span></code></dt><dd><p>A dictionary of keyword arguments passed to <code class=\"docutils literal notranslate\"><span class=\"pre\">__init__()</span></code>.</p>\n</dd>\n</dl>\n<p>For example, the <a class=\"reference internal\" href=\"/id/6.0/intro/tutorial02/\"><span class=\"doc\">tutorial</span></a> has this line:</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=\"n\">q</span> <span class=\"o\">=</span> <span class=\"n\">Question</span><span class=\"p\">(</span><span class=\"n\">question_text</span><span class=\"o\">=</span><span class=\"s2\">&quot;What&#39;s new?&quot;</span><span class=\"p\">,</span> <span class=\"n\">pub_date</span><span class=\"o\">=</span><span class=\"n\">timezone</span><span class=\"o\">.</span><span class=\"n\">now</span><span class=\"p\">())</span>\n</code></pre></div>\n<p>Argumen dikirim ke penangan <a class=\"reference internal\" href=\"#django.db.models.signals.pre_init\" title=\"django.db.models.signals.pre_init\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">pre_init</span></code></a> akan berupa:</p>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p>Argument</p></th>\n<th class=\"head\"><p>Nilai</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">sender</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Question</span></code> (the class itself)</p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">args</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">[]</span></code> (an empty list because there were no positional\narguments passed to <code class=\"docutils literal notranslate\"><span class=\"pre\">__init__()</span></code>)</p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">kwargs</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{'question_text':</span> <span class=\"pre\">&quot;What's</span> <span class=\"pre\">new?&quot;,</span></code>\n<code class=\"docutils literal notranslate\"><span class=\"pre\">'pub_date':</span> <span class=\"pre\">datetime.datetime(2012,</span> <span class=\"pre\">2,</span> <span class=\"pre\">26,</span> <span class=\"pre\">13,</span> <span class=\"pre\">0,</span> <span class=\"pre\">0,</span> <span class=\"pre\">775217,</span> <span class=\"pre\">tzinfo=datetime.UTC)}</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n</section>\n<section id=\"post-init\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">post_init</span></code><a class=\"heading-anchor\" href=\"#post-init\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.signals.post_init\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">django.db.models.signals.</span></span><span class=\"sig-name descname\"><span class=\"pre\">post_init</span></span><a class=\"heading-anchor\" href=\"#django.db.models.signals.post_init\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Seperti pre_init, tetapi satu ini dikirim ketika metode <code class=\"docutils literal notranslate\"><span class=\"pre\">__init__()</span></code> selesai.</p>\n<p>Argumen dikirim dengan dinyal ini:</p>\n<dl>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">sender</span></code></dt><dd><p>Seperti diatas, kelas model yang baru mempunyai sebuah instance dibuat.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">instance</span></code></dt><dd><p>Instance sebenarnya dari model yang baru saja dibuat.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Catatan</p>\n<p><a class=\"reference internal\" href=\"/id/6.0/ref/models/instances/#django.db.models.Model._state\" title=\"django.db.models.Model._state\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">instance._state</span></code></a> isn't set\nbefore sending the <code class=\"docutils literal notranslate\"><span class=\"pre\">post_init</span></code> signal, so <code class=\"docutils literal notranslate\"><span class=\"pre\">_state</span></code> attributes\nalways have their default values. For example, <code class=\"docutils literal notranslate\"><span class=\"pre\">_state.db</span></code> is\n<code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>.</p>\n</aside>\n</dd>\n</dl>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Peringatan</p>\n<p>For performance reasons, you shouldn't perform queries in receivers of\n<code class=\"docutils literal notranslate\"><span class=\"pre\">pre_init</span></code> or <code class=\"docutils literal notranslate\"><span class=\"pre\">post_init</span></code> signals because they would be executed for\neach instance returned during queryset iteration.</p>\n</aside>\n</section>\n<section id=\"pre-save\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">pre_save</span></code><a class=\"heading-anchor\" href=\"#pre-save\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.signals.pre_save\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">django.db.models.signals.</span></span><span class=\"sig-name descname\"><span class=\"pre\">pre_save</span></span><a class=\"heading-anchor\" href=\"#django.db.models.signals.pre_save\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Ini dikirim pada awal dari metode <a class=\"reference internal\" href=\"/id/6.0/ref/models/instances/#django.db.models.Model.save\" title=\"django.db.models.Model.save\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">save()</span></code></a> model.</p>\n<p>Argumen dikirim dengan dinyal ini:</p>\n<dl class=\"simple\">\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">sender</span></code></dt><dd><p>Kelas model.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">instance</span></code></dt><dd><p>Instance sebenarnya sedang disimpan.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">raw</span></code></dt><dd><p>A boolean; <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> if the model is saved exactly as presented\n(i.e. when loading a <a class=\"reference internal\" href=\"/id/6.0/topics/db/fixtures/#fixtures-explanation\"><span class=\"std std-ref\">fixture</span></a>). One should not\nquery/modify other records in the database as the database might not be in\na consistent state yet.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">menggunakan</span></code></dt><dd><p>Nama lain basisdata sedang digunakan.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">update_fields</span></code></dt><dd><p>Kumpulan dari bidang untuk memperbaharui seperti dilewatkan ke <a class=\"reference internal\" href=\"/id/6.0/ref/models/instances/#django.db.models.Model.save\" title=\"django.db.models.Model.save\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Model.save()</span></code></a>, atau <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> jika <code class=\"docutils literal notranslate\"><span class=\"pre\">update_fields</span></code> tidak dilewatkan ke <code class=\"docutils literal notranslate\"><span class=\"pre\">save()</span></code>.</p>\n</dd>\n</dl>\n</section>\n<section id=\"post-save\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">post_save</span></code><a class=\"heading-anchor\" href=\"#post-save\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.signals.post_save\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">django.db.models.signals.</span></span><span class=\"sig-name descname\"><span class=\"pre\">post_save</span></span><a class=\"heading-anchor\" href=\"#django.db.models.signals.post_save\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Seperti <a class=\"reference internal\" href=\"#django.db.models.signals.pre_save\" title=\"django.db.models.signals.pre_save\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">pre_save</span></code></a>, tetapi dikirim pada akhir dari metode <a class=\"reference internal\" href=\"/id/6.0/ref/models/instances/#django.db.models.Model.save\" title=\"django.db.models.Model.save\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">save()</span></code></a>.</p>\n<p>Argumen dikirim dengan dinyal ini:</p>\n<dl class=\"simple\">\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">sender</span></code></dt><dd><p>Kelas model.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">instance</span></code></dt><dd><p>Instance sebenarnya sedang disimpan.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">created</span></code></dt><dd><p>Boolean; <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> jika sebuah rekaman baru telah dibuat.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">raw</span></code></dt><dd><p>A boolean; <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> if the model is saved exactly as presented\n(i.e. when loading a <a class=\"reference internal\" href=\"/id/6.0/topics/db/fixtures/#fixtures-explanation\"><span class=\"std std-ref\">fixture</span></a>). One should not\nquery/modify other records in the database as the database might not be in\na consistent state yet.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">menggunakan</span></code></dt><dd><p>Nama lain basisdata sedang digunakan.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">update_fields</span></code></dt><dd><p>Kumpulan dari bidang untuk memperbaharui seperti dilewatkan ke <a class=\"reference internal\" href=\"/id/6.0/ref/models/instances/#django.db.models.Model.save\" title=\"django.db.models.Model.save\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Model.save()</span></code></a>, atau <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> jika <code class=\"docutils literal notranslate\"><span class=\"pre\">update_fields</span></code> tidak dilewatkan ke <code class=\"docutils literal notranslate\"><span class=\"pre\">save()</span></code>.</p>\n</dd>\n</dl>\n</section>\n<section id=\"pre-delete\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">pre_delete</span></code><a class=\"heading-anchor\" href=\"#pre-delete\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.signals.pre_delete\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">django.db.models.signals.</span></span><span class=\"sig-name descname\"><span class=\"pre\">pre_delete</span></span><a class=\"heading-anchor\" href=\"#django.db.models.signals.pre_delete\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Dikirim pada awal dari metode <a class=\"reference internal\" href=\"/id/6.0/ref/models/instances/#django.db.models.Model.delete\" title=\"django.db.models.Model.delete\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">delete()</span></code></a> model dan  metode <a class=\"reference internal\" href=\"/id/6.0/ref/models/querysets/#django.db.models.query.QuerySet.delete\" title=\"django.db.models.query.QuerySet.delete\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">delete()</span></code></a> queryset.</p>\n<p>Argumen dikirim dengan dinyal ini:</p>\n<dl class=\"simple\">\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">sender</span></code></dt><dd><p>Kelas model.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">instance</span></code></dt><dd><p>Instance sebenarnya sedang dihapus.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">menggunakan</span></code></dt><dd><p>Nama lain basisdata sedang digunakan.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">origin</span></code></dt><dd><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">Model</span></code> or <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code> instance from which the deletion originated,\nthat is, the instance whose <code class=\"docutils literal notranslate\"><span class=\"pre\">delete()</span></code> method was invoked.</p>\n</dd>\n</dl>\n</section>\n<section id=\"post-delete\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">post_delete</span></code><a class=\"heading-anchor\" href=\"#post-delete\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.signals.post_delete\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">django.db.models.signals.</span></span><span class=\"sig-name descname\"><span class=\"pre\">post_delete</span></span><a class=\"heading-anchor\" href=\"#django.db.models.signals.post_delete\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Like <a class=\"reference internal\" href=\"#django.db.models.signals.pre_delete\" title=\"django.db.models.signals.pre_delete\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">pre_delete</span></code></a>, but sent at the end of a model's\n<a class=\"reference internal\" href=\"/id/6.0/ref/models/instances/#django.db.models.Model.delete\" title=\"django.db.models.Model.delete\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">delete()</span></code></a> method and a queryset's\n<a class=\"reference internal\" href=\"/id/6.0/ref/models/querysets/#django.db.models.query.QuerySet.delete\" title=\"django.db.models.query.QuerySet.delete\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">delete()</span></code></a> method.</p>\n<p>Argumen dikirim dengan dinyal ini:</p>\n<dl>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">sender</span></code></dt><dd><p>Kelas model.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">instance</span></code></dt><dd><p>Instance sebenarnya sedang dihapus.</p>\n<p>Catat bahwa obyek tidak akan lagi berada dalam basisdata, jadi waspadalah apa yang anda lakukan dengan contoh ini.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">menggunakan</span></code></dt><dd><p>Nama lain basisdata sedang digunakan.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">origin</span></code></dt><dd><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">Model</span></code> or <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code> instance from which the deletion originated,\nthat is, the instance whose <code class=\"docutils literal notranslate\"><span class=\"pre\">delete()</span></code> method was invoked.</p>\n</dd>\n</dl>\n</section>\n<section id=\"m2m-changed\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">m2m_changed</span></code><a class=\"heading-anchor\" href=\"#m2m-changed\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.signals.m2m_changed\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">django.db.models.signals.</span></span><span class=\"sig-name descname\"><span class=\"pre\">m2m_changed</span></span><a class=\"heading-anchor\" href=\"#django.db.models.signals.m2m_changed\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Dikirim ketika a <a class=\"reference internal\" href=\"/id/6.0/ref/models/fields/#django.db.models.ManyToManyField\" title=\"django.db.models.ManyToManyField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code></a> dirubah pada instance model. Berbicara dengan ketat, ini bukan sebuah sinyal model karena itu dikirim oleh <a class=\"reference internal\" href=\"/id/6.0/ref/models/fields/#django.db.models.ManyToManyField\" title=\"django.db.models.ManyToManyField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code></a>, tetapi sejak itu melengkapi <a class=\"reference internal\" href=\"#django.db.models.signals.pre_save\" title=\"django.db.models.signals.pre_save\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">pre_save</span></code></a>/<a class=\"reference internal\" href=\"#django.db.models.signals.post_save\" title=\"django.db.models.signals.post_save\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">post_save</span></code></a> dan <a class=\"reference internal\" href=\"#django.db.models.signals.pre_delete\" title=\"django.db.models.signals.pre_delete\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">pre_delete</span></code></a>/<a class=\"reference internal\" href=\"#django.db.models.signals.post_delete\" title=\"django.db.models.signals.post_delete\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">post_delete</span></code></a> ketika itu datang untuk melacak perubahan pada model, itu disertakan disini.</p>\n<p>Argumen dikirim dengan dinyal ini:</p>\n<dl>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">sender</span></code></dt><dd><p>The intermediate model class describing the\n<a class=\"reference internal\" href=\"/id/6.0/ref/models/fields/#django.db.models.ManyToManyField\" title=\"django.db.models.ManyToManyField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code></a>. This class is automatically\ncreated when a many-to-many field is defined; you can access it using the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">through</span></code> attribute on the many-to-many field.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">instance</span></code></dt><dd><p>The instance whose many-to-many relation is updated. This can be an\ninstance of the <code class=\"docutils literal notranslate\"><span class=\"pre\">sender</span></code>, or of the class the\n<a class=\"reference internal\" href=\"/id/6.0/ref/models/fields/#django.db.models.ManyToManyField\" title=\"django.db.models.ManyToManyField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code></a> is related to.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">action</span></code></dt><dd><p>Sebuah string menunjukkan jenis dari pembaharuan yang selesai pada hubungan. Ini dapat berupa satu dari berikut:</p>\n<dl class=\"simple\">\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;pre_add&quot;</span></code></dt><dd><p>Dikirim <em>sebelum</em> satu atau lebih obyek ditambahkan ke hubungan.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;post_add&quot;</span></code></dt><dd><p>Dikirim <em>setelah</em> satu atau lebih obyek ditambahkan pada hubungan.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;pre_remove&quot;</span></code></dt><dd><p>Dikirim <em>sebelum</em> satu atau lebih obyek dipindahkan dari hubungan.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;post_remove&quot;</span></code></dt><dd><p>Dikirim <em>setelah</em> satu atau lebih obyek dipindahkan dari hubungan.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;pre_clear&quot;</span></code></dt><dd><p>Dikirim <em>sebelum</em> hubungan dibersihkan.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;post_clear&quot;</span></code></dt><dd><p>Dikirim*setelah* hubungan dibersihkan.</p>\n</dd>\n</dl>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">reverse</span></code></dt><dd><p>Indicates which side of the relation is updated (i.e., if it is the\nforward or reverse relation that is being modified).</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">model</span></code></dt><dd><p>Kelas dari obyek-byek yang ditambahkan juga, dipindahkan dari atau dibersihkan dari hubungan.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">pk_set</span></code></dt><dd><p>For the <code class=\"docutils literal notranslate\"><span class=\"pre\">pre_add</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">post_add</span></code> actions, this is a set of primary key\nvalues that will be, or have been, added to the relation. This may be a\nsubset of the values submitted to be added, since inserts must filter\nexisting values in order to avoid a database <code class=\"docutils literal notranslate\"><span class=\"pre\">IntegrityError</span></code>.</p>\n<p>For the <code class=\"docutils literal notranslate\"><span class=\"pre\">pre_remove</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">post_remove</span></code> actions, this is a set of\nprimary key values that was submitted to be removed from the relation. This\nis not dependent on whether the values actually will be, or have been,\nremoved. In particular, non-existent values may be submitted, and will\nappear in <code class=\"docutils literal notranslate\"><span class=\"pre\">pk_set</span></code>, even though they have no effect on the database.</p>\n<p>Untuk tindakan <code class=\"docutils literal notranslate\"><span class=\"pre\">pre_clear</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">post_clear</span></code>, ini adalah <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">menggunakan</span></code></dt><dd><p>Nama lain basisdata sedang digunakan.</p>\n</dd>\n</dl>\n<p>Sebagai contoh, jika sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">Pizza</span></code> dapat memiliki banyak obyek <code class=\"docutils literal notranslate\"><span class=\"pre\">Topping</span></code>, dimodelkan 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=\"w\"> </span><span class=\"nc\">Topping</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"c1\"># ...</span>\n    <span class=\"k\">pass</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Pizza</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"c1\"># ...</span>\n    <span class=\"n\">toppings</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ManyToManyField</span><span class=\"p\">(</span><span class=\"n\">Topping</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Jika kami menghubungkan penangan 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=\"w\"> </span><span class=\"nn\">django.db.models.signals</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">m2m_changed</span>\n\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">toppings_changed</span><span class=\"p\">(</span><span class=\"n\">sender</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n    <span class=\"c1\"># Do something</span>\n    <span class=\"k\">pass</span>\n\n\n<span class=\"n\">m2m_changed</span><span class=\"o\">.</span><span class=\"n\">connect</span><span class=\"p\">(</span><span class=\"n\">toppings_changed</span><span class=\"p\">,</span> <span class=\"n\">sender</span><span class=\"o\">=</span><span class=\"n\">Pizza</span><span class=\"o\">.</span><span class=\"n\">toppings</span><span class=\"o\">.</span><span class=\"n\">through</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>and then did something like this:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">p</span> <span class=\"o\">=</span> <span class=\"n\">Pizza</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"o\">...</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">t</span> <span class=\"o\">=</span> <span class=\"n\">Topping</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"o\">...</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">p</span><span class=\"o\">.</span><span class=\"n\">toppings</span><span class=\"o\">.</span><span class=\"n\">add</span><span class=\"p\">(</span><span class=\"n\">t</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>argumen-argumen dikirim ke penangan <a class=\"reference internal\" href=\"#django.db.models.signals.m2m_changed\" title=\"django.db.models.signals.m2m_changed\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">m2m_changed</span></code></a> (<code class=\"docutils literal notranslate\"><span class=\"pre\">toppings_changed</span></code> dalam contoh diatas) akan menjadi:</p>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p>Argument</p></th>\n<th class=\"head\"><p>Nilai</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">sender</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Pizza.toppings.through</span></code> (kelas m2m menengah)</p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">instance</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">p</span></code> (instance``Pizza`` sedang dirubah)</p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">action</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;pre_add&quot;</span></code> (diikuti oleh sinyal terpisah dengan <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;post_add&quot;</span></code>)</p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">reverse</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> (<code class=\"docutils literal notranslate\"><span class=\"pre\">Pizza</span></code> contains the\n<a class=\"reference internal\" href=\"/id/6.0/ref/models/fields/#django.db.models.ManyToManyField\" title=\"django.db.models.ManyToManyField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code></a>, so this call\nmodifies the forward relation)</p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">model</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Topping</span></code> (kelas dari obyek ditambahkan pada <code class=\"docutils literal notranslate\"><span class=\"pre\">Pizza</span></code>)</p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">pk_set</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{t.id}</span></code> (sejak hanya <code class=\"docutils literal notranslate\"><span class=\"pre\">Topping</span> <span class=\"pre\">t</span></code> yang ditambahkan ke hubungan)</p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">menggunakan</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;default&quot;</span></code> (sejak kiriman perute awalan ditulis disini)</p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<p>And if we would then do something like this:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">t</span><span class=\"o\">.</span><span class=\"n\">pizza_set</span><span class=\"o\">.</span><span class=\"n\">remove</span><span class=\"p\">(</span><span class=\"n\">p</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>argumen dikirim ke penangan <a class=\"reference internal\" href=\"#django.db.models.signals.m2m_changed\" title=\"django.db.models.signals.m2m_changed\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">m2m_changed</span></code></a> akan berupa:</p>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p>Argument</p></th>\n<th class=\"head\"><p>Nilai</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">sender</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Pizza.toppings.through</span></code> (kelas m2m menengah)</p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">instance</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">t</span></code> (instance <code class=\"docutils literal notranslate\"><span class=\"pre\">Topping</span></code> sedang dirubah)</p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">action</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;pre_remove&quot;</span></code> (diikuti oleh sinyal terpisah dengan <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;post_remove&quot;</span></code>)</p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">reverse</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> (<code class=\"docutils literal notranslate\"><span class=\"pre\">Pizza</span></code> mengandung <a class=\"reference internal\" href=\"/id/6.0/ref/models/fields/#django.db.models.ManyToManyField\" title=\"django.db.models.ManyToManyField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code></a>, jadi panggilan ini merubah hubungan kebalikan)</p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">model</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Pizza</span></code> (kelas dari obyek dipindahkan dari <code class=\"docutils literal notranslate\"><span class=\"pre\">Topping</span></code>)</p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">pk_set</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{p.id}</span></code> (sejak hanya <code class=\"docutils literal notranslate\"><span class=\"pre\">Pizza</span> <span class=\"pre\">p</span></code> telah dipindahkan dari hubungan)</p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">menggunakan</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;default&quot;</span></code> (sejak kiriman perute awalan ditulis disini)</p></td>\n</tr>\n</tbody>\n</table>\n</div>\n</section>\n<section id=\"class-prepared\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">class_prepared</span></code><a class=\"heading-anchor\" href=\"#class-prepared\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.signals.class_prepared\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">django.db.models.signals.</span></span><span class=\"sig-name descname\"><span class=\"pre\">class_prepared</span></span><a class=\"heading-anchor\" href=\"#django.db.models.signals.class_prepared\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Sent whenever a model class has been &quot;prepared&quot; -- that is, once a model has\nbeen defined and registered with Django's model system. Django uses this\nsignal internally; it's not generally used in third-party applications.</p>\n<p>Sejak sinyal ini dikirim selama pengolahan pengumpulan registrar aplikasi, dan <a class=\"reference internal\" href=\"/id/6.0/ref/applications/#django.apps.AppConfig.ready\" title=\"django.apps.AppConfig.ready\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">AppConfig.ready()</span></code></a> berjalan setelah registrar sepenuhnya dikumpulkan, penerima tidak dapat dihubungkan di metode itu. Satu kemungkinan adalah menghubungkan mereka <code class=\"docutils literal notranslate\"><span class=\"pre\">AppConfig.__init__()</span></code> sebagai gantinya, merawat tidak untuk mengimpor model atau panggilan pemicu pada registrar aplikasi.</p>\n<p>Argumen-argumen yang dikirim dengan sinyal ini:</p>\n<dl class=\"simple\">\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">sender</span></code></dt><dd><p>Kelas model yang telah dipersiapkan.</p>\n</dd>\n</dl>\n</section>\n</section>\n<section id=\"management-signals\">\n<h2>Pengelolaan sinyal<a class=\"heading-anchor\" href=\"#management-signals\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Sinyal dikirim oleh <a class=\"reference internal\" href=\"/id/6.0/ref/django-admin/\"><span class=\"doc\">django-admin</span></a>.</p>\n<section id=\"pre-migrate\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">pre_migrate</span></code><a class=\"heading-anchor\" href=\"#pre-migrate\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.signals.pre_migrate\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">django.db.models.signals.</span></span><span class=\"sig-name descname\"><span class=\"pre\">pre_migrate</span></span><a class=\"heading-anchor\" href=\"#django.db.models.signals.pre_migrate\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Sent by the <a class=\"reference internal\" href=\"/id/6.0/ref/django-admin/#django-admin-migrate\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">migrate</span></code></a> command before it starts to install an\napplication. It's not emitted for applications that lack a <code class=\"docutils literal notranslate\"><span class=\"pre\">models</span></code> module.</p>\n<p>Argumen dikirim dengan dinyal ini:</p>\n<dl>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">sender</span></code></dt><dd><p>Sebuah instance <a class=\"reference internal\" href=\"/id/6.0/ref/applications/#django.apps.AppConfig\" title=\"django.apps.AppConfig\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AppConfig</span></code></a> untuk aplikasi tentang untuk dipindahkan/disinkronisasikan.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">app_config</span></code></dt><dd><p>Sama seperti <code class=\"docutils literal notranslate\"><span class=\"pre\">sender</span></code>.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">verbosity</span></code></dt><dd><p>Indicates how much information <code class=\"docutils literal notranslate\"><span class=\"pre\">manage.py</span></code> is printing on screen. See\nthe <a class=\"reference internal\" href=\"/id/6.0/ref/django-admin/#cmdoption-verbosity\"><code class=\"xref std std-option docutils literal notranslate\"><span class=\"pre\">--verbosity</span></code></a> flag for details.</p>\n<p>Fungsi-fungsi yang mendengarkan untuk <a class=\"reference internal\" href=\"#django.db.models.signals.pre_migrate\" title=\"django.db.models.signals.pre_migrate\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">pre_migrate</span></code></a> harus menyesuaikan apa mereka keluarkan ke layar berdasarkan pada nilai dari argumen ini.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">interactive</span></code></dt><dd><p>If <code class=\"docutils literal notranslate\"><span class=\"pre\">interactive</span></code> is <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, it's safe to prompt the user to input\nthings on the command line. If <code class=\"docutils literal notranslate\"><span class=\"pre\">interactive</span></code> is <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>, functions\nwhich listen for this signal should not try to prompt for anything.</p>\n<p>Sebagai contoh, aplikasi <a class=\"reference internal\" href=\"/id/6.0/topics/auth/#module-django.contrib.auth\" title=\"django.contrib.auth: Django's authentication framework.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.auth</span></code></a> hanya menunjuk untuk membuat pengguna super ketika <code class=\"docutils literal notranslate\"><span class=\"pre\">interactive</span></code> adalah <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">stdout</span></code></dt><dd><p>A stream-like object where verbose output should be redirected.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">menggunakan</span></code></dt><dd><p>Nama lain dari basisdata dimana sebuah perintah akan beroperasi.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">plan</span></code></dt><dd><p>The migration plan that is going to be used for the migration run. While\nthe plan is not public API, this allows for the rare cases when it is\nnecessary to know the plan. A plan is a list of 2-tuples with the first\nitem being the instance of a migration class and the second item showing\nif the migration was rolled back (<code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>) or applied (<code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>).</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">apps</span></code></dt><dd><p>Sebuah instance dari <a class=\"reference internal\" href=\"/id/6.0/ref/applications/#module-django.apps\" title=\"django.apps\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">Apps</span></code></a> mengandung keadaan dari proyek sebelum perpindahan berjalan. Itu harus digunakan sebagai gantinya dari registrar <a class=\"reference internal\" href=\"/id/6.0/ref/applications/#django.apps.apps\" title=\"django.apps.apps\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">apps</span></code></a> global untuk mengambil model yang anda ingin lakukan tindakan.</p>\n</dd>\n</dl>\n</section>\n<section id=\"post-migrate\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">post_migrate</span></code><a class=\"heading-anchor\" href=\"#post-migrate\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.signals.post_migrate\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">django.db.models.signals.</span></span><span class=\"sig-name descname\"><span class=\"pre\">post_migrate</span></span><a class=\"heading-anchor\" href=\"#django.db.models.signals.post_migrate\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Dikirim pada akhir dari <a class=\"reference internal\" href=\"/id/6.0/ref/django-admin/#django-admin-migrate\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">migrate</span></code></a> (bahkan jika tidak ada perpindahan dijalankan) dan perintah <a class=\"reference internal\" href=\"/id/6.0/ref/django-admin/#django-admin-flush\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">flush</span></code></a>. Itu tidak dikeluarkan untuk aplikasi yang kekurangan modeul <code class=\"docutils literal notranslate\"><span class=\"pre\">models</span></code>.</p>\n<p>Handlers of this signal must not perform database schema alterations as doing\nso may cause the <a class=\"reference internal\" href=\"/id/6.0/ref/django-admin/#django-admin-flush\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">flush</span></code></a> command to fail if it runs during the\n<a class=\"reference internal\" href=\"/id/6.0/ref/django-admin/#django-admin-migrate\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">migrate</span></code></a> command.</p>\n<p>Argumen dikirim dengan dinyal ini:</p>\n<dl>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">sender</span></code></dt><dd><p>Instance <a class=\"reference internal\" href=\"/id/6.0/ref/applications/#django.apps.AppConfig\" title=\"django.apps.AppConfig\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AppConfig</span></code></a> untuk aplikasi yang telah dipasang.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">app_config</span></code></dt><dd><p>Sama seperti <code class=\"docutils literal notranslate\"><span class=\"pre\">sender</span></code>.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">verbosity</span></code></dt><dd><p>Indicates how much information <code class=\"docutils literal notranslate\"><span class=\"pre\">manage.py</span></code> is printing on screen. See\nthe <a class=\"reference internal\" href=\"/id/6.0/ref/django-admin/#cmdoption-verbosity\"><code class=\"xref std std-option docutils literal notranslate\"><span class=\"pre\">--verbosity</span></code></a> flag for details.</p>\n<p>Fungsi-fungsi yang mendengarkan untuk <a class=\"reference internal\" href=\"#django.db.models.signals.post_migrate\" title=\"django.db.models.signals.post_migrate\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">post_migrate</span></code></a> harus menyesuaikan apa mereka keluarkan ke layar berdasarkan pada nilai dari argumen ini.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">interactive</span></code></dt><dd><p>If <code class=\"docutils literal notranslate\"><span class=\"pre\">interactive</span></code> is <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, it's safe to prompt the user to input\nthings on the command line. If <code class=\"docutils literal notranslate\"><span class=\"pre\">interactive</span></code> is <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>, functions\nwhich listen for this signal should not try to prompt for anything.</p>\n<p>Sebagai contoh, aplikasi <a class=\"reference internal\" href=\"/id/6.0/topics/auth/#module-django.contrib.auth\" title=\"django.contrib.auth: Django's authentication framework.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.auth</span></code></a> hanya menunjuk untuk membuat pengguna super ketika <code class=\"docutils literal notranslate\"><span class=\"pre\">interactive</span></code> adalah <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">stdout</span></code></dt><dd><p>A stream-like object where verbose output should be redirected.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">menggunakan</span></code></dt><dd><p>Nama lain basisdata digunakan untuk sinkronisasi. Awalan pada basisdata <code class=\"docutils literal notranslate\"><span class=\"pre\">default</span></code>.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">plan</span></code></dt><dd><p>The migration plan that was used for the migration run. While the plan is\nnot public API, this allows for the rare cases when it is necessary to\nknow the plan. A plan is a list of 2-tuples with the first item being\nthe instance of a migration class and the second item showing if the\nmigration was rolled back (<code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>) or applied (<code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>).</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">apps</span></code></dt><dd><p>Sebuah instance dari <a class=\"reference internal\" href=\"/id/6.0/ref/applications/#module-django.apps\" title=\"django.apps\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">Apps</span></code></a> mengandung keadaan dari proyek setelah perpindahan berjalan. Itu harus digunakan sebagai gantinya dari registrar <a class=\"reference internal\" href=\"/id/6.0/ref/applications/#django.apps.apps\" title=\"django.apps.apps\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">apps</span></code></a> global untuk mengambil model yang anda ingin lakukan tindakan.</p>\n</dd>\n</dl>\n<p>Sebagai contoh, anda dapat mendaftarkan sebuah callback dalam sebuah <a class=\"reference internal\" href=\"/id/6.0/ref/applications/#django.apps.AppConfig\" title=\"django.apps.AppConfig\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AppConfig</span></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=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.apps</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">AppConfig</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models.signals</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">post_migrate</span>\n\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_callback</span><span class=\"p\">(</span><span class=\"n\">sender</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n    <span class=\"c1\"># Your specific logic here</span>\n    <span class=\"k\">pass</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyAppConfig</span><span class=\"p\">(</span><span class=\"n\">AppConfig</span><span class=\"p\">):</span>\n    <span class=\"o\">...</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">ready</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"n\">post_migrate</span><span class=\"o\">.</span><span class=\"n\">connect</span><span class=\"p\">(</span><span class=\"n\">my_callback</span><span class=\"p\">,</span> <span class=\"n\">sender</span><span class=\"o\">=</span><span class=\"bp\">self</span><span class=\"p\">)</span>\n</code></pre></div>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Catatan</p>\n<p>If you provide an <a class=\"reference internal\" href=\"/id/6.0/ref/applications/#django.apps.AppConfig\" title=\"django.apps.AppConfig\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AppConfig</span></code></a> instance as the sender\nargument, please ensure that the signal is registered in\n<a class=\"reference internal\" href=\"/id/6.0/ref/applications/#django.apps.AppConfig.ready\" title=\"django.apps.AppConfig.ready\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">ready()</span></code></a>. <code class=\"docutils literal notranslate\"><span class=\"pre\">AppConfig</span></code>s are recreated for\ntests that run with a modified set of <a class=\"reference internal\" href=\"/id/6.0/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a> (such as\nwhen settings are overridden) and such signals should be connected for each\nnew <code class=\"docutils literal notranslate\"><span class=\"pre\">AppConfig</span></code> instance.</p>\n</aside>\n</section>\n</section>\n<section id=\"module-django.core.signals\">\n<span id=\"request-response-signals\"></span><h2>Sinyal permintaan/tanggapan<a class=\"heading-anchor\" href=\"#module-django.core.signals\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Sinyal dikirim oleh kerangka kerja inti ketika mengolah sebuah permintaan.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Peringatan</p>\n<p>Signals can make your code harder to maintain. Consider <a class=\"reference internal\" href=\"/id/6.0/topics/http/middleware/\"><span class=\"doc\">using a\nmiddleware</span></a> before using request/response\nsignals.</p>\n</aside>\n<section id=\"request-started\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">request_started</span></code><a class=\"heading-anchor\" href=\"#request-started\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.core.signals.request_started\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">django.core.signals.</span></span><span class=\"sig-name descname\"><span class=\"pre\">request_started</span></span><a class=\"heading-anchor\" href=\"#django.core.signals.request_started\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Dikirim ketika Django mulai mengolah sebuah permintaan HTTP.</p>\n<p>Argumen dikirim dengan dinyal ini:</p>\n<dl class=\"simple\">\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">sender</span></code></dt><dd><p>Kelas penangan -- misalnya <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.handlers.wsgi.WsgiHandler</span></code> -- yang menangani permintaan.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">environ</span></code></dt><dd><p>Dictionary <code class=\"docutils literal notranslate\"><span class=\"pre\">environ</span></code> disediakan pada permintaan.</p>\n</dd>\n</dl>\n</section>\n<section id=\"request-finished\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">request_finished</span></code><a class=\"heading-anchor\" href=\"#request-finished\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.core.signals.request_finished\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">django.core.signals.</span></span><span class=\"sig-name descname\"><span class=\"pre\">request_finished</span></span><a class=\"heading-anchor\" href=\"#django.core.signals.request_finished\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Dikirim ketika Django selesai mengirimkan sebuah tanggapan HTTP ke klien.</p>\n<p>Argumen dikirim dengan dinyal ini:</p>\n<dl class=\"simple\">\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">sender</span></code></dt><dd><p>Kelas penangan, seperti diatas.</p>\n</dd>\n</dl>\n</section>\n<section id=\"got-request-exception\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">got_request_exception</span></code><a class=\"heading-anchor\" href=\"#got-request-exception\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.core.signals.got_request_exception\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">django.core.signals.</span></span><span class=\"sig-name descname\"><span class=\"pre\">got_request_exception</span></span><a class=\"heading-anchor\" href=\"#django.core.signals.got_request_exception\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Sinyal ini dikirim ketika Django menghadapi sebuah pengecualian selagi mengolah sebuah permintaan HTTP yang datang.</p>\n<p>Argumen dikirim dengan dinyal ini:</p>\n<dl class=\"simple\">\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">sender</span></code></dt><dd><p>Tidak digunakan (selalu <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>).</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">request</span></code></dt><dd><p>Obyek <a class=\"reference internal\" href=\"/id/6.0/ref/request-response/#django.http.HttpRequest\" title=\"django.http.HttpRequest\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code></a></p>\n</dd>\n</dl>\n</section>\n</section>\n<section id=\"module-django.test.signals\">\n<span id=\"test-signals\"></span><h2>Sinyal percobaan<a class=\"heading-anchor\" href=\"#module-django.test.signals\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Sinyal hanya dikirim ketika <a class=\"reference internal\" href=\"/id/6.0/topics/testing/overview/#running-tests\"><span class=\"std std-ref\">running tests</span></a>.</p>\n<section id=\"setting-changed\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">setting_changed</span></code><a class=\"heading-anchor\" href=\"#setting-changed\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.test.signals.setting_changed\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">django.test.signals.</span></span><span class=\"sig-name descname\"><span class=\"pre\">setting_changed</span></span><a class=\"heading-anchor\" href=\"#django.test.signals.setting_changed\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Sinyal dikirim ketika nilai dari pengaturan berubah melalui pengelola konteks <code class=\"docutils literal notranslate\"><span class=\"pre\">django.test.TestCase.settings()</span></code> atau pengelola penghias/konteks <a class=\"reference internal\" href=\"/id/6.0/topics/testing/tools/#django.test.override_settings\" title=\"django.test.override_settings\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">django.test.override_settings()</span></code></a>.</p>\n<p>It's actually sent twice: when the new value is applied (&quot;setup&quot;) and when the\noriginal value is restored (&quot;teardown&quot;). Use the <code class=\"docutils literal notranslate\"><span class=\"pre\">enter</span></code> argument to\ndistinguish between the two.</p>\n<p>Anda dapat juga mengimpor sinyal dari <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.signals</span></code> untuk menghindari impor dari <code class=\"docutils literal notranslate\"><span class=\"pre\">django.test</span></code> dalam keadaan bukan-percobaan.</p>\n<p>Argumen dikirim dengan dinyal ini:</p>\n<dl class=\"simple\">\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">sender</span></code></dt><dd><p>Penangan percobaan.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">setting</span></code></dt><dd><p>Nama dari pengaturan.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code></dt><dd><p>Nilai dari pengaturan setelah berubah. Untuk pengaturan yang awalnya tidak ada, dalam fase &quot;teardown&quot;, <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> adalah <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">enter</span></code></dt><dd><p>Boolean; <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> jika pengaturan diberlakukan, <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> jika disimpan kembali.</p>\n</dd>\n</dl>\n</section>\n<section id=\"template-rendered\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">template_rendered</span></code><a class=\"heading-anchor\" href=\"#template-rendered\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.test.signals.template_rendered\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">django.test.signals.</span></span><span class=\"sig-name descname\"><span class=\"pre\">template_rendered</span></span><a class=\"heading-anchor\" href=\"#django.test.signals.template_rendered\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Dikirim ketika sistem percobaan membangun sebuah cetakan. Siyal ini tidak dikeluarkan selama tindakan biasa dari peladen Django -- itu hanya tersedia selama percobaan.</p>\n<p>Argumen dikirim dengan dinyal ini:</p>\n<dl class=\"simple\">\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">sender</span></code></dt><dd><p>Obyek <a class=\"reference internal\" href=\"/id/6.0/ref/templates/api/#django.template.Template\" title=\"django.template.Template\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Template</span></code></a> yang dibangun.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">template</span></code></dt><dd><p>Sama seperti pengirim</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">context</span></code></dt><dd><p><a class=\"reference internal\" href=\"/id/6.0/ref/templates/api/#django.template.Context\" title=\"django.template.Context\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Context</span></code></a> dimana cetakan dibangun.</p>\n</dd>\n</dl>\n</section>\n</section>\n<section id=\"module-django.db.backends\">\n<span id=\"database-wrappers\"></span><h2>Pembungkus Basisdata<a class=\"heading-anchor\" href=\"#module-django.db.backends\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Sinyal dikirim oleh pembungkus basisdata ketika hubungan basisdata dimulai.</p>\n<section id=\"connection-created\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">connection_created</span></code><a class=\"heading-anchor\" href=\"#connection-created\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.db.backends.signals.connection_created\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">django.db.backends.signals.</span></span><span class=\"sig-name descname\"><span class=\"pre\">connection_created</span></span><a class=\"heading-anchor\" href=\"#django.db.backends.signals.connection_created\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Sent when the database wrapper makes the initial connection to the\ndatabase. This is particularly useful if you'd like to send any post\nconnection commands to the SQL backend.</p>\n<p>Argumen dikirim dengan dinyal ini:</p>\n<dl class=\"simple\">\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">sender</span></code></dt><dd><p>Kelas pembungkus basisdata -- yaitu. <code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.backends.postgresql.DatabaseWrapper</span></code> atau <code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.backends.mysql.DatabaseWrapper</span></code>, dll.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">connection</span></code></dt><dd><p>The database connection that was opened. This can be used in a\nmultiple-database configuration to differentiate connection signals\nfrom different databases.</p>\n</dd>\n</dl>\n</section>\n</section>\n<section id=\"tasks-signals\">\n<h2>Tasks signals<a class=\"heading-anchor\" href=\"#tasks-signals\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<aside class=\"version-note version-added\" data-version=\"6.0\">\n<p class=\"version-note-title\">New in Django 6.0</p></aside>\n<p>Signals sent by the <a class=\"reference internal\" href=\"/id/6.0/ref/tasks/\"><span class=\"doc\">tasks</span></a> framework.</p>\n<section id=\"task-enqueued\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">task_enqueued</span></code><a class=\"heading-anchor\" href=\"#task-enqueued\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.signals.task_enqueued\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">django.tasks.signals.</span></span><span class=\"sig-name descname\"><span class=\"pre\">task_enqueued</span></span><a class=\"heading-anchor\" href=\"#django.tasks.signals.task_enqueued\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Sent once a Task has been enqueued.</p>\n<p>Argumen dikirim dengan dinyal ini:</p>\n<dl class=\"simple\">\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">sender</span></code></dt><dd><p>The backend class which the Task was enqueued on to.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">task_result</span></code></dt><dd><p>The enqueued <a class=\"reference internal\" href=\"/id/6.0/ref/tasks/#django.tasks.TaskResult\" title=\"django.tasks.TaskResult\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TaskResult</span></code></a>.</p>\n</dd>\n</dl>\n</section>\n<section id=\"task-started\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">task_started</span></code><a class=\"heading-anchor\" href=\"#task-started\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.signals.task_started\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">django.tasks.signals.</span></span><span class=\"sig-name descname\"><span class=\"pre\">task_started</span></span><a class=\"heading-anchor\" href=\"#django.tasks.signals.task_started\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Sent when a Task has started executing.</p>\n<p>Argumen dikirim dengan dinyal ini:</p>\n<dl class=\"simple\">\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">sender</span></code></dt><dd><p>The backend class which the Task was enqueued on to.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">task_result</span></code></dt><dd><p>The started <a class=\"reference internal\" href=\"/id/6.0/ref/tasks/#django.tasks.TaskResult\" title=\"django.tasks.TaskResult\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TaskResult</span></code></a>.</p>\n</dd>\n</dl>\n</section>\n<section id=\"task-finished\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">task_finished</span></code><a class=\"heading-anchor\" href=\"#task-finished\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.signals.task_finished\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">django.tasks.signals.</span></span><span class=\"sig-name descname\"><span class=\"pre\">task_finished</span></span><a class=\"heading-anchor\" href=\"#django.tasks.signals.task_finished\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Sent once a Task has finished executing, successfully or otherwise.</p>\n<p>Argumen dikirim dengan dinyal ini:</p>\n<dl class=\"simple\">\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">sender</span></code></dt><dd><p>The backend class which the Task was enqueued on to.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">task_result</span></code></dt><dd><p>The finished <a class=\"reference internal\" href=\"/id/6.0/ref/tasks/#django.tasks.TaskResult\" title=\"django.tasks.TaskResult\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TaskResult</span></code></a>.</p>\n</dd>\n</dl>\n</section>\n</section>","rootId":"signals","toc":[{"title":"Sinyal model","anchor":"module-django.db.models.signals","children":[{"title":"pre_init","anchor":"pre-init","children":[]},{"title":"post_init","anchor":"post-init","children":[]},{"title":"pre_save","anchor":"pre-save","children":[]},{"title":"post_save","anchor":"post-save","children":[]},{"title":"pre_delete","anchor":"pre-delete","children":[]},{"title":"post_delete","anchor":"post-delete","children":[]},{"title":"m2m_changed","anchor":"m2m-changed","children":[]},{"title":"class_prepared","anchor":"class-prepared","children":[]}]},{"title":"Pengelolaan sinyal","anchor":"management-signals","children":[{"title":"pre_migrate","anchor":"pre-migrate","children":[]},{"title":"post_migrate","anchor":"post-migrate","children":[]}]},{"title":"Sinyal permintaan/tanggapan","anchor":"module-django.core.signals","children":[{"title":"request_started","anchor":"request-started","children":[]},{"title":"request_finished","anchor":"request-finished","children":[]},{"title":"got_request_exception","anchor":"got-request-exception","children":[]}]},{"title":"Sinyal percobaan","anchor":"module-django.test.signals","children":[{"title":"setting_changed","anchor":"setting-changed","children":[]},{"title":"template_rendered","anchor":"template-rendered","children":[]}]},{"title":"Pembungkus Basisdata","anchor":"module-django.db.backends","children":[{"title":"connection_created","anchor":"connection-created","children":[]}]},{"title":"Tasks signals","anchor":"tasks-signals","children":[{"title":"task_enqueued","anchor":"task-enqueued","children":[]},{"title":"task_started","anchor":"task-started","children":[]},{"title":"task_finished","anchor":"task-finished","children":[]}]}],"breadcrumbs":[{"docname":"ref/index","title":"Acuan API","url":"/id/6.0/ref/"}],"prev":{"docname":"ref/settings","title":"Pengaturan","url":"/id/6.0/ref/settings/"},"next":{"docname":"ref/tasks","title":"Tasks","url":"/id/6.0/ref/tasks/"},"formats":{"html":"/id/6.0/ref/signals/","markdown":"/id/6.0/ref/signals.md","json":"/id/6.0/ref/signals.json"},"source":"https://github.com/django/django/blob/stable/6.0.x/docs/ref/signals.txt","official":"https://docs.djangoproject.com/id/6.0/ref/signals/","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","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}