{"title":"Bidang-bidang model khusus PostgreSQL","version":"4.1","locale":"id","docname":"ref/contrib/postgres/fields","url":"/id/4.1/ref/contrib/postgres/fields/","canonical":"https://djangodocs.dev/id/4.1/ref/contrib/postgres/fields/","summary":"Semua dari bidang ini tersedia dari modul django.contrib.postgres.fields. Index and Field.db_index both create a B-tree index, which isn't particularly…","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\">django.contrib.postgres.fields</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/4.1/ref/models/indexes/#django.db.models.Index\" title=\"django.db.models.Index\"><code class=\"xref py py-class docutils literal notranslate\">Index</code></a> and <a class=\"reference internal\" href=\"/id/4.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\">Field.db_index</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/4.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\">GinIndex</code></a> and\n<a class=\"reference internal\" href=\"/id/4.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\">GistIndex</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\">HStoreField</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\">ArrayField</code></a>.</p>\n</section>\n<section id=\"arrayfield\">\n<h2><code class=\"docutils literal notranslate\">ArrayField</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\">class</span> </em><span class=\"sig-name descname\">ArrayField</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">base_field</em>, <em class=\"sig-param\">size<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>options</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\">base_field</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\">size</code></a>. <code class=\"docutils literal notranslate\">ArrayField</code> can be nested to store multi-dimensional\narrays.</p>\n<p>Jika anda memberikan bidang <a class=\"reference internal\" href=\"/id/4.1/ref/models/fields/#django.db.models.Field.default\" title=\"django.db.models.Field.default\"><code class=\"xref py py-attr docutils literal notranslate\">default</code></a>, pastikan itu adalah callable seperti <code class=\"docutils literal notranslate\">list</code> (untuk sebuah nilai kosong) atau sebuah callable yang mengembalikan list (seperti sebuah fungsi). Salah menggunakan <code class=\"docutils literal notranslate\">default=[]</code> membuat awalan yang berubah-ubah yaitu dibagi diantara semua contoh dari <code class=\"docutils literal notranslate\">ArrayField</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\">base_field</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>Specifies the underlying data type and behavior for the array. It\nshould be an instance of a subclass of\n<a class=\"reference internal\" href=\"/id/4.1/ref/models/fields/#django.db.models.Field\" title=\"django.db.models.Field\"><code class=\"xref py py-class docutils literal notranslate\">Field</code></a>. For example, it could be an\n<a class=\"reference internal\" href=\"/id/4.1/ref/models/fields/#django.db.models.IntegerField\" title=\"django.db.models.IntegerField\"><code class=\"xref py py-class docutils literal notranslate\">IntegerField</code></a> or a\n<a class=\"reference internal\" href=\"/id/4.1/ref/models/fields/#django.db.models.CharField\" title=\"django.db.models.CharField\"><code class=\"xref py py-class docutils literal notranslate\">CharField</code></a>. Most field types are permitted,\nwith the exception of those handling relational data\n(<a class=\"reference internal\" href=\"/id/4.1/ref/models/fields/#django.db.models.ForeignKey\" title=\"django.db.models.ForeignKey\"><code class=\"xref py py-class docutils literal notranslate\">ForeignKey</code></a>,\n<a class=\"reference internal\" href=\"/id/4.1/ref/models/fields/#django.db.models.OneToOneField\" title=\"django.db.models.OneToOneField\"><code class=\"xref py py-class docutils literal notranslate\">OneToOneField</code></a> and\n<a class=\"reference internal\" href=\"/id/4.1/ref/models/fields/#django.db.models.ManyToManyField\" title=\"django.db.models.ManyToManyField\"><code class=\"xref py py-class docutils literal notranslate\">ManyToManyField</code></a>) and file fields (\n<a class=\"reference internal\" href=\"/id/4.1/ref/models/fields/#django.db.models.FileField\" title=\"django.db.models.FileField\"><code class=\"xref py py-class docutils literal notranslate\">FileField</code></a> and\n<a class=\"reference internal\" href=\"/id/4.1/ref/models/fields/#django.db.models.ImageField\" title=\"django.db.models.ImageField\"><code class=\"xref py py-class docutils literal notranslate\">ImageField</code></a>).</p>\n<p>Itu memungkinkan menyarang bidang-bidang larik - anda dapat menentukan sebuah instance dari <code class=\"docutils literal notranslate\">ArrayField</code> sebagai <code class=\"docutils literal notranslate\">base_field</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=\"nn\">django.contrib.postgres.fields</span> <span class=\"kn\">import</span> ArrayField\n<span class=\"kn\">from</span> <span class=\"nn\">django.db</span> <span class=\"kn\">import</span> models\n\n<span class=\"k\">class</span> <span class=\"nc\">ChessBoard</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Model<span class=\"p\">):</span>\n    board <span class=\"o\">=</span> ArrayField<span class=\"p\">(</span>\n        ArrayField<span class=\"p\">(</span>\n            models<span class=\"o\">.</span>CharField<span class=\"p\">(</span>max_length<span class=\"o\">=</span><span class=\"mi\">10</span><span class=\"p\">,</span> blank<span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">),</span>\n            size<span class=\"o\">=</span><span class=\"mi\">8</span><span class=\"p\">,</span>\n        <span class=\"p\">),</span>\n        size<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\">size</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\">ArrayField</code>, whether you use the <code class=\"docutils literal notranslate\">size</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=\"nn\">django.contrib.postgres.fields</span> <span class=\"kn\">import</span> ArrayField\n<span class=\"kn\">from</span> <span class=\"nn\">django.db</span> <span class=\"kn\">import</span> models\n\n<span class=\"k\">class</span> <span class=\"nc\">Board</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Model<span class=\"p\">):</span>\n    pieces <span class=\"o\">=</span> ArrayField<span class=\"p\">(</span>ArrayField<span class=\"p\">(</span>models<span class=\"o\">.</span>IntegerField<span class=\"p\">()))</span>\n\n<span class=\"c1\"># Valid</span>\nBoard<span class=\"p\">(</span>pieces<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>\nBoard<span class=\"p\">(</span>pieces<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\">None</code>.</p>\n</aside>\n<section id=\"querying-arrayfield\">\n<h3>Meminta <code class=\"docutils literal notranslate\">ArrayField</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\">ArrayField</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=\"nn\">django.contrib.postgres.fields</span> <span class=\"kn\">import</span> ArrayField\n<span class=\"kn\">from</span> <span class=\"nn\">django.db</span> <span class=\"kn\">import</span> models\n\n<span class=\"k\">class</span> <span class=\"nc\">Post</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Model<span class=\"p\">):</span>\n    name <span class=\"o\">=</span> models<span class=\"o\">.</span>CharField<span class=\"p\">(</span>max_length<span class=\"o\">=</span><span class=\"mi\">200</span><span class=\"p\">)</span>\n    tags <span class=\"o\">=</span> ArrayField<span class=\"p\">(</span>models<span class=\"o\">.</span>CharField<span class=\"p\">(</span>max_length<span class=\"o\">=</span><span class=\"mi\">200</span><span class=\"p\">),</span> blank<span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n\n    <span class=\"k\">def</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>name\n</code></pre></div>\n<section id=\"contains\">\n<span id=\"std-fieldlookup-arrayfield.contains\"></span><h4><code class=\"docutils literal notranslate\">contains</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/4.1/ref/models/querysets/#std-fieldlookup-contains\"><code class=\"xref std std-lookup docutils literal notranslate\">contains</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\">ArrayField</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\">&#64;&gt;</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>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;First post&#39;</span><span class=\"p\">,</span> tags<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>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;Second post&#39;</span><span class=\"p\">,</span> tags<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>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;Third post&#39;</span><span class=\"p\">,</span> tags<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>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>tags__contains<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>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>tags__contains<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>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>tags__contains<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\">contained_by</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\">contains</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\">&#64;</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>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;First post&#39;</span><span class=\"p\">,</span> tags<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>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;Second post&#39;</span><span class=\"p\">,</span> tags<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>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;Third post&#39;</span><span class=\"p\">,</span> tags<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>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>tags__contained_by<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>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>tags__contained_by<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\">overlap</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\">&amp;&amp;</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>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;First post&#39;</span><span class=\"p\">,</span> tags<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>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;Second post&#39;</span><span class=\"p\">,</span> tags<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>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;Third post&#39;</span><span class=\"p\">,</span> tags<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>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>tags__overlap<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>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>tags__overlap<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\">len</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>Returns the length of the array. The lookups available afterward are those\navailable for <a class=\"reference internal\" href=\"/id/4.1/ref/models/fields/#django.db.models.IntegerField\" title=\"django.db.models.IntegerField\"><code class=\"xref py py-class docutils literal notranslate\">IntegerField</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>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;First post&#39;</span><span class=\"p\">,</span> tags<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>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;Second post&#39;</span><span class=\"p\">,</span> tags<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>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>tags__len<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\">size</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\">base_field</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>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;First post&#39;</span><span class=\"p\">,</span> tags<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>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;Second post&#39;</span><span class=\"p\">,</span> tags<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>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>tags__0<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>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>tags__1__iexact<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>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>tags__276<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\">slices</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>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;First post&#39;</span><span class=\"p\">,</span> tags<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>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;Second post&#39;</span><span class=\"p\">,</span> tags<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>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;Third post&#39;</span><span class=\"p\">,</span> tags<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>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>tags__0_1<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>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>tags__0_2__contains<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\">indexes</code></a> menggunakan pengindeksan berdasarkan-0 untuk tetap dengan Python.</p>\n</aside>\n<aside class=\"admonition-multidimensional-arrays-with-indexes-and-slices admonition\" role=\"note\">\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\">CIText</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\">class</span> </em><span class=\"sig-name descname\">CIText</span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\">**</span>options</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.19.9\">the performance considerations</a> sebelum menggunakan itu.</p>\n<p>To use <code class=\"docutils literal notranslate\">citext</code>, use the <a class=\"reference internal\" href=\"/id/4.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\">CITextExtension</code></a> operation to\n<a class=\"reference internal\" href=\"/id/4.1/ref/contrib/postgres/operations/#create-postgresql-extensions\"><span class=\"std std-ref\">set up the citext extension</span></a> in\nPostgreSQL before the first <code class=\"docutils literal notranslate\">CreateModel</code> migration operation.</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\">ArrayField</code></a> dari bidang <code class=\"docutils literal notranslate\">CIText</code>, anda harus menambah <code class=\"docutils literal notranslate\">'django.contrib.postgres'</code> dalam <a class=\"reference internal\" href=\"/id/4.1/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\">INSTALLED_APPS</code></a> anda, sebaliknya nilai bidang akan muncul sebagai string seperti <code class=\"docutils literal notranslate\">'{thoughts,django}'</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\">class</span> </em><span class=\"sig-name descname\">CICharField</span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\">**</span>options</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\">class</span> </em><span class=\"sig-name descname\">CIEmailField</span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\">**</span>options</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\">class</span> </em><span class=\"sig-name descname\">CITextField</span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\">**</span>options</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/4.1/ref/models/fields/#django.db.models.CharField\" title=\"django.db.models.CharField\"><code class=\"xref py py-class docutils literal notranslate\">CharField</code></a>, <a class=\"reference internal\" href=\"/id/4.1/ref/models/fields/#django.db.models.EmailField\" title=\"django.db.models.EmailField\"><code class=\"xref py py-class docutils literal notranslate\">EmailField</code></a>, dan <a class=\"reference internal\" href=\"/id/4.1/ref/models/fields/#django.db.models.TextField\" title=\"django.db.models.TextField\"><code class=\"xref py py-class docutils literal notranslate\">TextField</code></a>, masing-masing.</p>\n<p><code class=\"docutils literal notranslate\">max_length</code> tidak akan dipaksa dalam basisdata sejak perilaku <code class=\"docutils literal notranslate\">citext</code> mirip pada teks <code class=\"docutils literal notranslate\">text</code> PostgreSQL.</p>\n</dd></dl>\n\n<aside class=\"admonition-case-insensitive-collations admonition\" role=\"note\">\n<p class=\"admonition-title\">Case-insensitive collations</p>\n<p>On PostgreSQL 12+, it's preferable to use non-deterministic collations\ninstead of the <code class=\"docutils literal notranslate\">citext</code> extension. You can create them using the\n<a class=\"reference internal\" href=\"/id/4.1/ref/contrib/postgres/operations/#django.contrib.postgres.operations.CreateCollation\" title=\"django.contrib.postgres.operations.CreateCollation\"><code class=\"xref py py-class docutils literal notranslate\">CreateCollation</code></a> migration\noperation. For more details, see <a class=\"reference internal\" href=\"/id/4.1/ref/contrib/postgres/operations/#manage-postgresql-collations\"><span class=\"std std-ref\">Managing collations using migrations</span></a> and\nthe PostgreSQL documentation about <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/collation.html#COLLATION-NONDETERMINISTIC\">non-deterministic collations</a>.</p>\n</aside>\n</section>\n<section id=\"hstorefield\">\n<h2><code class=\"docutils literal notranslate\">HStoreField</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\">class</span> </em><span class=\"sig-name descname\">HStoreField</span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\">**</span>options</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\">dict</code>. Kunci-kunci harus berupa string, dan nilai-nilai mungkin salah satu string atau null (<code class=\"docutils literal notranslate\">None</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\">'django.contrib.postgres'</code> dalam <a class=\"reference internal\" href=\"/id/4.1/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\">INSTALLED_APPS</code></a> anda.</p></li>\n<li><p><a class=\"reference internal\" href=\"/id/4.1/ref/contrib/postgres/operations/#create-postgresql-extensions\"><span class=\"std std-ref\">Set up the hstore extension</span></a> in\nPostgreSQL.</p></li>\n</ol>\n<p>Anda akan melihat sebuah kesalahan seperti <code class=\"docutils literal notranslate\">can't adapt type 'dict'</code> jika anda melewati langkah pertama, atau <code class=\"docutils literal notranslate\">type &quot;hstore&quot; does not exist</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/4.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\">KeysValidator</code></a>.</p>\n</aside>\n<section id=\"querying-hstorefield\">\n<h3>Meminta <code class=\"docutils literal notranslate\">HStoreField</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\">HStoreField</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=\"nn\">django.contrib.postgres.fields</span> <span class=\"kn\">import</span> HStoreField\n<span class=\"kn\">from</span> <span class=\"nn\">django.db</span> <span class=\"kn\">import</span> models\n\n<span class=\"k\">class</span> <span class=\"nc\">Dog</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Model<span class=\"p\">):</span>\n    name <span class=\"o\">=</span> models<span class=\"o\">.</span>CharField<span class=\"p\">(</span>max_length<span class=\"o\">=</span><span class=\"mi\">200</span><span class=\"p\">)</span>\n    data <span class=\"o\">=</span> HStoreField<span class=\"p\">()</span>\n\n    <span class=\"k\">def</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>name\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>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;Rufus&#39;</span><span class=\"p\">,</span> data<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>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;Meg&#39;</span><span class=\"p\">,</span> data<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>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>data__breed<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>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>data__breed__contains<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>or use <code class=\"docutils literal notranslate\">F()</code> expressions to annotate a key value. 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=\"nn\">django.db.models</span> <span class=\"kn\">import</span> F\n<span class=\"gp\">&gt;&gt;&gt; </span>rufus <span class=\"o\">=</span> Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>breed<span class=\"o\">=</span>F<span class=\"p\">(</span><span class=\"s2\">&quot;data__breed&quot;</span><span class=\"p\">))[</span><span class=\"mi\">0</span><span class=\"p\">]</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>rufus<span class=\"o\">.</span>breed\n<span class=\"go\">&#39;labrador&#39;</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\">hstorefield.contains</code></a> lookup sebagai gantinya.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Catatan</p>\n<p>Key transforms can also be chained with: <a class=\"reference internal\" href=\"/id/4.1/ref/models/querysets/#std-fieldlookup-contains\"><code class=\"xref std std-lookup docutils literal notranslate\">contains</code></a>,\n<a class=\"reference internal\" href=\"/id/4.1/ref/models/querysets/#std-fieldlookup-icontains\"><code class=\"xref std std-lookup docutils literal notranslate\">icontains</code></a>, <a class=\"reference internal\" href=\"/id/4.1/ref/models/querysets/#std-fieldlookup-endswith\"><code class=\"xref std std-lookup docutils literal notranslate\">endswith</code></a>, <a class=\"reference internal\" href=\"/id/4.1/ref/models/querysets/#std-fieldlookup-iendswith\"><code class=\"xref std std-lookup docutils literal notranslate\">iendswith</code></a>,\n<a class=\"reference internal\" href=\"/id/4.1/ref/models/querysets/#std-fieldlookup-iexact\"><code class=\"xref std std-lookup docutils literal notranslate\">iexact</code></a>, <a class=\"reference internal\" href=\"/id/4.1/ref/models/querysets/#std-fieldlookup-regex\"><code class=\"xref std std-lookup docutils literal notranslate\">regex</code></a>, <a class=\"reference internal\" href=\"/id/4.1/ref/models/querysets/#std-fieldlookup-iregex\"><code class=\"xref std std-lookup docutils literal notranslate\">iregex</code></a>, <a class=\"reference internal\" href=\"/id/4.1/ref/models/querysets/#std-fieldlookup-startswith\"><code class=\"xref std std-lookup docutils literal notranslate\">startswith</code></a>,\nand <a class=\"reference internal\" href=\"/id/4.1/ref/models/querysets/#std-fieldlookup-istartswith\"><code class=\"xref std std-lookup docutils literal notranslate\">istartswith</code></a> lookups.</p>\n</aside>\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\">contains</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/4.1/ref/models/querysets/#std-fieldlookup-contains\"><code class=\"xref std std-lookup docutils literal notranslate\">contains</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\">HStoreField</code></a>. Obyek-obyek yang dikembalikan adalah itu dimana <code class=\"docutils literal notranslate\">dict</code> dari pasangan nilai-kunci yang diberikan dikandung semua dalam bidang. Itu menggunakan penghubung SQ: <code class=\"docutils literal notranslate\">A&gt;</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>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;Rufus&#39;</span><span class=\"p\">,</span> data<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>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;Meg&#39;</span><span class=\"p\">,</span> data<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>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;Fred&#39;</span><span class=\"p\">,</span> data<span class=\"o\">=</span><span class=\"p\">{})</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>data__contains<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>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>data__contains<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\">contained_by</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\">contains</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\">&lt;&#64;</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>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;Rufus&#39;</span><span class=\"p\">,</span> data<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>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;Meg&#39;</span><span class=\"p\">,</span> data<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>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;Fred&#39;</span><span class=\"p\">,</span> data<span class=\"o\">=</span><span class=\"p\">{})</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>data__contained_by<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>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>data__contained_by<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\">has_key</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\">?</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>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;Rufus&#39;</span><span class=\"p\">,</span> data<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>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;Meg&#39;</span><span class=\"p\">,</span> data<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>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>data__has_key<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\">has_any_keys</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\">?|</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>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;Rufus&#39;</span><span class=\"p\">,</span> data<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>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;Meg&#39;</span><span class=\"p\">,</span> data<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>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;Fred&#39;</span><span class=\"p\">,</span> data<span class=\"o\">=</span><span class=\"p\">{})</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>data__has_any_keys<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\">has_keys</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\">?&amp;</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>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;Rufus&#39;</span><span class=\"p\">,</span> data<span class=\"o\">=</span><span class=\"p\">{})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;Meg&#39;</span><span class=\"p\">,</span> data<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>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>data__has_keys<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\">keys</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\">ArrayField</code></a>. Menggunakan fungsi SQL <code class=\"docutils literal notranslate\">akeys()</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>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;Rufus&#39;</span><span class=\"p\">,</span> data<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>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;Meg&#39;</span><span class=\"p\">,</span> data<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>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>data__keys__overlap<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\">values</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\">ArrayField</code></a>. Uses the SQL function\n<code class=\"docutils literal notranslate\">avals()</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>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;Rufus&#39;</span><span class=\"p\">,</span> data<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>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;Meg&#39;</span><span class=\"p\">,</span> data<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>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>data__values__contains<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=\"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\">[)</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>). The default bounds can be changed for non-discrete range\nfields (<a class=\"reference internal\" href=\"#django.contrib.postgres.fields.DateTimeRangeField\" title=\"django.contrib.postgres.fields.DateTimeRangeField\"><code class=\"xref py py-class docutils literal notranslate\">DateTimeRangeField</code></a> and <a class=\"reference internal\" href=\"#django.contrib.postgres.fields.DecimalRangeField\" title=\"django.contrib.postgres.fields.DecimalRangeField\"><code class=\"xref py py-class docutils literal notranslate\">DecimalRangeField</code></a>) by using\nthe <code class=\"docutils literal notranslate\">default_bounds</code> argument.</p>\n<section id=\"integerrangefield\">\n<h3><code class=\"docutils literal notranslate\">IntegerRangeField</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\">class</span> </em><span class=\"sig-name descname\">IntegerRangeField</span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\">**</span>options</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/4.1/ref/models/fields/#django.db.models.IntegerField\" title=\"django.db.models.IntegerField\"><code class=\"xref py py-class docutils literal notranslate\">IntegerField</code></a>. Diwakilkan oleh <code class=\"docutils literal notranslate\">int4range</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\">NumericRange</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\">[)</code>.</p>\n</dd></dl>\n\n</section>\n<section id=\"bigintegerrangefield\">\n<h3><code class=\"docutils literal notranslate\">BigIntegerRangeField</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\">class</span> </em><span class=\"sig-name descname\">BigIntegerRangeField</span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\">**</span>options</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/4.1/ref/models/fields/#django.db.models.BigIntegerField\" title=\"django.db.models.BigIntegerField\"><code class=\"xref py py-class docutils literal notranslate\">BigIntegerField</code></a>. Diwakilkan oleh <code class=\"docutils literal notranslate\">int8range</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\">NumericRange</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\">[)</code>.</p>\n</dd></dl>\n\n</section>\n<section id=\"decimalrangefield\">\n<h3><code class=\"docutils literal notranslate\">DecimalRangeField</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\">class</span> </em><span class=\"sig-name descname\">DecimalRangeField</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">default_bounds<span class=\"o\">=</span><span class=\"default_value\">'[)'</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>options</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/4.1/ref/models/fields/#django.db.models.DecimalField\" title=\"django.db.models.DecimalField\"><code class=\"xref py py-class docutils literal notranslate\">DecimalField</code></a>. Diwakili oleh sebuah <code class=\"docutils literal notranslate\">numrange</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\">NumericRange</code></a> di Python.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.fields.DecimalRangeField.default_bounds\">\n<span class=\"sig-name descname\">default_bounds</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.fields.DecimalRangeField.default_bounds\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-added\" data-version=\"4.1\" role=\"note\">\n<p class=\"version-note-title\">New in Django 4.1</p></aside>\n<p>Optional. The value of <code class=\"docutils literal notranslate\">bounds</code> for list and tuple inputs. The\ndefault is lower bound included, upper bound excluded, that is <code class=\"docutils literal notranslate\">[)</code>\n(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>). <code class=\"docutils literal notranslate\">default_bounds</code> is not used for\n<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\">NumericRange</code></a> inputs.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"datetimerangefield\">\n<h3><code class=\"docutils literal notranslate\">DateTimeRangeField</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\">class</span> </em><span class=\"sig-name descname\">DateTimeRangeField</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">default_bounds<span class=\"o\">=</span><span class=\"default_value\">'[)'</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>options</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/4.1/ref/models/fields/#django.db.models.DateTimeField\" title=\"django.db.models.DateTimeField\"><code class=\"xref py py-class docutils literal notranslate\">DateTimeField</code></a>. Diwakilkan oleh <code class=\"docutils literal notranslate\">tstzrange</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\">DateTimeTZRange</code></a> dan Python.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.fields.DateTimeRangeField.default_bounds\">\n<span class=\"sig-name descname\">default_bounds</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.fields.DateTimeRangeField.default_bounds\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-added\" data-version=\"4.1\" role=\"note\">\n<p class=\"version-note-title\">New in Django 4.1</p></aside>\n<p>Optional. The value of <code class=\"docutils literal notranslate\">bounds</code> for list and tuple inputs. The\ndefault is lower bound included, upper bound excluded, that is <code class=\"docutils literal notranslate\">[)</code>\n(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>). <code class=\"docutils literal notranslate\">default_bounds</code> is not used for\n<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\">DateTimeTZRange</code></a> inputs.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"daterangefield\">\n<h3><code class=\"docutils literal notranslate\">DateRangeField</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\">class</span> </em><span class=\"sig-name descname\">DateRangeField</span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\">**</span>options</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/4.1/ref/models/fields/#django.db.models.DateField\" title=\"django.db.models.DateField\"><code class=\"xref py py-class docutils literal notranslate\">DateField</code></a>. Diwakilkan oleh <code class=\"docutils literal notranslate\">daterange</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\">DateRange</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\">[)</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=\"nn\">django.contrib.postgres.fields</span> <span class=\"kn\">import</span> IntegerRangeField\n<span class=\"kn\">from</span> <span class=\"nn\">django.db</span> <span class=\"kn\">import</span> models\n\n<span class=\"k\">class</span> <span class=\"nc\">Event</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Model<span class=\"p\">):</span>\n    name <span class=\"o\">=</span> models<span class=\"o\">.</span>CharField<span class=\"p\">(</span>max_length<span class=\"o\">=</span><span class=\"mi\">200</span><span class=\"p\">)</span>\n    ages <span class=\"o\">=</span> IntegerRangeField<span class=\"p\">()</span>\n    start <span class=\"o\">=</span> models<span class=\"o\">.</span>DateTimeField<span class=\"p\">()</span>\n\n    <span class=\"k\">def</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>name\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=\"nn\">datetime</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.utils</span> <span class=\"kn\">import</span> timezone\n<span class=\"gp\">&gt;&gt;&gt; </span>now <span class=\"o\">=</span> timezone<span class=\"o\">.</span>now<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Event<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;Soft play&#39;</span><span class=\"p\">,</span> ages<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> start<span class=\"o\">=</span>now<span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Event<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s1\">&#39;Pub trip&#39;</span><span class=\"p\">,</span> ages<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> start<span class=\"o\">=</span>now <span class=\"o\">-</span> datetime<span class=\"o\">.</span>timedelta<span class=\"p\">(</span>days<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\">NumericRange</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=\"nn\">psycopg2.extras</span> <span class=\"kn\">import</span> NumericRange\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\">contains</code>, <code class=\"docutils literal notranslate\">contained_by</code> dan <code class=\"docutils literal notranslate\">overlap</code>, menggunakan penghubung SQL <code class=\"docutils literal notranslate\">&#64;&gt;</code>, <code class=\"docutils literal notranslate\">&lt;&#64;</code>, dan <code class=\"docutils literal notranslate\">&amp;&amp;</code> masing-masing.</p>\n<section id=\"std-fieldlookup-rangefield.contains\">\n<span id=\"id4\"></span><h5><code class=\"docutils literal notranslate\">contains</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>Event<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>ages__contains<span class=\"o\">=</span>NumericRange<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\">contained_by</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>Event<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>ages__contained_by<span class=\"o\">=</span>NumericRange<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\">contained_by</code> lookup is also available on the non-range field types:\n<a class=\"reference internal\" href=\"/id/4.1/ref/models/fields/#django.db.models.SmallAutoField\" title=\"django.db.models.SmallAutoField\"><code class=\"xref py py-class docutils literal notranslate\">SmallAutoField</code></a>,\n<a class=\"reference internal\" href=\"/id/4.1/ref/models/fields/#django.db.models.AutoField\" title=\"django.db.models.AutoField\"><code class=\"xref py py-class docutils literal notranslate\">AutoField</code></a>, <a class=\"reference internal\" href=\"/id/4.1/ref/models/fields/#django.db.models.BigAutoField\" title=\"django.db.models.BigAutoField\"><code class=\"xref py py-class docutils literal notranslate\">BigAutoField</code></a>,\n<a class=\"reference internal\" href=\"/id/4.1/ref/models/fields/#django.db.models.SmallIntegerField\" title=\"django.db.models.SmallIntegerField\"><code class=\"xref py py-class docutils literal notranslate\">SmallIntegerField</code></a>,\n<a class=\"reference internal\" href=\"/id/4.1/ref/models/fields/#django.db.models.IntegerField\" title=\"django.db.models.IntegerField\"><code class=\"xref py py-class docutils literal notranslate\">IntegerField</code></a>,\n<a class=\"reference internal\" href=\"/id/4.1/ref/models/fields/#django.db.models.BigIntegerField\" title=\"django.db.models.BigIntegerField\"><code class=\"xref py py-class docutils literal notranslate\">BigIntegerField</code></a>,\n<a class=\"reference internal\" href=\"/id/4.1/ref/models/fields/#django.db.models.DecimalField\" title=\"django.db.models.DecimalField\"><code class=\"xref py py-class docutils literal notranslate\">DecimalField</code></a>, <a class=\"reference internal\" href=\"/id/4.1/ref/models/fields/#django.db.models.FloatField\" title=\"django.db.models.FloatField\"><code class=\"xref py py-class docutils literal notranslate\">FloatField</code></a>,\n<a class=\"reference internal\" href=\"/id/4.1/ref/models/fields/#django.db.models.DateField\" title=\"django.db.models.DateField\"><code class=\"xref py py-class docutils literal notranslate\">DateField</code></a>, and\n<a class=\"reference internal\" href=\"/id/4.1/ref/models/fields/#django.db.models.DateTimeField\" title=\"django.db.models.DateTimeField\"><code class=\"xref py py-class docutils literal notranslate\">DateTimeField</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=\"nn\">psycopg2.extras</span> <span class=\"kn\">import</span> DateTimeTZRange\n<span class=\"gp\">&gt;&gt;&gt; </span>Event<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>\n<span class=\"gp\">... </span>    start__contained_by<span class=\"o\">=</span>DateTimeTZRange<span class=\"p\">(</span>\n<span class=\"gp\">... </span>        timezone<span class=\"o\">.</span>now<span class=\"p\">()</span> <span class=\"o\">-</span> datetime<span class=\"o\">.</span>timedelta<span class=\"p\">(</span>hours<span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>        timezone<span class=\"o\">.</span>now<span class=\"p\">()</span> <span class=\"o\">+</span> datetime<span class=\"o\">.</span>timedelta<span class=\"p\">(</span>hours<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</section>\n<section id=\"std-fieldlookup-rangefield.overlap\">\n<span id=\"id6\"></span><h5><code class=\"docutils literal notranslate\">overlap</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>Event<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>ages__overlap<span class=\"o\">=</span>NumericRange<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/4.1/ref/models/querysets/#std-fieldlookup-lt\"><code class=\"xref std std-lookup docutils literal notranslate\">lt</code></a>, <a class=\"reference internal\" href=\"/id/4.1/ref/models/querysets/#std-fieldlookup-gt\"><code class=\"xref std std-lookup docutils literal notranslate\">gt</code></a>, <a class=\"reference internal\" href=\"/id/4.1/ref/models/querysets/#std-fieldlookup-lte\"><code class=\"xref std std-lookup docutils literal notranslate\">lte</code></a> dan <a class=\"reference internal\" href=\"/id/4.1/ref/models/querysets/#std-fieldlookup-gte\"><code class=\"xref std std-lookup docutils literal notranslate\">gte</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\">fully_lt</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>Event<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>ages__fully_lt<span class=\"o\">=</span>NumericRange<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\">fully_gt</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>Event<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>ages__fully_gt<span class=\"o\">=</span>NumericRange<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\">not_lt</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>Event<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>ages__not_lt<span class=\"o\">=</span>NumericRange<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\">not_gt</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>Event<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>ages__not_gt<span class=\"o\">=</span>NumericRange<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\">adjacent_to</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>Event<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>ages__adjacent_to<span class=\"o\">=</span>NumericRange<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>Range fields support several extra lookups.</p>\n<section id=\"startswith\">\n<span id=\"std-fieldlookup-rangefield.startswith\"></span><h5><code class=\"docutils literal notranslate\">startswith</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>Event<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>ages__startswith<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\">endswith</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>Event<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>ages__endswith<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\">isempty</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/4.1/ref/models/fields/#django.db.models.BooleanField\" title=\"django.db.models.BooleanField\"><code class=\"xref py py-class docutils literal notranslate\">BooleanField</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>Event<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>ages__isempty<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\">lower_inc</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<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/4.1/ref/models/fields/#django.db.models.BooleanField\" title=\"django.db.models.BooleanField\"><code class=\"xref py py-class docutils literal notranslate\">BooleanField</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>Event<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>ages__lower_inc<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\">lower_inf</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<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/4.1/ref/models/fields/#django.db.models.BooleanField\" title=\"django.db.models.BooleanField\"><code class=\"xref py py-class docutils literal notranslate\">BooleanField</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>Event<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>ages__lower_inf<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\">upper_inc</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<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/4.1/ref/models/fields/#django.db.models.BooleanField\" title=\"django.db.models.BooleanField\"><code class=\"xref py py-class docutils literal notranslate\">BooleanField</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>Event<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>ages__upper_inc<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\">upper_inf</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<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/4.1/ref/models/fields/#django.db.models.BooleanField\" title=\"django.db.models.BooleanField\"><code class=\"xref py py-class docutils literal notranslate\">BooleanField</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>Event<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>ages__upper_inf<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\">register_range()</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\">class</span> </em><span class=\"sig-name descname\">RangeField</span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\">**</span>options</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\">base_field</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\">range_type</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\">form_field</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\">django.contrib.postgres.forms.BaseRangeField</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\">class</span> </em><span class=\"sig-prename descclassname\">django.contrib.postgres.forms.</span><span class=\"sig-name descname\">BaseRangeField</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\">base_field</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\">range_type</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<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.fields.RangeOperators\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">RangeOperators</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=\"nc\">RangeOperators</span><span class=\"p\">:</span>\n    EQUAL <span class=\"o\">=</span> <span class=\"s1\">&#39;=&#39;</span>\n    NOT_EQUAL <span class=\"o\">=</span> <span class=\"s1\">&#39;&lt;&gt;&#39;</span>\n    CONTAINS <span class=\"o\">=</span> <span class=\"s1\">&#39;@&gt;&#39;</span>\n    CONTAINED_BY <span class=\"o\">=</span> <span class=\"s1\">&#39;&lt;@&#39;</span>\n    OVERLAPS <span class=\"o\">=</span> <span class=\"s1\">&#39;&amp;&amp;&#39;</span>\n    FULLY_LT <span class=\"o\">=</span> <span class=\"s1\">&#39;&lt;&lt;&#39;</span>\n    FULLY_GT <span class=\"o\">=</span> <span class=\"s1\">&#39;&gt;&gt;&#39;</span>\n    NOT_LT <span class=\"o\">=</span> <span class=\"s1\">&#39;&amp;&gt;&#39;</span>\n    NOT_GT <span class=\"o\">=</span> <span class=\"s1\">&#39;&amp;&lt;&#39;</span>\n    ADJACENT_TO <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<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.fields.RangeBoundary\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">RangeBoundary</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">inclusive_lower<span class=\"o\">=</span><span class=\"default_value\">True</span></em>, <em class=\"sig-param\">inclusive_upper<span class=\"o\">=</span><span class=\"default_value\">False</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\">inclusive_lower</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\">True</code> (default), the lower bound is inclusive <code class=\"docutils literal notranslate\">'['</code>, otherwise\nit's exclusive <code class=\"docutils literal notranslate\">'('</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\">inclusive_upper</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\">False</code> (default), the upper bound is exclusive <code class=\"docutils literal notranslate\">')'</code>, otherwise\nit's inclusive <code class=\"docutils literal notranslate\">']'</code>.</p>\n</dd></dl>\n\n</dd></dl>\n\n<p>A <code class=\"docutils literal notranslate\">RangeBoundary()</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/4.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\">ExclusionConstraint</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":"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/4.1/ref/"},{"docname":"ref/contrib/index","title":"Paket contrib","url":"/id/4.1/ref/contrib/"},{"docname":"ref/contrib/postgres/index","title":"django.contrib.postgres","url":"/id/4.1/ref/contrib/postgres/"}],"prev":{"docname":"ref/contrib/postgres/expressions","title":"PostgreSQL specific query expressions","url":"/id/4.1/ref/contrib/postgres/expressions/"},"next":{"docname":"ref/contrib/postgres/forms","title":"Bidang formulir khusus PostgreSQL dan widget","url":"/id/4.1/ref/contrib/postgres/forms/"},"formats":{"html":"/id/4.1/ref/contrib/postgres/fields/","markdown":"/id/4.1/ref/contrib/postgres/fields.md","json":"/id/4.1/ref/contrib/postgres/fields.json"},"source":"https://github.com/django/django/blob/stable/4.1.x/docs/ref/contrib/postgres/fields.txt","official":"https://docs.djangoproject.com/id/4.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","it","pt-br","ko","es","el","pl"]}