{"title":"Bidang formulir khusus PostgreSQL dan widget","version":"3.2","locale":"id","docname":"ref/contrib/postgres/forms","url":"/id/3.2/ref/contrib/postgres/forms/","canonical":"https://djangodocs.dev/id/3.2/ref/contrib/postgres/forms/","summary":"Semua bidang ini dan widget tersedia dari modul django.contrib.postgres.forms . Bidang Link to this heading # SimpleArrayField Link to this heading # class…","html":"<h1>Bidang formulir khusus PostgreSQL dan widget<a class=\"heading-anchor\" href=\"#postgresql-specific-form-fields-and-widgets\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Semua bidang ini dan widget tersedia dari modul <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.forms</span></code>.</p>\n<section id=\"fields\">\n<h2>Bidang<a class=\"heading-anchor\" href=\"#fields\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"simplearrayfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SimpleArrayField</span></code><a class=\"heading-anchor\" href=\"#simplearrayfield\"><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.contrib.postgres.forms.SimpleArrayField\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">SimpleArrayField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">base_field</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">delimiter</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">','</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">max_length</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">min_length</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.forms.SimpleArrayField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A field which maps to an array. It is represented by an HTML <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input&gt;</span></code>.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.forms.SimpleArrayField.base_field\">\n<span class=\"sig-name descname\"><span class=\"pre\">base_field</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.forms.SimpleArrayField.base_field\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ini adalah sebuah argumen diwajibkan.</p>\n<p>Itu menentukan bidang formulir pokok untuk larik. Ini tidak digunakan untuk membangun HTML apapun, tetapi itu digunakan untuk mengolah data terajukan dan mensahkan itu. 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=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.postgres.forms</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">SimpleArrayField</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">NumberListForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">numbers</span> <span class=\"o\">=</span> <span class=\"n\">SimpleArrayField</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">IntegerField</span><span class=\"p\">())</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">form</span> <span class=\"o\">=</span> <span class=\"n\">NumberListForm</span><span class=\"p\">({</span><span class=\"s1\">&#39;numbers&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;1,2,3&#39;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">form</span><span class=\"o\">.</span><span class=\"n\">is_valid</span><span class=\"p\">()</span>\n<span class=\"go\">True</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">form</span><span class=\"o\">.</span><span class=\"n\">cleaned_data</span>\n<span class=\"go\">{&#39;numbers&#39;: [1, 2, 3]}</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">form</span> <span class=\"o\">=</span> <span class=\"n\">NumberListForm</span><span class=\"p\">({</span><span class=\"s1\">&#39;numbers&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;1,2,a&#39;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">form</span><span class=\"o\">.</span><span class=\"n\">is_valid</span><span class=\"p\">()</span>\n<span class=\"go\">False</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.forms.SimpleArrayField.delimiter\">\n<span class=\"sig-name descname\"><span class=\"pre\">delimiter</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.forms.SimpleArrayField.delimiter\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ini adalah sebuah argumen pilihan yang awalan pada koma: <code class=\"docutils literal notranslate\"><span class=\"pre\">,</span></code>. Nilai ini digunakan untuk memisahkan data terajukan. Itu mengizinkan anda mengikat <code class=\"docutils literal notranslate\"><span class=\"pre\">SimpleArrayField</span></code> untuk data multi dimensi:</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=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.postgres.forms</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">SimpleArrayField</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">GridForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">places</span> <span class=\"o\">=</span> <span class=\"n\">SimpleArrayField</span><span class=\"p\">(</span><span class=\"n\">SimpleArrayField</span><span class=\"p\">(</span><span class=\"n\">IntegerField</span><span class=\"p\">()),</span> <span class=\"n\">delimiter</span><span class=\"o\">=</span><span class=\"s1\">&#39;|&#39;</span><span class=\"p\">)</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">form</span> <span class=\"o\">=</span> <span class=\"n\">GridForm</span><span class=\"p\">({</span><span class=\"s1\">&#39;places&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;1,2|2,1|4,3&#39;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">form</span><span class=\"o\">.</span><span class=\"n\">is_valid</span><span class=\"p\">()</span>\n<span class=\"go\">True</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">form</span><span class=\"o\">.</span><span class=\"n\">cleaned_data</span>\n<span class=\"go\">{&#39;places&#39;: [[1, 2], [2, 1], [4, 3]]}</span>\n</code></pre></div>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Catatan</p>\n<p>Bidang tidak mendukung pelolosan dari pembatas, jadi waspada dalam kasus dimana pembatas adalah karakter sah dalam bidang pokok. Pembatas tidak perlu hanya satu karakter saja.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.forms.SimpleArrayField.max_length\">\n<span class=\"sig-name descname\"><span class=\"pre\">max_length</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.forms.SimpleArrayField.max_length\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ini adalah argumen pilihan yang mensahkan bahwa senaraitidak melampaui panjang yang dinyatakan.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.forms.SimpleArrayField.min_length\">\n<span class=\"sig-name descname\"><span class=\"pre\">min_length</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.forms.SimpleArrayField.min_length\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ini adalah argumen pilihan yang mensahkan bahwa senarai mencapai setidaknya panjang yang dinyatakan.</p>\n</dd></dl>\n\n<aside class=\"admonition-user-friendly-forms admonition\">\n<p class=\"admonition-title\">Formulir ramah</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">SimpleArrayField</span></code> tidak terlalu ramah dalam kebanyakan kasus, bagaimanapun itu adalah cara berguna untuk membentuk data dari widget sisi-klien untuk pengajuan ke peladen.</p>\n</aside>\n</dd></dl>\n\n</section>\n<section id=\"splitarrayfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SplitArrayField</span></code><a class=\"heading-anchor\" href=\"#splitarrayfield\"><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.contrib.postgres.forms.SplitArrayField\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">SplitArrayField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">base_field</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">size</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">remove_trailing_nulls</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.forms.SplitArrayField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Bidang ini menangani larik dengan membuat kembali bidang pokok tetap beberapa kali.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.forms.SplitArrayField.base_field\">\n<span class=\"sig-name descname\"><span class=\"pre\">base_field</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.forms.SplitArrayField.base_field\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ini adalah argumen diwajibkan. Itu menentukan bidang formulir untuk diulang.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.forms.SplitArrayField.size\">\n<span class=\"sig-name descname\"><span class=\"pre\">size</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.forms.SplitArrayField.size\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ini adalah nomor tetap dari berkali-kali bidang pokok akan digunakan.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.forms.SplitArrayField.remove_trailing_nulls\">\n<span class=\"sig-name descname\"><span class=\"pre\">remove_trailing_nulls</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.forms.SplitArrayField.remove_trailing_nulls\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Secara awalan, ini disetel menjadi <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>. Ketika <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>, setiap nilai dari bdiang-bidang terulang disimpan. Ketika disetel menjadi <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, nilai-nilai apapun yang membuntuti yang merupakan kosong akan dihilangkan dari hasil. Jika bidang pokok mempunyai <code class=\"docutils literal notranslate\"><span class=\"pre\">required=True</span></code>, tetapi <code class=\"docutils literal notranslate\"><span class=\"pre\">remove_trailing_nulls</span></code> adalah <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, kemudian nilai-nilai null hanya diijinkan pada akhir, dan akan dihilangkan.</p>\n<p>Beberapa 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=\"n\">SplitArrayField</span><span class=\"p\">(</span><span class=\"n\">IntegerField</span><span class=\"p\">(</span><span class=\"n\">required</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">),</span> <span class=\"n\">size</span><span class=\"o\">=</span><span class=\"mi\">3</span><span class=\"p\">,</span> <span class=\"n\">remove_trailing_nulls</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n\n<span class=\"p\">[</span><span class=\"s1\">&#39;1&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;2&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;3&#39;</span><span class=\"p\">]</span>  <span class=\"c1\"># -&gt; [1, 2, 3]</span>\n<span class=\"p\">[</span><span class=\"s1\">&#39;1&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;2&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;&#39;</span><span class=\"p\">]</span>  <span class=\"c1\"># -&gt; ValidationError - third entry required.</span>\n<span class=\"p\">[</span><span class=\"s1\">&#39;1&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;3&#39;</span><span class=\"p\">]</span>  <span class=\"c1\"># -&gt; ValidationError - second entry required.</span>\n<span class=\"p\">[</span><span class=\"s1\">&#39;&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;2&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;&#39;</span><span class=\"p\">]</span>  <span class=\"c1\"># -&gt; ValidationError - first and third entries required.</span>\n\n<span class=\"n\">SplitArrayField</span><span class=\"p\">(</span><span class=\"n\">IntegerField</span><span class=\"p\">(</span><span class=\"n\">required</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">),</span> <span class=\"n\">size</span><span class=\"o\">=</span><span class=\"mi\">3</span><span class=\"p\">,</span> <span class=\"n\">remove_trailing_nulls</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n\n<span class=\"p\">[</span><span class=\"s1\">&#39;1&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;2&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;3&#39;</span><span class=\"p\">]</span>  <span class=\"c1\"># -&gt; [1, 2, 3]</span>\n<span class=\"p\">[</span><span class=\"s1\">&#39;1&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;2&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;&#39;</span><span class=\"p\">]</span>  <span class=\"c1\"># -&gt; [1, 2, None]</span>\n<span class=\"p\">[</span><span class=\"s1\">&#39;1&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;3&#39;</span><span class=\"p\">]</span>  <span class=\"c1\"># -&gt; [1, None, 3]</span>\n<span class=\"p\">[</span><span class=\"s1\">&#39;&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;2&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;&#39;</span><span class=\"p\">]</span>  <span class=\"c1\"># -&gt; [None, 2, None]</span>\n\n<span class=\"n\">SplitArrayField</span><span class=\"p\">(</span><span class=\"n\">IntegerField</span><span class=\"p\">(</span><span class=\"n\">required</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">),</span> <span class=\"n\">size</span><span class=\"o\">=</span><span class=\"mi\">3</span><span class=\"p\">,</span> <span class=\"n\">remove_trailing_nulls</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n\n<span class=\"p\">[</span><span class=\"s1\">&#39;1&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;2&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;3&#39;</span><span class=\"p\">]</span>  <span class=\"c1\"># -&gt; [1, 2, 3]</span>\n<span class=\"p\">[</span><span class=\"s1\">&#39;1&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;2&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;&#39;</span><span class=\"p\">]</span>  <span class=\"c1\"># -&gt; [1, 2]</span>\n<span class=\"p\">[</span><span class=\"s1\">&#39;1&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;3&#39;</span><span class=\"p\">]</span>  <span class=\"c1\"># -&gt; ValidationError - second entry required.</span>\n<span class=\"p\">[</span><span class=\"s1\">&#39;&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;2&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;&#39;</span><span class=\"p\">]</span>  <span class=\"c1\"># -&gt; ValidationError - first entry required.</span>\n\n<span class=\"n\">SplitArrayField</span><span class=\"p\">(</span><span class=\"n\">IntegerField</span><span class=\"p\">(</span><span class=\"n\">required</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">),</span> <span class=\"n\">size</span><span class=\"o\">=</span><span class=\"mi\">3</span><span class=\"p\">,</span> <span class=\"n\">remove_trailing_nulls</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n\n<span class=\"p\">[</span><span class=\"s1\">&#39;1&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;2&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;3&#39;</span><span class=\"p\">]</span>  <span class=\"c1\"># -&gt; [1, 2, 3]</span>\n<span class=\"p\">[</span><span class=\"s1\">&#39;1&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;2&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;&#39;</span><span class=\"p\">]</span>  <span class=\"c1\"># -&gt; [1, 2]</span>\n<span class=\"p\">[</span><span class=\"s1\">&#39;1&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;3&#39;</span><span class=\"p\">]</span>  <span class=\"c1\"># -&gt; [1, None, 3]</span>\n<span class=\"p\">[</span><span class=\"s1\">&#39;&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;2&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;&#39;</span><span class=\"p\">]</span>  <span class=\"c1\"># -&gt; [None, 2]</span>\n</code></pre></div>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"hstorefield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">HStoreField</span></code><a class=\"heading-anchor\" href=\"#hstorefield\"><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.contrib.postgres.forms.HStoreField\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">HStoreField</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.forms.HStoreField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sebuah bidang yang menerima data tersandikan JSON untuk sebuah <a class=\"reference internal\" href=\"/id/3.2/ref/contrib/postgres/fields/#django.contrib.postgres.fields.HStoreField\" title=\"django.contrib.postgres.fields.HStoreField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HStoreField</span></code></a>. Itu melemparkan semua nilai (kecuali null) ke string. Itu diwakili oleh sebuah HTML <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;textarea&gt;</span></code>.</p>\n<aside class=\"admonition-user-friendly-forms admonition\">\n<p class=\"admonition-title\">Formulir ramah</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">HStoreField</span></code> tidak terlalu ramah dalam kebanyakan kasus, bagaimanapun itu sanadalah cara berguna untuk membentuk data dari widget sisi-klien untuk pengajuan ke peladen.</p>\n</aside>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Catatan</p>\n<p>Pada kesempatan itu mungkin berguna untuk membutuhkan atau membatasi kunci-kunci yang sah untuk bidang diberikan. Ini dapat dilakukan menggunakan <a class=\"reference internal\" href=\"/id/3.2/ref/contrib/postgres/validators/#django.contrib.postgres.validators.KeysValidator\" title=\"django.contrib.postgres.validators.KeysValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">KeysValidator</span></code></a>.</p>\n</aside>\n</dd></dl>\n\n</section>\n<section id=\"jsonfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">JSONField</span></code><a class=\"heading-anchor\" href=\"#jsonfield\"><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.contrib.postgres.forms.JSONField\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">JSONField</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.forms.JSONField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A field which accepts JSON encoded data for a\n<a class=\"reference internal\" href=\"/id/3.2/ref/models/fields/#django.db.models.JSONField\" title=\"django.db.models.JSONField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">JSONField</span></code></a>. It is represented by an HTML\n<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;textarea&gt;</span></code>.</p>\n<aside class=\"admonition-user-friendly-forms admonition\">\n<p class=\"admonition-title\">Formulir ramah</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">JSONField</span></code> secara khusus tidak ramah pengguna dalam kebanyakan kasus, bagaimanapun itu adalah berguna untuk membentuk data dari widget sisi-klien untuk pengajuan ke peladen.</p>\n</aside>\n<aside class=\"version-note version-deprecated\" data-version=\"3.1\">\n<p class=\"version-note-title\">Deprecated since Django 3.1</p><p><span class=\"versionmodified deprecated\">Ditinggalkan sejak versi 3.1: </span>Use <a class=\"reference internal\" href=\"/id/3.2/ref/forms/fields/#django.forms.JSONField\" title=\"django.forms.JSONField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.forms.JSONField</span></code></a> instead.</p>\n</aside>\n</dd></dl>\n\n</section>\n<section id=\"range-fields\">\n<h3>Bidang Jangkauan<a class=\"heading-anchor\" href=\"#range-fields\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Kelompok ini dari bidang-bidang semua berbagi kegunaan yang mirip untuk menerima jangkauan data. Mereka berdasarkan pada <a class=\"reference internal\" href=\"/id/3.2/ref/forms/fields/#django.forms.MultiValueField\" title=\"django.forms.MultiValueField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MultiValueField</span></code></a>. Mereka memperlakukan satu nilai dihilangkan sebagai sebuah jangkauan tidak terbatas. Mereka juga mensahkan bahwa batasan terendah tidak lebih besar dari batasan teratas. Semua bidang-bidang ini menggunakan <a class=\"reference internal\" href=\"#django.contrib.postgres.forms.RangeWidget\" title=\"django.contrib.postgres.forms.RangeWidget\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RangeWidget</span></code></a>.</p>\n<section id=\"integerrangefield\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">IntegerRangeField</span></code><a class=\"heading-anchor\" href=\"#integerrangefield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.forms.IntegerRangeField\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">IntegerRangeField</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.forms.IntegerRangeField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Berdasarkan pada <a class=\"reference internal\" href=\"/id/3.2/ref/forms/fields/#django.forms.IntegerField\" title=\"django.forms.IntegerField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">IntegerField</span></code></a> dan merubah masukannya menjadi <a class=\"reference external\" href=\"https://www.psycopg.org/docs/extras.html#psycopg2.extras.NumericRange\" title=\"(di Psycopg v2.9)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">NumericRange</span></code></a>. Awalan untuk <a class=\"reference internal\" href=\"/id/3.2/ref/contrib/postgres/fields/#django.contrib.postgres.fields.IntegerRangeField\" title=\"django.contrib.postgres.fields.IntegerRangeField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">IntegerRangeField</span></code></a> dan <a class=\"reference internal\" href=\"/id/3.2/ref/contrib/postgres/fields/#django.contrib.postgres.fields.BigIntegerRangeField\" title=\"django.contrib.postgres.fields.BigIntegerRangeField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BigIntegerRangeField</span></code></a>.</p>\n</dd></dl>\n\n</section>\n<section id=\"decimalrangefield\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">DecimalRangeField</span></code><a class=\"heading-anchor\" href=\"#decimalrangefield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.forms.DecimalRangeField\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">DecimalRangeField</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.forms.DecimalRangeField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Berdasarkan pada <a class=\"reference internal\" href=\"/id/3.2/ref/forms/fields/#django.forms.DecimalField\" title=\"django.forms.DecimalField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DecimalField</span></code></a> dan terjemahkan masukannya kedalam <a class=\"reference external\" href=\"https://www.psycopg.org/docs/extras.html#psycopg2.extras.NumericRange\" title=\"(di Psycopg v2.9)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">NumericRange</span></code></a>. Awalan untuk <a class=\"reference internal\" href=\"/id/3.2/ref/contrib/postgres/fields/#django.contrib.postgres.fields.DecimalRangeField\" title=\"django.contrib.postgres.fields.DecimalRangeField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DecimalRangeField</span></code></a>.</p>\n</dd></dl>\n\n</section>\n<section id=\"datetimerangefield\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">DateTimeRangeField</span></code><a class=\"heading-anchor\" href=\"#datetimerangefield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.forms.DateTimeRangeField\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">DateTimeRangeField</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.forms.DateTimeRangeField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Berdasarkan pada <a class=\"reference internal\" href=\"/id/3.2/ref/forms/fields/#django.forms.DateTimeField\" title=\"django.forms.DateTimeField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DateTimeField</span></code></a> dan menterjemahkan masukannya menjadi  <a class=\"reference external\" href=\"https://www.psycopg.org/docs/extras.html#psycopg2.extras.DateTimeTZRange\" title=\"(di Psycopg v2.9)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DateTimeTZRange</span></code></a>. Awalan untuk <a class=\"reference internal\" href=\"/id/3.2/ref/contrib/postgres/fields/#django.contrib.postgres.fields.DateTimeRangeField\" title=\"django.contrib.postgres.fields.DateTimeRangeField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DateTimeRangeField</span></code></a>.</p>\n</dd></dl>\n\n</section>\n<section id=\"daterangefield\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">DateRangeField</span></code><a class=\"heading-anchor\" href=\"#daterangefield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.forms.DateRangeField\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">DateRangeField</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.forms.DateRangeField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Berdasarkan pada <a class=\"reference internal\" href=\"/id/3.2/ref/forms/fields/#django.forms.DateField\" title=\"django.forms.DateField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DateField</span></code></a> dan merubah masukannya menjadi <a class=\"reference external\" href=\"https://www.psycopg.org/docs/extras.html#psycopg2.extras.DateRange\" title=\"(di Psycopg v2.9)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DateRange</span></code></a>. Awalan untuk <a class=\"reference internal\" href=\"/id/3.2/ref/contrib/postgres/fields/#django.contrib.postgres.fields.DateRangeField\" title=\"django.contrib.postgres.fields.DateRangeField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DateRangeField</span></code></a>.</p>\n</dd></dl>\n\n</section>\n</section>\n</section>\n<section id=\"widgets\">\n<h2>Widget<a class=\"heading-anchor\" href=\"#widgets\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"rangewidget\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">RangeWidget</span></code><a class=\"heading-anchor\" href=\"#rangewidget\"><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.contrib.postgres.forms.RangeWidget\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">RangeWidget</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">base_widget</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">attrs</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.forms.RangeWidget\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Widget-widget digunakan oleh semua dari jenis-jenis jangkauan. Berdasarkan pada <a class=\"reference internal\" href=\"/id/3.2/ref/forms/widgets/#django.forms.MultiWidget\" title=\"django.forms.MultiWidget\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MultiWidget</span></code></a>.</p>\n<p><a class=\"reference internal\" href=\"#django.contrib.postgres.forms.RangeWidget\" title=\"django.contrib.postgres.forms.RangeWidget\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RangeWidget</span></code></a> mempunyai satu argumen yang diwajibkan:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.forms.RangeWidget.base_widget\">\n<span class=\"sig-name descname\"><span class=\"pre\">base_widget</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.forms.RangeWidget.base_widget\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sebuah <a class=\"reference internal\" href=\"#django.contrib.postgres.forms.RangeWidget\" title=\"django.contrib.postgres.forms.RangeWidget\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RangeWidget</span></code></a> terdiri dari 2-tuple dari <code class=\"docutils literal notranslate\"><span class=\"pre\">base_widget</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.forms.RangeWidget.decompress\">\n<span class=\"sig-name descname\"><span class=\"pre\">decompress</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">value</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.forms.RangeWidget.decompress\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Takes a single &quot;compressed&quot; value of a field, for example a\n<a class=\"reference internal\" href=\"/id/3.2/ref/contrib/postgres/fields/#django.contrib.postgres.fields.DateRangeField\" title=\"django.contrib.postgres.fields.DateRangeField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DateRangeField</span></code></a>,\nand returns a tuple representing a lower and upper bound.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n</section>","rootId":"postgresql-specific-form-fields-and-widgets","toc":[{"title":"Bidang","anchor":"fields","children":[{"title":"SimpleArrayField","anchor":"simplearrayfield","children":[]},{"title":"SplitArrayField","anchor":"splitarrayfield","children":[]},{"title":"HStoreField","anchor":"hstorefield","children":[]},{"title":"JSONField","anchor":"jsonfield","children":[]},{"title":"Bidang Jangkauan","anchor":"range-fields","children":[{"title":"IntegerRangeField","anchor":"integerrangefield","children":[]},{"title":"DecimalRangeField","anchor":"decimalrangefield","children":[]},{"title":"DateTimeRangeField","anchor":"datetimerangefield","children":[]},{"title":"DateRangeField","anchor":"daterangefield","children":[]}]}]},{"title":"Widget","anchor":"widgets","children":[{"title":"RangeWidget","anchor":"rangewidget","children":[]}]}],"breadcrumbs":[{"docname":"ref/index","title":"Acuan API","url":"/id/3.2/ref/"},{"docname":"ref/contrib/index","title":"Paket contrib","url":"/id/3.2/ref/contrib/"},{"docname":"ref/contrib/postgres/index","title":"django.contrib.postgres","url":"/id/3.2/ref/contrib/postgres/"}],"prev":{"docname":"ref/contrib/postgres/fields","title":"Bidang-bidang model khusus PostgreSQL","url":"/id/3.2/ref/contrib/postgres/fields/"},"next":{"docname":"ref/contrib/postgres/functions","title":"Fungsi-fungsi basisdata khusus PostgreSQL","url":"/id/3.2/ref/contrib/postgres/functions/"},"formats":{"html":"/id/3.2/ref/contrib/postgres/forms/","markdown":"/id/3.2/ref/contrib/postgres/forms.md","json":"/id/3.2/ref/contrib/postgres/forms.json"},"source":"https://github.com/django/django/blob/stable/3.2.x/docs/ref/contrib/postgres/forms.txt","official":"https://docs.djangoproject.com/id/3.2/ref/contrib/postgres/forms/","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"]}