{"title":"Bidang-bidang model khusus PostgreSQL","version":"3.1","locale":"id","docname":"ref/contrib/postgres/fields","url":"/id/3.1/ref/contrib/postgres/fields/","canonical":"https://djangodocs.dev/id/3.1/ref/contrib/postgres/fields/","summary":"Semua dari bidang ini tersedia dari modul django.contrib.postgres.fields . Mengindeks bidang-bidang ini Link to this heading # Index and Field.db_index both create…","html":"<h1>Bidang-bidang model khusus PostgreSQL<a class=\"heading-anchor\" href=\"#postgresql-specific-model-fields\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Semua dari bidang ini tersedia dari modul <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.fields</span></code>.</p>\n<section id=\"indexing-these-fields\">\n<h2>Mengindeks bidang-bidang ini<a class=\"heading-anchor\" href=\"#indexing-these-fields\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p><a class=\"reference internal\" href=\"/id/3.1/ref/models/indexes/#django.db.models.Index\" title=\"django.db.models.Index\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Index</span></code></a> and <a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.Field.db_index\" title=\"django.db.models.Field.db_index\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Field.db_index</span></code></a> both create a\nB-tree index, which isn't particularly helpful when querying complex data types.\nIndexes such as <a class=\"reference internal\" href=\"/id/3.1/ref/contrib/postgres/indexes/#django.contrib.postgres.indexes.GinIndex\" title=\"django.contrib.postgres.indexes.GinIndex\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">GinIndex</span></code></a> and\n<a class=\"reference internal\" href=\"/id/3.1/ref/contrib/postgres/indexes/#django.contrib.postgres.indexes.GistIndex\" title=\"django.contrib.postgres.indexes.GistIndex\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">GistIndex</span></code></a> are better suited, though\nthe index choice is dependent on the queries that you're using. Generally, GiST\nmay be a good choice for the <a class=\"reference internal\" href=\"#range-fields\"><span class=\"std std-ref\">range fields</span></a> and\n<a class=\"reference internal\" href=\"#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>, and GIN may be helpful for <a class=\"reference internal\" href=\"#django.contrib.postgres.fields.ArrayField\" title=\"django.contrib.postgres.fields.ArrayField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ArrayField</span></code></a>.</p>\n</section>\n<section id=\"arrayfield\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">ArrayField</span></code><a class=\"heading-anchor\" href=\"#arrayfield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.fields.ArrayField\">\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\">ArrayField</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><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=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">options</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.fields.ArrayField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A field for storing lists of data. Most field types can be used, and you\npass another field instance as the <a class=\"reference internal\" href=\"#django.contrib.postgres.fields.ArrayField.base_field\" title=\"django.contrib.postgres.fields.ArrayField.base_field\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">base_field</span></code></a>. You may also specify a <a class=\"reference internal\" href=\"#django.contrib.postgres.fields.ArrayField.size\" title=\"django.contrib.postgres.fields.ArrayField.size\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">size</span></code></a>. <code class=\"docutils literal notranslate\"><span class=\"pre\">ArrayField</span></code> can be nested to store multi-dimensional\narrays.</p>\n<p>Jika anda memberikan bidang <a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.Field.default\" title=\"django.db.models.Field.default\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">default</span></code></a>, pastikan itu adalah callable seperti <code class=\"docutils literal notranslate\"><span class=\"pre\">list</span></code> (untuk sebuah nilai kosong) atau sebuah callable yang mengembalikan list (seperti sebuah fungsi). Salah menggunakan <code class=\"docutils literal notranslate\"><span class=\"pre\">default=[]</span></code> membuat awalan yang berubah-ubah yaitu dibagi diantara semua contoh dari <code class=\"docutils literal notranslate\"><span class=\"pre\">ArrayField</span></code>.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.fields.ArrayField.base_field\">\n<span class=\"sig-name descname\"><span class=\"pre\">base_field</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.fields.ArrayField.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>Menentukan jenis data yang mendasari dan perilaku dari larik. Itu harus berupa sebuah contoh dari sub kelas dari <a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.Field\" title=\"django.db.models.Field\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Field</span></code></a>. Sebagai contoh, itu dapat berupa sebuah <a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.IntegerField\" title=\"django.db.models.IntegerField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">IntegerField</span></code></a> atau <a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.CharField\" title=\"django.db.models.CharField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">CharField</span></code></a>. Kebanyakan jenis-jenis bidang diizinkan, dengan pengecualian dari itu menangani hubungan data (<a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.ForeignKey\" title=\"django.db.models.ForeignKey\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code></a>, <a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.OneToOneField\" title=\"django.db.models.OneToOneField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">OneToOneField</span></code></a> dan <a class=\"reference internal\" href=\"/id/3.1/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>).</p>\n<p>Itu memungkinkan menyarang bidang-bidang larik - anda dapat menentukan sebuah instance dari <code class=\"docutils literal notranslate\"><span class=\"pre\">ArrayField</span></code> sebagai <code class=\"docutils literal notranslate\"><span class=\"pre\">base_field</span></code>. Sebagai contoh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.postgres.fields</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">ArrayField</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ChessBoard</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=\"n\">board</span> <span class=\"o\">=</span> <span class=\"n\">ArrayField</span><span class=\"p\">(</span>\n        <span class=\"n\">ArrayField</span><span class=\"p\">(</span>\n            <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">10</span><span class=\"p\">,</span> <span class=\"n\">blank</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">),</span>\n            <span class=\"n\">size</span><span class=\"o\">=</span><span class=\"mi\">8</span><span class=\"p\">,</span>\n        <span class=\"p\">),</span>\n        <span class=\"n\">size</span><span class=\"o\">=</span><span class=\"mi\">8</span><span class=\"p\">,</span>\n    <span class=\"p\">)</span>\n</code></pre></div>\n<p>Perubahan dari nilai-nilai diantara basisdata dan model, pengesahan dari data dan konfigurasi, dan serialisasi adalah semua dilimpahkan ke bidang dasar pokok.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.fields.ArrayField.size\">\n<span class=\"sig-name descname\"><span class=\"pre\">size</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.fields.ArrayField.size\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ini adalah sebuah argumen pilihan.</p>\n<p>Jika dilewatkan, larik akan memiliki ukuran maksimal seperti ditentukan. Ini akan dilewatkan ke basisdata meskipun PostgreSQL saat sekarang tidak melaksanakan batasan.</p>\n</dd></dl>\n\n</dd></dl>\n\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Catatan</p>\n<p>When nesting <code class=\"docutils literal notranslate\"><span class=\"pre\">ArrayField</span></code>, whether you use the <code class=\"docutils literal notranslate\"><span class=\"pre\">size</span></code> parameter or not,\nPostgreSQL requires that the arrays are rectangular:</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.contrib.postgres.fields</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">ArrayField</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Board</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=\"n\">pieces</span> <span class=\"o\">=</span> <span class=\"n\">ArrayField</span><span class=\"p\">(</span><span class=\"n\">ArrayField</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">IntegerField</span><span class=\"p\">()))</span>\n\n<span class=\"c1\"># Valid</span>\n<span class=\"n\">Board</span><span class=\"p\">(</span><span class=\"n\">pieces</span><span class=\"o\">=</span><span class=\"p\">[</span>\n    <span class=\"p\">[</span><span class=\"mi\">2</span><span class=\"p\">,</span> <span class=\"mi\">3</span><span class=\"p\">],</span>\n    <span class=\"p\">[</span><span class=\"mi\">2</span><span class=\"p\">,</span> <span class=\"mi\">1</span><span class=\"p\">],</span>\n<span class=\"p\">])</span>\n\n<span class=\"c1\"># Not valid</span>\n<span class=\"n\">Board</span><span class=\"p\">(</span><span class=\"n\">pieces</span><span class=\"o\">=</span><span class=\"p\">[</span>\n    <span class=\"p\">[</span><span class=\"mi\">2</span><span class=\"p\">,</span> <span class=\"mi\">3</span><span class=\"p\">],</span>\n    <span class=\"p\">[</span><span class=\"mi\">2</span><span class=\"p\">],</span>\n<span class=\"p\">])</span>\n</code></pre></div>\n<p>Jika bentuk-bentuk tidak beraturan, kemudian bidang pokok harus dibuat null dan nilai-nilai ditambah dengan <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>.</p>\n</aside>\n<section id=\"querying-arrayfield\">\n<h3>Meminta <code class=\"docutils literal notranslate\"><span class=\"pre\">ArrayField</span></code><a class=\"heading-anchor\" href=\"#querying-arrayfield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Ada sejumlah pencarian penyesuaian dan merubah untuk <a class=\"reference internal\" href=\"#django.contrib.postgres.fields.ArrayField\" title=\"django.contrib.postgres.fields.ArrayField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ArrayField</span></code></a>. Kami akan menggunakan model contoh berikut:</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.contrib.postgres.fields</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">ArrayField</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Post</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=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">200</span><span class=\"p\">)</span>\n    <span class=\"n\">tags</span> <span class=\"o\">=</span> <span class=\"n\">ArrayField</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">200</span><span class=\"p\">),</span> <span class=\"n\">blank</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"fm\">__str__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">name</span>\n</code></pre></div>\n<section id=\"contains\">\n<span id=\"std-fieldlookup-arrayfield.contains\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">contains</span></code><a class=\"heading-anchor\" href=\"#contains\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Pencarian <a class=\"reference internal\" href=\"/id/3.1/ref/models/querysets/#std-fieldlookup-contains\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">contains</span></code></a> ditimpa pada <a class=\"reference internal\" href=\"#django.contrib.postgres.fields.ArrayField\" title=\"django.contrib.postgres.fields.ArrayField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ArrayField</span></code></a>. Obyek-obyek dikembalikan akan menjadi mereka dimana nilai-nilai dilewatkan adalah himpuna bagian dari data. Itu menggunakan penghubung SQL <code class=\"docutils literal notranslate\"><span class=\"pre\">&#64;&gt;</span></code>. Sebagai contoh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Post</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;First post&#39;</span><span class=\"p\">,</span> <span class=\"n\">tags</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">&#39;thoughts&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;django&#39;</span><span class=\"p\">])</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Post</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Second post&#39;</span><span class=\"p\">,</span> <span class=\"n\">tags</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">&#39;thoughts&#39;</span><span class=\"p\">])</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Post</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Third post&#39;</span><span class=\"p\">,</span> <span class=\"n\">tags</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">&#39;tutorial&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;django&#39;</span><span class=\"p\">])</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Post</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">tags__contains</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">&#39;thoughts&#39;</span><span class=\"p\">])</span>\n<span class=\"go\">&lt;QuerySet [&lt;Post: First post&gt;, &lt;Post: Second post&gt;]&gt;</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Post</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">tags__contains</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">&#39;django&#39;</span><span class=\"p\">])</span>\n<span class=\"go\">&lt;QuerySet [&lt;Post: First post&gt;, &lt;Post: Third post&gt;]&gt;</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Post</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">tags__contains</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">&#39;django&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;thoughts&#39;</span><span class=\"p\">])</span>\n<span class=\"go\">&lt;QuerySet [&lt;Post: First post&gt;]&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"contained-by\">\n<span id=\"std-fieldlookup-arrayfield.contained_by\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">contained_by</span></code><a class=\"heading-anchor\" href=\"#contained-by\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Ini adalah kebalikan dari pencarian <a class=\"reference internal\" href=\"#std-fieldlookup-arrayfield.contains\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">contains</span></code></a> - obyek-obyek dikembalikan akan menjadi mereka dimana data adalah himpunan bagian dari nilai-nilai dilewatkan. Itu menggunakan penghubung SQL <code class=\"docutils literal notranslate\"><span class=\"pre\">&#64;</span></code>. Sebagai contoh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Post</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;First post&#39;</span><span class=\"p\">,</span> <span class=\"n\">tags</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">&#39;thoughts&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;django&#39;</span><span class=\"p\">])</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Post</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Second post&#39;</span><span class=\"p\">,</span> <span class=\"n\">tags</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">&#39;thoughts&#39;</span><span class=\"p\">])</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Post</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Third post&#39;</span><span class=\"p\">,</span> <span class=\"n\">tags</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">&#39;tutorial&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;django&#39;</span><span class=\"p\">])</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Post</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">tags__contained_by</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">&#39;thoughts&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;django&#39;</span><span class=\"p\">])</span>\n<span class=\"go\">&lt;QuerySet [&lt;Post: First post&gt;, &lt;Post: Second post&gt;]&gt;</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Post</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">tags__contained_by</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">&#39;thoughts&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;django&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;tutorial&#39;</span><span class=\"p\">])</span>\n<span class=\"go\">&lt;QuerySet [&lt;Post: First post&gt;, &lt;Post: Second post&gt;, &lt;Post: Third post&gt;]&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"overlap\">\n<span id=\"std-fieldlookup-arrayfield.overlap\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">overlap</span></code><a class=\"heading-anchor\" href=\"#overlap\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Mengembalikan obyek-obyek dimana data berbagi hasil apapun dengan nilai-nilai dilewatkan. menggunakan penghubung SQL <code class=\"docutils literal notranslate\"><span class=\"pre\">&amp;&amp;</span></code>. Sebagai contoh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Post</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;First post&#39;</span><span class=\"p\">,</span> <span class=\"n\">tags</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">&#39;thoughts&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;django&#39;</span><span class=\"p\">])</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Post</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Second post&#39;</span><span class=\"p\">,</span> <span class=\"n\">tags</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">&#39;thoughts&#39;</span><span class=\"p\">])</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Post</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Third post&#39;</span><span class=\"p\">,</span> <span class=\"n\">tags</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">&#39;tutorial&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;django&#39;</span><span class=\"p\">])</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Post</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">tags__overlap</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">&#39;thoughts&#39;</span><span class=\"p\">])</span>\n<span class=\"go\">&lt;QuerySet [&lt;Post: First post&gt;, &lt;Post: Second post&gt;]&gt;</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Post</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">tags__overlap</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">&#39;thoughts&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;tutorial&#39;</span><span class=\"p\">])</span>\n<span class=\"go\">&lt;QuerySet [&lt;Post: First post&gt;, &lt;Post: Second post&gt;, &lt;Post: Third post&gt;]&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"len\">\n<span id=\"std-fieldlookup-arrayfield.len\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">len</span></code><a class=\"heading-anchor\" href=\"#len\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Mengembalikan panjang dari larik. Pencarian tersedia setelah itu adalah mereka tersedia untuk <a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.IntegerField\" title=\"django.db.models.IntegerField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">IntegerField</span></code></a>. 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=\"n\">Post</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;First post&#39;</span><span class=\"p\">,</span> <span class=\"n\">tags</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">&#39;thoughts&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;django&#39;</span><span class=\"p\">])</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Post</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Second post&#39;</span><span class=\"p\">,</span> <span class=\"n\">tags</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">&#39;thoughts&#39;</span><span class=\"p\">])</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Post</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">tags__len</span><span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet [&lt;Post: Second post&gt;]&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"index-transforms\">\n<span id=\"std-fieldlookup-arrayfield.index\"></span><h4>Perubahan indeks<a class=\"heading-anchor\" href=\"#index-transforms\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Indeks merubah indeks menjadi larik. Integer bukan-negatif apapun dapat digunakan. TIdak ada kesalahan jika itu melebihi <a class=\"reference internal\" href=\"#django.contrib.postgres.fields.ArrayField.size\" title=\"django.contrib.postgres.fields.ArrayField.size\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">size</span></code></a> dari larik. Pencarian tersedia setelah perubahan adalah itu dari <a class=\"reference internal\" href=\"#django.contrib.postgres.fields.ArrayField.base_field\" title=\"django.contrib.postgres.fields.ArrayField.base_field\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">base_field</span></code></a>. 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=\"n\">Post</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;First post&#39;</span><span class=\"p\">,</span> <span class=\"n\">tags</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">&#39;thoughts&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;django&#39;</span><span class=\"p\">])</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Post</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Second post&#39;</span><span class=\"p\">,</span> <span class=\"n\">tags</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">&#39;thoughts&#39;</span><span class=\"p\">])</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Post</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">tags__0</span><span class=\"o\">=</span><span class=\"s1\">&#39;thoughts&#39;</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet [&lt;Post: First post&gt;, &lt;Post: Second post&gt;]&gt;</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Post</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">tags__1__iexact</span><span class=\"o\">=</span><span class=\"s1\">&#39;Django&#39;</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet [&lt;Post: First post&gt;]&gt;</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Post</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">tags__276</span><span class=\"o\">=</span><span class=\"s1\">&#39;javascript&#39;</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet []&gt;</span>\n</code></pre></div>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Catatan</p>\n<p>PostgreSQL menggunakan pengindeksan berdasarkan-1 untuk bidang larik ketika menulis SQL mentah. bagaimanapun indeks-indeks ini dan mereka digunakan dalam <a class=\"reference internal\" href=\"#std-fieldlookup-arrayfield.slice\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">slices</span></code></a> menggunakan  pengindeksan berdasarkan-0 untuk tetap dengan Python.</p>\n</aside>\n</section>\n<section id=\"slice-transforms\">\n<span id=\"std-fieldlookup-arrayfield.slice\"></span><h4>Perubahan potongan<a class=\"heading-anchor\" href=\"#slice-transforms\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Potongan perubahan mengambil potongan dari larik. Apapun dua bukan-negatif integer dapat digunakan, dipisahkan oleh garis bawa tunggal. Pencarian setelah perubahan tidak berubah. 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=\"n\">Post</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;First post&#39;</span><span class=\"p\">,</span> <span class=\"n\">tags</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">&#39;thoughts&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;django&#39;</span><span class=\"p\">])</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Post</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Second post&#39;</span><span class=\"p\">,</span> <span class=\"n\">tags</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">&#39;thoughts&#39;</span><span class=\"p\">])</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Post</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Third post&#39;</span><span class=\"p\">,</span> <span class=\"n\">tags</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">&#39;django&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;python&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;thoughts&#39;</span><span class=\"p\">])</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Post</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">tags__0_1</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">&#39;thoughts&#39;</span><span class=\"p\">])</span>\n<span class=\"go\">&lt;QuerySet [&lt;Post: First post&gt;, &lt;Post: Second post&gt;]&gt;</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Post</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">tags__0_2__contains</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">&#39;thoughts&#39;</span><span class=\"p\">])</span>\n<span class=\"go\">&lt;QuerySet [&lt;Post: First post&gt;, &lt;Post: Second post&gt;]&gt;</span>\n</code></pre></div>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Catatan</p>\n<p>PostgreSQL menggunakan pengindeksan berdasarkan-1 untuk bidang larik ketika menulis SQL mentah. bagaimanapun potongan-potongan ini dan itu yang digunakan dalam <a class=\"reference internal\" href=\"#std-fieldlookup-arrayfield.index\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">indexes</span></code></a> menggunakan pengindeksan berdasarkan-0 untuk tetap dengan Python.</p>\n</aside>\n<aside class=\"admonition-multidimensional-arrays-with-indexes-and-slices admonition\">\n<p class=\"admonition-title\">Larik dimensi banyak dengan indeks dan potongan</p>\n<p>PostgreSQL mempunyai beberapa perilaku esotorik ketika menggunakan pengindeksan dan pemotongan pada larik banyak dimensi. itu akan selalu bekerja mencapat ke data pokok akhir, tetapi kebanyakan potongan berperilaku aneh pada tingkat basisdata dan tidak dapat didukung dalam logika, gaya tetap oleh Django.</p>\n</aside>\n</section>\n</section>\n</section>\n<section id=\"citext-fields\">\n<h2>Bidang <code class=\"docutils literal notranslate\"><span class=\"pre\">CIText</span></code><a class=\"heading-anchor\" href=\"#citext-fields\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.fields.CIText\">\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\">CIText</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">options</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.fields.CIText\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sebuah percampuran untuk membuat bidang-bidang teks kasus-tidak-peka didukung oleh <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/citext.html\">citext</a> type. Baca mengenai <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/citext.html#id-1.11.7.17.7\">the performance considerations</a> sebelum menggunakan itu.</p>\n<p>Untuk menggunakan <code class=\"docutils literal notranslate\"><span class=\"pre\">citext</span></code>, gunakan tindakan <a class=\"reference internal\" href=\"/id/3.1/ref/contrib/postgres/operations/#django.contrib.postgres.operations.CITextExtension\" title=\"django.contrib.postgres.operations.CITextExtension\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">CITextExtension</span></code></a> pada <a class=\"reference internal\" href=\"/id/3.1/ref/contrib/postgres/operations/#create-postgresql-extensions\"><span class=\"std std-ref\">setup the citext extension</span></a> di PostgreSQL sebelum tindakan perpindahan pertama <code class=\"docutils literal notranslate\"><span class=\"pre\">CreateModel</span></code>.</p>\n<p>Jika anda sedang menggunakan sebuah <a class=\"reference internal\" href=\"#django.contrib.postgres.fields.ArrayField\" title=\"django.contrib.postgres.fields.ArrayField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ArrayField</span></code></a> dari bidang <code class=\"docutils literal notranslate\"><span class=\"pre\">CIText</span></code>, anda harus menambah <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.postgres'</span></code> dalam <a class=\"reference internal\" href=\"/id/3.1/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a> anda, sebaliknya nilai bidang akan muncul sebagai string seperti <code class=\"docutils literal notranslate\"><span class=\"pre\">'{thoughts,django}'</span></code>.</p>\n<p>Beberapa bidang yang menggunakan mixin disediakan:</p>\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.fields.CICharField\">\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\">CICharField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">options</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.fields.CICharField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.fields.CIEmailField\">\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\">CIEmailField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">options</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.fields.CIEmailField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.fields.CITextField\">\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\">CITextField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">options</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.fields.CITextField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Bidang ini subkelas <a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.CharField\" title=\"django.db.models.CharField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">CharField</span></code></a>, <a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.EmailField\" title=\"django.db.models.EmailField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">EmailField</span></code></a>, dan <a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.TextField\" title=\"django.db.models.TextField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextField</span></code></a>, masing-masing.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">max_length</span></code> tidak akan dipaksa dalam basisdata sejak perilaku <code class=\"docutils literal notranslate\"><span class=\"pre\">citext</span></code> mirip pada teks <code class=\"docutils literal notranslate\"><span class=\"pre\">text</span></code> PostgreSQL.</p>\n</dd></dl>\n\n</section>\n<section id=\"hstorefield\">\n<h2><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></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.fields.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><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">options</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.fields.HStoreField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sebuah bidang untuk menyimpan pasangan nilai-kunci. Jenis data Python adalah sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">dict</span></code>. Kunci-kunci harus berupa string, dan nilai-nilai mungkin salah satu string atau null (<code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> dalam Python).</p>\n<p>Untuk menggunakan bidang ini, anda akan butuh untuk:</p>\n<ol class=\"arabic simple\">\n<li><p>Tambah <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.postgres'</span></code> dalam <a class=\"reference internal\" href=\"/id/3.1/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a> anda.</p></li>\n<li><p><a class=\"reference internal\" href=\"/id/3.1/ref/contrib/postgres/operations/#create-postgresql-extensions\"><span class=\"std std-ref\">Setup the hstore extension</span></a> di PostgreSQL.</p></li>\n</ol>\n<p>Anda akan melihat sebuah kesalahan seperti <code class=\"docutils literal notranslate\"><span class=\"pre\">can't</span> <span class=\"pre\">adapt</span> <span class=\"pre\">type</span> <span class=\"pre\">'dict'</span></code> jika anda melewati langkah pertama, atau <code class=\"docutils literal notranslate\"><span class=\"pre\">type</span> <span class=\"pre\">&quot;hstore&quot;</span> <span class=\"pre\">does</span> <span class=\"pre\">not</span> <span class=\"pre\">exist</span></code> jika anda melewati kedua.</p>\n</dd></dl>\n\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.1/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<section id=\"querying-hstorefield\">\n<h3>Meminta <code class=\"docutils literal notranslate\"><span class=\"pre\">HStoreField</span></code><a class=\"heading-anchor\" href=\"#querying-hstorefield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Sebagai tambahan pada kemampuan untuk pencarian berdasarkan kunci, ada angka dari pencarian penyesuaian tersedia untuk <code class=\"docutils literal notranslate\"><span class=\"pre\">HStoreField</span></code>.</p>\n<p>Kami akan menggunakan model contoh berikut:</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.contrib.postgres.fields</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">HStoreField</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Dog</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=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">200</span><span class=\"p\">)</span>\n    <span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"n\">HStoreField</span><span class=\"p\">()</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"fm\">__str__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">name</span>\n</code></pre></div>\n<section id=\"key-lookups\">\n<span id=\"std-fieldlookup-hstorefield.key\"></span><h4>Kunci pencarian<a class=\"heading-anchor\" href=\"#key-lookups\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>To query based on a given key, you can use that key as the lookup name:</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=\"n\">Dog</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Rufus&#39;</span><span class=\"p\">,</span> <span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s1\">&#39;breed&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;labrador&#39;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Meg&#39;</span><span class=\"p\">,</span> <span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s1\">&#39;breed&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;collie&#39;</span><span class=\"p\">})</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">data__breed</span><span class=\"o\">=</span><span class=\"s1\">&#39;collie&#39;</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet [&lt;Dog: Meg&gt;]&gt;</span>\n</code></pre></div>\n<p>Anda dapat mengikat pencarian lain setelah pencarian kunci:</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=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">data__breed__contains</span><span class=\"o\">=</span><span class=\"s1\">&#39;l&#39;</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet [&lt;Dog: Rufus&gt;, &lt;Dog: Meg&gt;]&gt;</span>\n</code></pre></div>\n<p>Jika kunci yang anda ahrapkan untuk meminta berdasarkan ketidakcocokan dengan nama dari pencarian lain, anda butuh menggunakan pencarian <a class=\"reference internal\" href=\"#std-fieldlookup-hstorefield.contains\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">hstorefield.contains</span></code></a> lookup sebagai gantinya.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Peringatan</p>\n<p>Sejak string apapun dapat berupa sebuah kunci dalam nilai hstore, pencarian apapun dari pada tersebut didaftar dibawah akan diartikan sebagai sebuah pencarian kunci. Tidak ada kesalahan akan dimunculkan. Ekstra hati-hati untuk menulis kesalahan, dan selalu memeriksa permintaan anda bekerja sesuai maksud anda.</p>\n</aside>\n</section>\n<section id=\"std-fieldlookup-hstorefield.contains\">\n<span id=\"id1\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">contains</span></code><a class=\"heading-anchor\" href=\"#std-fieldlookup-hstorefield.contains\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Pencarian <a class=\"reference internal\" href=\"/id/3.1/ref/models/querysets/#std-fieldlookup-contains\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">contains</span></code></a> ditimpa pada <a class=\"reference internal\" href=\"#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>. Obyek-obyek yang dikembalikan adalah itu dimana <code class=\"docutils literal notranslate\"><span class=\"pre\">dict</span></code> dari pasangan nilai-kunci yang diberikan dikandung semua dalam bidang. Itu menggunakan penghubung SQ: <code class=\"docutils literal notranslate\"><span class=\"pre\">A&gt;</span></code>. Sebagai contoh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Rufus&#39;</span><span class=\"p\">,</span> <span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s1\">&#39;breed&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;labrador&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;owner&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;Bob&#39;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Meg&#39;</span><span class=\"p\">,</span> <span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s1\">&#39;breed&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;collie&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;owner&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;Bob&#39;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Fred&#39;</span><span class=\"p\">,</span> <span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{})</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">data__contains</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s1\">&#39;owner&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;Bob&#39;</span><span class=\"p\">})</span>\n<span class=\"go\">&lt;QuerySet [&lt;Dog: Rufus&gt;, &lt;Dog: Meg&gt;]&gt;</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">data__contains</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s1\">&#39;breed&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;collie&#39;</span><span class=\"p\">})</span>\n<span class=\"go\">&lt;QuerySet [&lt;Dog: Meg&gt;]&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"std-fieldlookup-hstorefield.contained_by\">\n<span id=\"id2\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">contained_by</span></code><a class=\"heading-anchor\" href=\"#std-fieldlookup-hstorefield.contained_by\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Ini adalah kebalikan dari pencarian <a class=\"reference internal\" href=\"#std-fieldlookup-hstorefield.contains\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">contains</span></code></a> - obyek-obyek dikembalikan akan berupa itu dimana pasangan nilai-kunci pada obyek adalah sebuah jimpunan bagian dari itu dalam nilai dilewatkan. Itu menggunakan penghubung SQL <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;&#64;</span></code>. Sebagai contoh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Rufus&#39;</span><span class=\"p\">,</span> <span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s1\">&#39;breed&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;labrador&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;owner&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;Bob&#39;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Meg&#39;</span><span class=\"p\">,</span> <span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s1\">&#39;breed&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;collie&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;owner&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;Bob&#39;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Fred&#39;</span><span class=\"p\">,</span> <span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{})</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">data__contained_by</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s1\">&#39;breed&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;collie&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;owner&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;Bob&#39;</span><span class=\"p\">})</span>\n<span class=\"go\">&lt;QuerySet [&lt;Dog: Meg&gt;, &lt;Dog: Fred&gt;]&gt;</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">data__contained_by</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s1\">&#39;breed&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;collie&#39;</span><span class=\"p\">})</span>\n<span class=\"go\">&lt;QuerySet [&lt;Dog: Fred&gt;]&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"has-key\">\n<span id=\"std-fieldlookup-hstorefield.has_key\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">has_key</span></code><a class=\"heading-anchor\" href=\"#has-key\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Mengembalikan obyek-obyek dimana kunci diberikan adalah dalam data. Menggunakan penghubung SQL <code class=\"docutils literal notranslate\"><span class=\"pre\">?</span></code>. Sebagai contoh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Rufus&#39;</span><span class=\"p\">,</span> <span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s1\">&#39;breed&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;labrador&#39;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Meg&#39;</span><span class=\"p\">,</span> <span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s1\">&#39;breed&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;collie&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;owner&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;Bob&#39;</span><span class=\"p\">})</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">data__has_key</span><span class=\"o\">=</span><span class=\"s1\">&#39;owner&#39;</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet [&lt;Dog: Meg&gt;]&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"has-any-keys\">\n<span id=\"std-fieldlookup-hstorefield.has_any_keys\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">has_any_keys</span></code><a class=\"heading-anchor\" href=\"#has-any-keys\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Mengembalikan obyek-obyek dimana apapun dari kunci diberikan adalah dalam data. Menggunakan penghubung SQL <code class=\"docutils literal notranslate\"><span class=\"pre\">?|</span></code>. Sebagai contoh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Rufus&#39;</span><span class=\"p\">,</span> <span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s1\">&#39;breed&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;labrador&#39;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Meg&#39;</span><span class=\"p\">,</span> <span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s1\">&#39;owner&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;Bob&#39;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Fred&#39;</span><span class=\"p\">,</span> <span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{})</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">data__has_any_keys</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">&#39;owner&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;breed&#39;</span><span class=\"p\">])</span>\n<span class=\"go\">&lt;QuerySet [&lt;Dog: Rufus&gt;, &lt;Dog: Meg&gt;]&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"has-keys\">\n<span id=\"std-fieldlookup-hstorefield.has_keys\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">has_keys</span></code><a class=\"heading-anchor\" href=\"#has-keys\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Mengembalikan obyek-obyek dimana semua kunci diberikan dalam data. Menggunakan penghubung SQL <code class=\"docutils literal notranslate\"><span class=\"pre\">?&amp;</span></code>. Sebagai contoh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Rufus&#39;</span><span class=\"p\">,</span> <span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Meg&#39;</span><span class=\"p\">,</span> <span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s1\">&#39;breed&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;collie&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;owner&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;Bob&#39;</span><span class=\"p\">})</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">data__has_keys</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">&#39;breed&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;owner&#39;</span><span class=\"p\">])</span>\n<span class=\"go\">&lt;QuerySet [&lt;Dog: Meg&gt;]&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"keys\">\n<span id=\"std-fieldlookup-hstorefield.keys\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">keys</span></code><a class=\"heading-anchor\" href=\"#keys\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Mengembalikan obyek-obyek dimana larik dari kunci adalah nilai diberikan. Catat bahwa urutan tidak dijamin untuk menjadi handal, jadi perubahan ini utamanya berguna untuk menggunakan penghubung dengan pencarian pada <a class=\"reference internal\" href=\"#django.contrib.postgres.fields.ArrayField\" title=\"django.contrib.postgres.fields.ArrayField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ArrayField</span></code></a>. Menggunakan fungsi SQL <code class=\"docutils literal notranslate\"><span class=\"pre\">akeys()</span></code>. Sebagai contoh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Rufus&#39;</span><span class=\"p\">,</span> <span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s1\">&#39;toy&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;bone&#39;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Meg&#39;</span><span class=\"p\">,</span> <span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s1\">&#39;breed&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;collie&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;owner&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;Bob&#39;</span><span class=\"p\">})</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">data__keys__overlap</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">&#39;breed&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;toy&#39;</span><span class=\"p\">])</span>\n<span class=\"go\">&lt;QuerySet [&lt;Dog: Rufus&gt;, &lt;Dog: Meg&gt;]&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"values\">\n<span id=\"std-fieldlookup-hstorefield.values\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">values</span></code><a class=\"heading-anchor\" href=\"#values\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Returns objects where the array of values is the given value. Note that the\norder is not guaranteed to be reliable, so this transform is mainly useful for\nusing in conjunction with lookups on\n<a class=\"reference internal\" href=\"#django.contrib.postgres.fields.ArrayField\" title=\"django.contrib.postgres.fields.ArrayField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ArrayField</span></code></a>. Uses the SQL function\n<code class=\"docutils literal notranslate\"><span class=\"pre\">avals()</span></code>. For example:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Rufus&#39;</span><span class=\"p\">,</span> <span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s1\">&#39;breed&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;labrador&#39;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Meg&#39;</span><span class=\"p\">,</span> <span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s1\">&#39;breed&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;collie&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;owner&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;Bob&#39;</span><span class=\"p\">})</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">data__values__contains</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">&#39;collie&#39;</span><span class=\"p\">])</span>\n<span class=\"go\">&lt;QuerySet [&lt;Dog: Meg&gt;]&gt;</span>\n</code></pre></div>\n</section>\n</section>\n</section>\n<section id=\"jsonfield\">\n<h2><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></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.fields.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><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">encoder</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=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">options</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.fields.JSONField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sebuah bidang untuk menyimpan data tersandi JSON. Dalam Python data diwakili dalam bentuk asli Python nya: dictionary, string, angka, booelan dan <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.fields.JSONField.encoder\">\n<span class=\"sig-name descname\"><span class=\"pre\">encoder</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.fields.JSONField.encoder\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sebuah pilihan kelas penyandian-JSON untuk menserialisasikan jenis-jenis data tidak didukung oleh penserial JSON (<code class=\"docutils literal notranslate\"><span class=\"pre\">datetime</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">uuid</span></code>, dll.). Sebagai contoh, anda dapat menggunakan  kelas <a class=\"reference internal\" href=\"/id/3.1/topics/serialization/#django.core.serializers.json.DjangoJSONEncoder\" title=\"django.core.serializers.json.DjangoJSONEncoder\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DjangoJSONEncoder</span></code></a> atau sub kelas <a class=\"reference external\" href=\"https://docs.python.org/3/library/json.html#json.JSONEncoder\" title=\"(di Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">json.JSONEncoder</span></code></a> apapun.</p>\n<p>Ketika nilai diambil dari basisdata, itu akan berupa dalam bentuk dipilih oleh penyandi penyesuaian (kebanyakan sering sebuah string), jadi anda akan butuh mengambil langkah-langkah tambahan untuk merubah nilai kembali ke jenis data awalan (<a class=\"reference internal\" href=\"/id/3.1/ref/models/instances/#django.db.models.Model.from_db\" title=\"django.db.models.Model.from_db\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Model.from_db()</span></code></a> dan <a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.Field.from_db_value\" title=\"django.db.models.Field.from_db_value\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Field.from_db_value()</span></code></a> adalah dua kaitan memungkinkan untuk tujuan tersebut). Deserialisasi anda mungkin butuh dijelaskan untuk fakta bahwa anda tidak bisa memastikan dari jenis masukan. Sebagai contoh, anda menjalankan resiko dari mengembalikan sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime</span></code> yang sebenarnya baru terjadi menjadi bentuk sama dipilih untuk <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime</span></code>.</p>\n</dd></dl>\n\n<p>Jika anda memberikan bidang <a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.Field.default\" title=\"django.db.models.Field.default\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">default</span></code></a>, pastikan itu adalah callable seperti <code class=\"docutils literal notranslate\"><span class=\"pre\">dict</span></code> (untuk sebuah awalan kosong) atau sebuah callable yang mengembalikan sebuah dict (seperti sebuah fungsi). Tidak tepat menggunakan <code class=\"docutils literal notranslate\"><span class=\"pre\">default={}</span></code> membuat sebuah awalan yang tidak tetap yaitu dibagi diantara semua contoh-contoh dari <code class=\"docutils literal notranslate\"><span class=\"pre\">JSONField</span></code>.</p>\n</dd></dl>\n\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Catatan</p>\n<p>PostgreSQL mempunyai dua jenis data berdasarkan JSON asli: <code class=\"docutils literal notranslate\"><span class=\"pre\">json</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">jsonb</span></code>. Perbedaan utama diantara mereka adalah bagaimana mereka disimpan dan bagaimana mereka dapat diminta. Bidang <code class=\"docutils literal notranslate\"><span class=\"pre\">json</span></code> PostgreSQL disimpan sebagai perwakilan string asli dari JSON dan harus disandikan dengan cepat ketika permintaan berdasarkan pada kunci-kunci. Bidang <code class=\"docutils literal notranslate\"><span class=\"pre\">jsonb</span></code> disimpan berdasarkan pada struktur sebenarnya dari JSON yang mengizinkan pengindeksan. Pertukaran adalah tambahan biaya kecil pada menulis ke bidang <code class=\"docutils literal notranslate\"><span class=\"pre\">jsonb</span></code> field. <code class=\"docutils literal notranslate\"><span class=\"pre\">JSONField</span></code> menggunakan <code class=\"docutils literal notranslate\"><span class=\"pre\">jsonb</span></code>.</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.1/ref/models/fields/#django.db.models.JSONField\" title=\"django.db.models.JSONField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.db.models.JSONField</span></code></a> instead.</p>\n</aside>\n<section id=\"querying-jsonfield\">\n<h3>Meminta <code class=\"docutils literal notranslate\"><span class=\"pre\">JSONField</span></code><a class=\"heading-anchor\" href=\"#querying-jsonfield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>See <a class=\"reference internal\" href=\"/id/3.1/topics/db/queries/#querying-jsonfield\"><span class=\"std std-ref\">Meminta JSONField</span></a> for details.</p>\n</section>\n</section>\n<section id=\"range-fields\">\n<span id=\"id3\"></span><h2>Bidang Jangkauan<a class=\"heading-anchor\" href=\"#range-fields\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Ada lima jenis jangkauan bidang, berhubungan ke jenis jangkauan siap-pakai dalam PostgreSQL. Bidang-bidang ini digunakan untuk menyimpan jangkauan dari nilai; sebagai contoh stempel waktu awal dan akhir dari sebuah acara, atau jangkauan dari umur sebuah aktivitas yang cocok.</p>\n<p>All of the range fields translate to <a class=\"reference external\" href=\"https://www.psycopg.org/docs/extras.html#adapt-range\" title=\"(di Psycopg v2.9)\"><span class=\"xref std std-ref\">psycopg2 Range objects</span></a> in Python, but also accept tuples as input if no bounds\ninformation is necessary. The default is lower bound included, upper bound\nexcluded, that is <code class=\"docutils literal notranslate\"><span class=\"pre\">[)</span></code> (see the PostgreSQL documentation for details about\n<a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/rangetypes.html#RANGETYPES-IO\">different bounds</a>).</p>\n<section id=\"integerrangefield\">\n<h3><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></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.fields.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><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">options</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.fields.IntegerRangeField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Menyimpan jangkauan integer. Berdasarkan pada <a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.IntegerField\" title=\"django.db.models.IntegerField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">IntegerField</span></code></a>. Diwakilkan oleh <code class=\"docutils literal notranslate\"><span class=\"pre\">int4range</span></code> dalam basisdata dan <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> dalam Python.</p>\n<p>Regardless of the bounds specified when saving the data, PostgreSQL always\nreturns a range in a canonical form that includes the lower bound and\nexcludes the upper bound, that is <code class=\"docutils literal notranslate\"><span class=\"pre\">[)</span></code>.</p>\n</dd></dl>\n\n</section>\n<section id=\"bigintegerrangefield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">BigIntegerRangeField</span></code><a class=\"heading-anchor\" href=\"#bigintegerrangefield\"><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.fields.BigIntegerRangeField\">\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\">BigIntegerRangeField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">options</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.fields.BigIntegerRangeField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Menyimpan jangkauan integer besar. Berdasarkan pada <a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.BigIntegerField\" title=\"django.db.models.BigIntegerField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BigIntegerField</span></code></a>. Diwakilkan oleh <code class=\"docutils literal notranslate\"><span class=\"pre\">int8range</span></code> dalam basisdata dan  <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> dalam Python.</p>\n<p>Regardless of the bounds specified when saving the data, PostgreSQL always\nreturns a range in a canonical form that includes the lower bound and\nexcludes the upper bound, that is <code class=\"docutils literal notranslate\"><span class=\"pre\">[)</span></code>.</p>\n</dd></dl>\n\n</section>\n<section id=\"decimalrangefield\">\n<h3><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></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.fields.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><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">options</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.fields.DecimalRangeField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Menyimpan jangkauan dari nilai floating point. Berdasarkan pada sebuah <a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.DecimalField\" title=\"django.db.models.DecimalField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DecimalField</span></code></a>. Diwakili oleh sebuah <code class=\"docutils literal notranslate\"><span class=\"pre\">numrange</span></code> dalam basisdata dan sebuah <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> di Python.</p>\n</dd></dl>\n\n</section>\n<section id=\"datetimerangefield\">\n<h3><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></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.fields.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><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">options</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.fields.DateTimeRangeField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Menyimpan jangkauan timestamp. Berdasarkan pada <a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.DateTimeField\" title=\"django.db.models.DateTimeField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DateTimeField</span></code></a>. Diwakilkan oleh <code class=\"docutils literal notranslate\"><span class=\"pre\">tstzrange</span></code> dalam basisdata dan <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> dan Python.</p>\n</dd></dl>\n\n</section>\n<section id=\"daterangefield\">\n<h3><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></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.fields.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><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">options</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.fields.DateRangeField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Menyimpan jangkauan date. Berdasarkan pada <a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.DateField\" title=\"django.db.models.DateField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DateField</span></code></a>. Diwakilkan oleh <code class=\"docutils literal notranslate\"><span class=\"pre\">daterange</span></code> dalam basisdata dan <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> dalam Python.</p>\n<p>Regardless of the bounds specified when saving the data, PostgreSQL always\nreturns a range in a canonical form that includes the lower bound and\nexcludes the upper bound, that is <code class=\"docutils literal notranslate\"><span class=\"pre\">[)</span></code>.</p>\n</dd></dl>\n\n</section>\n<section id=\"querying-range-fields\">\n<h3>Meminta Jangkauan Bidang<a class=\"heading-anchor\" href=\"#querying-range-fields\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Ada sejumlah pencarian penyesuaian dan perubahan untuk bidang jangkauan. Mereka tersedia pada semua bidang-bidang diatas, tetapi kami akan menggunakan model contoh berikut:</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.contrib.postgres.fields</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">IntegerRangeField</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Event</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=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">200</span><span class=\"p\">)</span>\n    <span class=\"n\">ages</span> <span class=\"o\">=</span> <span class=\"n\">IntegerRangeField</span><span class=\"p\">()</span>\n    <span class=\"n\">start</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">DateTimeField</span><span class=\"p\">()</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"fm\">__str__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">name</span>\n</code></pre></div>\n<p>Kami akan juga menggunakan obyek contoh berikut:</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\">import</span><span class=\"w\"> </span><span class=\"nn\">datetime</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">timezone</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">now</span> <span class=\"o\">=</span> <span class=\"n\">timezone</span><span class=\"o\">.</span><span class=\"n\">now</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Event</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Soft play&#39;</span><span class=\"p\">,</span> <span class=\"n\">ages</span><span class=\"o\">=</span><span class=\"p\">(</span><span class=\"mi\">0</span><span class=\"p\">,</span> <span class=\"mi\">10</span><span class=\"p\">),</span> <span class=\"n\">start</span><span class=\"o\">=</span><span class=\"n\">now</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Event</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=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;Pub trip&#39;</span><span class=\"p\">,</span> <span class=\"n\">ages</span><span class=\"o\">=</span><span class=\"p\">(</span><span class=\"mi\">21</span><span class=\"p\">,</span> <span class=\"kc\">None</span><span class=\"p\">),</span> <span class=\"n\">start</span><span class=\"o\">=</span><span class=\"n\">now</span> <span class=\"o\">-</span> <span class=\"n\">datetime</span><span class=\"o\">.</span><span class=\"n\">timedelta</span><span class=\"p\">(</span><span class=\"n\">days</span><span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">))</span>\n</code></pre></div>\n<p>dan <code class=\"docutils literal notranslate\"><span class=\"pre\">NumericRange</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">psycopg2.extras</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">NumericRange</span>\n</code></pre></div>\n<section id=\"containment-functions\">\n<h4>Fungsi-fungsi penahanan<a class=\"heading-anchor\" href=\"#containment-functions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Seperti bidang-bidang PostgreSQL lainnya, ada tiga standar penahanan penghubung: <code class=\"docutils literal notranslate\"><span class=\"pre\">contains</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">contained_by</span></code> dan <code class=\"docutils literal notranslate\"><span class=\"pre\">overlap</span></code>, menggunakan penghubung SQL <code class=\"docutils literal notranslate\"><span class=\"pre\">&#64;&gt;</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;&#64;</span></code>, dan <code class=\"docutils literal notranslate\"><span class=\"pre\">&amp;&amp;</span></code> masing-masing.</p>\n<section id=\"std-fieldlookup-rangefield.contains\">\n<span id=\"id4\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">contains</span></code><a class=\"heading-anchor\" href=\"#std-fieldlookup-rangefield.contains\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h5>\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=\"n\">Event</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">ages__contains</span><span class=\"o\">=</span><span class=\"n\">NumericRange</span><span class=\"p\">(</span><span class=\"mi\">4</span><span class=\"p\">,</span> <span class=\"mi\">5</span><span class=\"p\">))</span>\n<span class=\"go\">&lt;QuerySet [&lt;Event: Soft play&gt;]&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"std-fieldlookup-rangefield.contained_by\">\n<span id=\"id5\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">contained_by</span></code><a class=\"heading-anchor\" href=\"#std-fieldlookup-rangefield.contained_by\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h5>\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=\"n\">Event</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">ages__contained_by</span><span class=\"o\">=</span><span class=\"n\">NumericRange</span><span class=\"p\">(</span><span class=\"mi\">0</span><span class=\"p\">,</span> <span class=\"mi\">15</span><span class=\"p\">))</span>\n<span class=\"go\">&lt;QuerySet [&lt;Event: Soft play&gt;]&gt;</span>\n</code></pre></div>\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">contained_by</span></code> lookup is also available on the non-range field types:\n<a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.SmallAutoField\" title=\"django.db.models.SmallAutoField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SmallAutoField</span></code></a>,\n<a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.AutoField\" title=\"django.db.models.AutoField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AutoField</span></code></a>, <a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.BigAutoField\" title=\"django.db.models.BigAutoField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BigAutoField</span></code></a>,\n<a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.SmallIntegerField\" title=\"django.db.models.SmallIntegerField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SmallIntegerField</span></code></a>,\n<a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.IntegerField\" title=\"django.db.models.IntegerField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">IntegerField</span></code></a>,\n<a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.BigIntegerField\" title=\"django.db.models.BigIntegerField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BigIntegerField</span></code></a>,\n<a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.DecimalField\" title=\"django.db.models.DecimalField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DecimalField</span></code></a>, <a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.FloatField\" title=\"django.db.models.FloatField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">FloatField</span></code></a>,\n<a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.DateField\" title=\"django.db.models.DateField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DateField</span></code></a>, and\n<a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.DateTimeField\" title=\"django.db.models.DateTimeField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DateTimeField</span></code></a>. For example:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">psycopg2.extras</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">DateTimeTZRange</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Event</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">start__contained_by</span><span class=\"o\">=</span><span class=\"n\">DateTimeTZRange</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>        <span class=\"n\">timezone</span><span class=\"o\">.</span><span class=\"n\">now</span><span class=\"p\">()</span> <span class=\"o\">-</span> <span class=\"n\">datetime</span><span class=\"o\">.</span><span class=\"n\">timedelta</span><span class=\"p\">(</span><span class=\"n\">hours</span><span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>        <span class=\"n\">timezone</span><span class=\"o\">.</span><span class=\"n\">now</span><span class=\"p\">()</span> <span class=\"o\">+</span> <span class=\"n\">datetime</span><span class=\"o\">.</span><span class=\"n\">timedelta</span><span class=\"p\">(</span><span class=\"n\">hours</span><span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    <span class=\"p\">),</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet [&lt;Event: Soft play&gt;]&gt;</span>\n</code></pre></div>\n<aside class=\"version-note version-changed\" data-version=\"3.1\">\n<p class=\"version-note-title\">Changed in Django 3.1</p><p>Support for <a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.SmallAutoField\" title=\"django.db.models.SmallAutoField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SmallAutoField</span></code></a>,\n<a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.AutoField\" title=\"django.db.models.AutoField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AutoField</span></code></a>,\n<a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.BigAutoField\" title=\"django.db.models.BigAutoField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BigAutoField</span></code></a>,\n<a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.SmallIntegerField\" title=\"django.db.models.SmallIntegerField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SmallIntegerField</span></code></a>, and\n<a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.DecimalField\" title=\"django.db.models.DecimalField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DecimalField</span></code></a> was added.</p>\n</aside>\n</section>\n<section id=\"std-fieldlookup-rangefield.overlap\">\n<span id=\"id6\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">overlap</span></code><a class=\"heading-anchor\" href=\"#std-fieldlookup-rangefield.overlap\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h5>\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=\"n\">Event</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">ages__overlap</span><span class=\"o\">=</span><span class=\"n\">NumericRange</span><span class=\"p\">(</span><span class=\"mi\">8</span><span class=\"p\">,</span> <span class=\"mi\">12</span><span class=\"p\">))</span>\n<span class=\"go\">&lt;QuerySet [&lt;Event: Soft play&gt;]&gt;</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"comparison-functions\">\n<h4>Fungsi perbandingan<a class=\"heading-anchor\" href=\"#comparison-functions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Bidang jangkauan mendukung pencarian standar: <a class=\"reference internal\" href=\"/id/3.1/ref/models/querysets/#std-fieldlookup-lt\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">lt</span></code></a>, <a class=\"reference internal\" href=\"/id/3.1/ref/models/querysets/#std-fieldlookup-gt\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">gt</span></code></a>, <a class=\"reference internal\" href=\"/id/3.1/ref/models/querysets/#std-fieldlookup-lte\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">lte</span></code></a> dan <a class=\"reference internal\" href=\"/id/3.1/ref/models/querysets/#std-fieldlookup-gte\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">gte</span></code></a>. Ini tidak terlalu membantu - mereka membandingkan batasan terendah  dahulu dan batasan tertinggi hanya jika dibutuhkan. Ini juga strategi digunakan untuk mengurutkan berdasarkan bidang jangkauan. Itu lebih baik menggunakan penghubung perbandingan jangkauan khusus.</p>\n<section id=\"fully-lt\">\n<span id=\"std-fieldlookup-rangefield.fully_lt\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">fully_lt</span></code><a class=\"heading-anchor\" href=\"#fully-lt\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Jangkauan dikembalikan adalah sangat kurang dari jangkauan dilewatkan. Dengan kata lain, semua titik dalam jangkauan dikembalikan kurang dari semua dalam jangkauan dilewatkan.</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=\"n\">Event</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">ages__fully_lt</span><span class=\"o\">=</span><span class=\"n\">NumericRange</span><span class=\"p\">(</span><span class=\"mi\">11</span><span class=\"p\">,</span> <span class=\"mi\">15</span><span class=\"p\">))</span>\n<span class=\"go\">&lt;QuerySet [&lt;Event: Soft play&gt;]&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"fully-gt\">\n<span id=\"std-fieldlookup-rangefield.fully_gt\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">fully_gt</span></code><a class=\"heading-anchor\" href=\"#fully-gt\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Jangkauan dikembalikan adalah lebih besar dari jangkauan dilewatkan. Dengan kata lain, semua titik dalam jangkauan dikembalikan lebih besar dari semua dalam jangkauan dilewatkan.</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=\"n\">Event</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">ages__fully_gt</span><span class=\"o\">=</span><span class=\"n\">NumericRange</span><span class=\"p\">(</span><span class=\"mi\">11</span><span class=\"p\">,</span> <span class=\"mi\">15</span><span class=\"p\">))</span>\n<span class=\"go\">&lt;QuerySet [&lt;Event: Pub trip&gt;]&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"not-lt\">\n<span id=\"std-fieldlookup-rangefield.not_lt\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">not_lt</span></code><a class=\"heading-anchor\" href=\"#not-lt\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Jangkauan dikembalikan tidak mengandung titik apapun kurang dari jangkauan dilewatkan, yaitu batasan terendah dari jangkauan dikembalikan adalah setidaknya batasan terendah dari jangkauan dilewatkan.</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=\"n\">Event</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">ages__not_lt</span><span class=\"o\">=</span><span class=\"n\">NumericRange</span><span class=\"p\">(</span><span class=\"mi\">0</span><span class=\"p\">,</span> <span class=\"mi\">15</span><span class=\"p\">))</span>\n<span class=\"go\">&lt;QuerySet [&lt;Event: Soft play&gt;, &lt;Event: Pub trip&gt;]&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"not-gt\">\n<span id=\"std-fieldlookup-rangefield.not_gt\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">not_gt</span></code><a class=\"heading-anchor\" href=\"#not-gt\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Jangkauan dikembalikan tidak mengandung titik apapun lebih besar dari jangkauan dilewatkan, yaitu batasan tertinggi dari jangkauan dikembalikan adalah batasan paling tertinggi dari jangkauan dilewatkan.</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=\"n\">Event</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">ages__not_gt</span><span class=\"o\">=</span><span class=\"n\">NumericRange</span><span class=\"p\">(</span><span class=\"mi\">3</span><span class=\"p\">,</span> <span class=\"mi\">10</span><span class=\"p\">))</span>\n<span class=\"go\">&lt;QuerySet [&lt;Event: Soft play&gt;]&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"adjacent-to\">\n<span id=\"std-fieldlookup-rangefield.adjacent_to\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">adjacent_to</span></code><a class=\"heading-anchor\" href=\"#adjacent-to\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Jangkauan dikembalikan berbagi sebuah batasan dengan jangkauan dilewatkan.</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=\"n\">Event</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">ages__adjacent_to</span><span class=\"o\">=</span><span class=\"n\">NumericRange</span><span class=\"p\">(</span><span class=\"mi\">10</span><span class=\"p\">,</span> <span class=\"mi\">21</span><span class=\"p\">))</span>\n<span class=\"go\">&lt;QuerySet [&lt;Event: Soft play&gt;, &lt;Event: Pub trip&gt;]&gt;</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"querying-using-the-bounds\">\n<h4>Meminta menggunakan batasan<a class=\"heading-anchor\" href=\"#querying-using-the-bounds\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Ada tiga perubahan tersedia untuk digunakan dalam permintaan. Anda dapat mengeluarkan batasan terendah dan tertinggi, atau meminta berdasarkan kekosongan.</p>\n<section id=\"startswith\">\n<span id=\"std-fieldlookup-rangefield.startswith\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">startswith</span></code><a class=\"heading-anchor\" href=\"#startswith\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Obyek-obyek dikembalikan memiliki batasan terendah diberikan. Dapat diikat untuk pencarian sah untuk bidang dasar.</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=\"n\">Event</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">ages__startswith</span><span class=\"o\">=</span><span class=\"mi\">21</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet [&lt;Event: Pub trip&gt;]&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"endswith\">\n<span id=\"std-fieldlookup-rangefield.endswith\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">endswith</span></code><a class=\"heading-anchor\" href=\"#endswith\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Obyek-obyek dikembalikan memiliki batasan tertinggi diberikan. Dapat diikat untuk pencarian sah untuk bidang dasar.</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=\"n\">Event</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">ages__endswith</span><span class=\"o\">=</span><span class=\"mi\">10</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet [&lt;Event: Soft play&gt;]&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"isempty\">\n<span id=\"std-fieldlookup-rangefield.isempty\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">isempty</span></code><a class=\"heading-anchor\" href=\"#isempty\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>Obyek-obyek dikembalikan adalah jangkauan kosong. Dapat diikat untuk pencarian sah untuk <a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.BooleanField\" title=\"django.db.models.BooleanField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BooleanField</span></code></a>.</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=\"n\">Event</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">ages__isempty</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet []&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"lower-inc\">\n<span id=\"std-fieldlookup-rangefield.lower_inc\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">lower_inc</span></code><a class=\"heading-anchor\" href=\"#lower-inc\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h5>\n<aside class=\"version-note version-added\" data-version=\"3.1\">\n<p class=\"version-note-title\">New in Django 3.1</p></aside>\n<p>Returns objects that have inclusive or exclusive lower bounds, depending on the\nboolean value passed. Can be chained to valid lookups for a\n<a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.BooleanField\" title=\"django.db.models.BooleanField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BooleanField</span></code></a>.</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=\"n\">Event</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">ages__lower_inc</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet [&lt;Event: Soft play&gt;, &lt;Event: Pub trip&gt;]&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"lower-inf\">\n<span id=\"std-fieldlookup-rangefield.lower_inf\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">lower_inf</span></code><a class=\"heading-anchor\" href=\"#lower-inf\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h5>\n<aside class=\"version-note version-added\" data-version=\"3.1\">\n<p class=\"version-note-title\">New in Django 3.1</p></aside>\n<p>Returns objects that have unbounded (infinite) or bounded lower bound,\ndepending on the boolean value passed. Can be chained to valid lookups for a\n<a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.BooleanField\" title=\"django.db.models.BooleanField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BooleanField</span></code></a>.</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=\"n\">Event</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">ages__lower_inf</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet []&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"upper-inc\">\n<span id=\"std-fieldlookup-rangefield.upper_inc\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">upper_inc</span></code><a class=\"heading-anchor\" href=\"#upper-inc\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h5>\n<aside class=\"version-note version-added\" data-version=\"3.1\">\n<p class=\"version-note-title\">New in Django 3.1</p></aside>\n<p>Returns objects that have inclusive or exclusive upper bounds, depending on the\nboolean value passed. Can be chained to valid lookups for a\n<a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.BooleanField\" title=\"django.db.models.BooleanField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BooleanField</span></code></a>.</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=\"n\">Event</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">ages__upper_inc</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet []&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"upper-inf\">\n<span id=\"std-fieldlookup-rangefield.upper_inf\"></span><h5><code class=\"docutils literal notranslate\"><span class=\"pre\">upper_inf</span></code><a class=\"heading-anchor\" href=\"#upper-inf\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h5>\n<aside class=\"version-note version-added\" data-version=\"3.1\">\n<p class=\"version-note-title\">New in Django 3.1</p></aside>\n<p>Returns objects that have unbounded (infinite) or bounded upper bound,\ndepending on the boolean value passed. Can be chained to valid lookups for a\n<a class=\"reference internal\" href=\"/id/3.1/ref/models/fields/#django.db.models.BooleanField\" title=\"django.db.models.BooleanField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BooleanField</span></code></a>.</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=\"n\">Event</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">ages__upper_inf</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet [&lt;Event: Pub trip&gt;]&gt;</span>\n</code></pre></div>\n</section>\n</section>\n</section>\n<section id=\"defining-your-own-range-types\">\n<h3>Menentukan jenis jangkauan anda sendiri<a class=\"heading-anchor\" href=\"#defining-your-own-range-types\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>PostgreSQL mengizinkan pengertian dari jenis-jenis jangkauan penyesuaian. Penerapan model Django dan bidang formulir menggunakan kelas-kelas dasar dibawah, dan psycopg2 menyediakan <a class=\"reference external\" href=\"https://www.psycopg.org/docs/extras.html#psycopg2.extras.register_range\" title=\"(di Psycopg v2.9)\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">register_range()</span></code></a> untuk mengizinkan penggunaan dari jenis-jenis jangkauan penyesuaian.</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.fields.RangeField\">\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\">RangeField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">options</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.fields.RangeField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Kelas dasar untuk bidang jangkauan model.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.fields.RangeField.base_field\">\n<span class=\"sig-name descname\"><span class=\"pre\">base_field</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.fields.RangeField.base_field\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Kelas bidang model digunakan.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.fields.RangeField.range_type\">\n<span class=\"sig-name descname\"><span class=\"pre\">range_type</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.fields.RangeField.range_type\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Jenis jangkauan psycopg2 digunakan.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.fields.RangeField.form_field\">\n<span class=\"sig-name descname\"><span class=\"pre\">form_field</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.fields.RangeField.form_field\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Kelas bidang formulir digunakan. Harus berupa subkelas dari <a class=\"reference internal\" href=\"#django.contrib.postgres.fields.django.contrib.postgres.forms.BaseRangeField\" title=\"django.contrib.postgres.fields.django.contrib.postgres.forms.BaseRangeField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.forms.BaseRangeField</span></code></a>.</p>\n</dd></dl>\n\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.fields.django.contrib.postgres.forms.BaseRangeField\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-prename descclassname\"><span class=\"pre\">django.contrib.postgres.forms.</span></span><span class=\"sig-name descname\"><span class=\"pre\">BaseRangeField</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.fields.django.contrib.postgres.forms.BaseRangeField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Kelas dasar untuk formulir bidang jangkauan.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.fields.django.contrib.postgres.forms.BaseRangeField.base_field\">\n<span class=\"sig-name descname\"><span class=\"pre\">base_field</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.fields.django.contrib.postgres.forms.BaseRangeField.base_field\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Bidang formulir digunakan.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.fields.django.contrib.postgres.forms.BaseRangeField.range_type\">\n<span class=\"sig-name descname\"><span class=\"pre\">range_type</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.fields.django.contrib.postgres.forms.BaseRangeField.range_type\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Jenis jangkauan psycopg2 digunakan.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"range-operators\">\n<h3>Range operators<a class=\"heading-anchor\" href=\"#range-operators\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<aside class=\"version-note version-added\" data-version=\"3.0\">\n<p class=\"version-note-title\">New in Django 3.0</p></aside>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.fields.RangeOperators\">\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\">RangeOperators</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.fields.RangeOperators\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>PostgreSQL provides a set of SQL operators that can be used together with the\nrange data types (see <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/functions-range.html#RANGE-OPERATORS-TABLE\">the PostgreSQL documentation for the full details of\nrange operators</a>). This class is meant as a\nconvenient method to avoid typos. The operator names overlap with the names of\ncorresponding lookups.</p>\n<div class=\"code-block\" data-language=\"python\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</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 code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">RangeOperators</span><span class=\"p\">:</span>\n    <span class=\"n\">EQUAL</span> <span class=\"o\">=</span> <span class=\"s1\">&#39;=&#39;</span>\n    <span class=\"n\">NOT_EQUAL</span> <span class=\"o\">=</span> <span class=\"s1\">&#39;&lt;&gt;&#39;</span>\n    <span class=\"n\">CONTAINS</span> <span class=\"o\">=</span> <span class=\"s1\">&#39;@&gt;&#39;</span>\n    <span class=\"n\">CONTAINED_BY</span> <span class=\"o\">=</span> <span class=\"s1\">&#39;&lt;@&#39;</span>\n    <span class=\"n\">OVERLAPS</span> <span class=\"o\">=</span> <span class=\"s1\">&#39;&amp;&amp;&#39;</span>\n    <span class=\"n\">FULLY_LT</span> <span class=\"o\">=</span> <span class=\"s1\">&#39;&lt;&lt;&#39;</span>\n    <span class=\"n\">FULLY_GT</span> <span class=\"o\">=</span> <span class=\"s1\">&#39;&gt;&gt;&#39;</span>\n    <span class=\"n\">NOT_LT</span> <span class=\"o\">=</span> <span class=\"s1\">&#39;&amp;&gt;&#39;</span>\n    <span class=\"n\">NOT_GT</span> <span class=\"o\">=</span> <span class=\"s1\">&#39;&amp;&lt;&#39;</span>\n    <span class=\"n\">ADJACENT_TO</span> <span class=\"o\">=</span> <span class=\"s1\">&#39;-|-&#39;</span>\n</code></pre></div>\n</section>\n<section id=\"rangeboundary-expressions\">\n<h3>Pernyataan RangeBoundary()<a class=\"heading-anchor\" href=\"#rangeboundary-expressions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<aside class=\"version-note version-added\" data-version=\"3.0\">\n<p class=\"version-note-title\">New in Django 3.0</p></aside>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.fields.RangeBoundary\">\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\">RangeBoundary</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">inclusive_lower</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">True</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">inclusive_upper</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.fields.RangeBoundary\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.fields.RangeBoundary.inclusive_lower\">\n<span class=\"sig-name descname\"><span class=\"pre\">inclusive_lower</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.fields.RangeBoundary.inclusive_lower\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>If <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> (default), the lower bound is inclusive <code class=\"docutils literal notranslate\"><span class=\"pre\">'['</span></code>, otherwise\nit's exclusive <code class=\"docutils literal notranslate\"><span class=\"pre\">'('</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.fields.RangeBoundary.inclusive_upper\">\n<span class=\"sig-name descname\"><span class=\"pre\">inclusive_upper</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.fields.RangeBoundary.inclusive_upper\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>If <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> (default), the upper bound is exclusive <code class=\"docutils literal notranslate\"><span class=\"pre\">')'</span></code>, otherwise\nit's inclusive <code class=\"docutils literal notranslate\"><span class=\"pre\">']'</span></code>.</p>\n</dd></dl>\n\n</dd></dl>\n\n<p>A <code class=\"docutils literal notranslate\"><span class=\"pre\">RangeBoundary()</span></code> expression represents the range boundaries. It can be\nused with a custom range functions that expected boundaries, for example to\ndefine <a class=\"reference internal\" href=\"/id/3.1/ref/contrib/postgres/constraints/#django.contrib.postgres.constraints.ExclusionConstraint\" title=\"django.contrib.postgres.constraints.ExclusionConstraint\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ExclusionConstraint</span></code></a>. See\n<a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/rangetypes.html#RANGETYPES-INCLUSIVITY\">the PostgreSQL documentation for the full details</a>.</p>\n</section>\n</section>","rootId":"postgresql-specific-model-fields","toc":[{"title":"Mengindeks bidang-bidang ini","anchor":"indexing-these-fields","children":[]},{"title":"ArrayField","anchor":"arrayfield","children":[{"title":"Meminta ArrayField","anchor":"querying-arrayfield","children":[{"title":"contains","anchor":"contains","children":[]},{"title":"contained_by","anchor":"contained-by","children":[]},{"title":"overlap","anchor":"overlap","children":[]},{"title":"len","anchor":"len","children":[]},{"title":"Perubahan indeks","anchor":"index-transforms","children":[]},{"title":"Perubahan potongan","anchor":"slice-transforms","children":[]}]}]},{"title":"Bidang CIText","anchor":"citext-fields","children":[]},{"title":"HStoreField","anchor":"hstorefield","children":[{"title":"Meminta HStoreField","anchor":"querying-hstorefield","children":[{"title":"Kunci pencarian","anchor":"key-lookups","children":[]},{"title":"contains","anchor":"std-fieldlookup-hstorefield.contains","children":[]},{"title":"contained_by","anchor":"std-fieldlookup-hstorefield.contained_by","children":[]},{"title":"has_key","anchor":"has-key","children":[]},{"title":"has_any_keys","anchor":"has-any-keys","children":[]},{"title":"has_keys","anchor":"has-keys","children":[]},{"title":"keys","anchor":"keys","children":[]},{"title":"values","anchor":"values","children":[]}]}]},{"title":"JSONField","anchor":"jsonfield","children":[{"title":"Meminta JSONField","anchor":"querying-jsonfield","children":[]}]},{"title":"Bidang Jangkauan","anchor":"range-fields","children":[{"title":"IntegerRangeField","anchor":"integerrangefield","children":[]},{"title":"BigIntegerRangeField","anchor":"bigintegerrangefield","children":[]},{"title":"DecimalRangeField","anchor":"decimalrangefield","children":[]},{"title":"DateTimeRangeField","anchor":"datetimerangefield","children":[]},{"title":"DateRangeField","anchor":"daterangefield","children":[]},{"title":"Meminta Jangkauan Bidang","anchor":"querying-range-fields","children":[{"title":"Fungsi-fungsi penahanan","anchor":"containment-functions","children":[{"title":"contains","anchor":"std-fieldlookup-rangefield.contains","children":[]},{"title":"contained_by","anchor":"std-fieldlookup-rangefield.contained_by","children":[]},{"title":"overlap","anchor":"std-fieldlookup-rangefield.overlap","children":[]}]},{"title":"Fungsi perbandingan","anchor":"comparison-functions","children":[{"title":"fully_lt","anchor":"fully-lt","children":[]},{"title":"fully_gt","anchor":"fully-gt","children":[]},{"title":"not_lt","anchor":"not-lt","children":[]},{"title":"not_gt","anchor":"not-gt","children":[]},{"title":"adjacent_to","anchor":"adjacent-to","children":[]}]},{"title":"Meminta menggunakan batasan","anchor":"querying-using-the-bounds","children":[{"title":"startswith","anchor":"startswith","children":[]},{"title":"endswith","anchor":"endswith","children":[]},{"title":"isempty","anchor":"isempty","children":[]},{"title":"lower_inc","anchor":"lower-inc","children":[]},{"title":"lower_inf","anchor":"lower-inf","children":[]},{"title":"upper_inc","anchor":"upper-inc","children":[]},{"title":"upper_inf","anchor":"upper-inf","children":[]}]}]},{"title":"Menentukan jenis jangkauan anda sendiri","anchor":"defining-your-own-range-types","children":[]},{"title":"Range operators","anchor":"range-operators","children":[]},{"title":"Pernyataan RangeBoundary()","anchor":"rangeboundary-expressions","children":[]}]}],"breadcrumbs":[{"docname":"ref/index","title":"Acuan API","url":"/id/3.1/ref/"},{"docname":"ref/contrib/index","title":"Paket contrib","url":"/id/3.1/ref/contrib/"},{"docname":"ref/contrib/postgres/index","title":"django.contrib.postgres","url":"/id/3.1/ref/contrib/postgres/"}],"prev":{"docname":"ref/contrib/postgres/constraints","title":"Batasan basisdata spesifik PostgreSQL","url":"/id/3.1/ref/contrib/postgres/constraints/"},"next":{"docname":"ref/contrib/postgres/forms","title":"Bidang formulir khusus PostgreSQL dan widget","url":"/id/3.1/ref/contrib/postgres/forms/"},"formats":{"html":"/id/3.1/ref/contrib/postgres/fields/","markdown":"/id/3.1/ref/contrib/postgres/fields.md","json":"/id/3.1/ref/contrib/postgres/fields.json"},"source":"https://github.com/django/django/blob/stable/3.1.x/docs/ref/contrib/postgres/fields.txt","official":"https://docs.djangoproject.com/id/3.1/ref/contrib/postgres/fields/","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","pt-br","ko","es","el","pl"]}