{"title":"PostgreSQL 固有のモデルフィールド","version":"6.0","locale":"ja","docname":"ref/contrib/postgres/fields","url":"/ja/6.0/ref/contrib/postgres/fields/","canonical":"https://djangodocs.dev/ja/6.0/ref/contrib/postgres/fields/","summary":"これらのフィールドは全て django.contrib.postgres.fields モジュールから利用できます。","html":"<h1>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>これらのフィールドは全て <code class=\"docutils literal notranslate\">django.contrib.postgres.fields</code> モジュールから利用できます。</p>\n<section id=\"indexing-these-fields\">\n<h2>これらのフィールドにインデックスを付ける<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=\"/ja/6.0/ref/models/indexes/#django.db.models.Index\" title=\"django.db.models.Index\"><code class=\"xref py py-class docutils literal notranslate\">Index</code></a> と <a class=\"reference internal\" href=\"/ja/6.0/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> は両方とも B-tree インデックスを作成しますが、複雑なデータ型をクエリする際にはあまり役立ちません。 <a class=\"reference internal\" href=\"/ja/6.0/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> や <a class=\"reference internal\" href=\"/ja/6.0/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> などのインデックスの方が適しています。ただし、適切なインデックスの選択は使用しているクエリに依存します。一般的には、GiST は <a class=\"reference internal\" href=\"#range-fields\"><span class=\"std std-ref\">範囲フィールド</span></a> や <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> には適しており、GIN は <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 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> として別のフィールドインスタンスを渡します。 <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> は、多次元配列を格納するためにネストすることもできます。</p>\n<p>フィールドに <a class=\"reference internal\" href=\"/ja/6.0/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> を与える場合は、それが <code class=\"docutils literal notranslate\">list</code> (空のデフォルトの場合) やリストを返す呼び出し可能オブジェクト (関数など) のような呼び出し可能オブジェクトであることを確認してください。 <code class=\"docutils literal notranslate\">default=[]</code> を誤って使用すると、すべての <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>これは必須の引数です。</p>\n<p>配列のベースとなるデータ型や動作を指定します。これは、 <a class=\"reference internal\" href=\"/ja/6.0/ref/models/fields/#django.db.models.Field\" title=\"django.db.models.Field\"><code class=\"xref py py-class docutils literal notranslate\">Field</code></a> のサブクラスのインスタンスである必要があります。例えば <a class=\"reference internal\" href=\"/ja/6.0/ref/models/fields/#django.db.models.IntegerField\" title=\"django.db.models.IntegerField\"><code class=\"xref py py-class docutils literal notranslate\">IntegerField</code></a> や <a class=\"reference internal\" href=\"/ja/6.0/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=\"/ja/6.0/ref/models/fields/#django.db.models.ForeignKey\" title=\"django.db.models.ForeignKey\"><code class=\"xref py py-class docutils literal notranslate\">ForeignKey</code></a>, <a class=\"reference internal\" href=\"/ja/6.0/ref/models/fields/#django.db.models.OneToOneField\" title=\"django.db.models.OneToOneField\"><code class=\"xref py py-class docutils literal notranslate\">OneToOneField</code></a>, <a class=\"reference internal\" href=\"/ja/6.0/ref/models/fields/#django.db.models.ManyToManyField\" title=\"django.db.models.ManyToManyField\"><code class=\"xref py py-class docutils literal notranslate\">ManyToManyField</code></a>) やファイルフィールド (<a class=\"reference internal\" href=\"/ja/6.0/ref/models/fields/#django.db.models.FileField\" title=\"django.db.models.FileField\"><code class=\"xref py py-class docutils literal notranslate\">FileField</code></a>, <a class=\"reference internal\" href=\"/ja/6.0/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>配列フィールドは入れ子にできます。 <code class=\"docutils literal notranslate\">base_field</code> として <code class=\"docutils literal notranslate\">ArrayField</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=\"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\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>データベースとモデル間の値の変換、データと設定の検証、シリアライズはすべて、基盤となるベースフィールドに委譲されます。</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>これはオプションの引数です。</p>\n<p>指定された場合、配列は指定された最大サイズを持ちます。これはデータベースに渡されますが、現在のところ PostgreSQL はこの制限を強制しません。</p>\n</dd></dl>\n\n</dd></dl>\n\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">注釈</p>\n<p><code class=\"docutils literal notranslate\">ArrayField</code> を入れ子にする際、 <code class=\"docutils literal notranslate\">size</code> パラメータを使用するかどうかに関わらず、PostgreSQL では配列は長方形である必要があります。</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\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\n<span class=\"c1\"># Valid</span>\nBoard<span class=\"p\">(</span>\n    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<span class=\"p\">)</span>\n\n<span class=\"c1\"># Not valid</span>\nBoard<span class=\"p\">(</span>\n    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<span class=\"p\">)</span>\n</code></pre></div>\n<p>不規則な形状が必要な場合は、基になるフィールドをnullable にし、値を <code class=\"docutils literal notranslate\">None</code> でパディングする必要があります。</p>\n</aside>\n<section id=\"querying-arrayfield\">\n<h3><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><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<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\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><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> 上で <a class=\"reference internal\" href=\"/ja/6.0/ref/models/querysets/#std-fieldlookup-contains\"><code class=\"xref std std-lookup docutils literal notranslate\">contains</code></a> ルックアップはオーバーライドされます。返されるオブジェクトは、渡された値がデータの部分集合であるものです。これは SQL 演算子 <code class=\"docutils literal notranslate\">&#64;&gt;</code> を使用します。たとえば、:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;First post&quot;</span><span class=\"p\">,</span> tags<span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s2\">&quot;thoughts&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;django&quot;</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=\"s2\">&quot;Second post&quot;</span><span class=\"p\">,</span> tags<span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s2\">&quot;thoughts&quot;</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=\"s2\">&quot;Third post&quot;</span><span class=\"p\">,</span> tags<span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s2\">&quot;tutorial&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;django&quot;</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=\"s2\">&quot;thoughts&quot;</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=\"s2\">&quot;django&quot;</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=\"s2\">&quot;django&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;thoughts&quot;</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>これは <a class=\"reference internal\" href=\"#std-fieldlookup-arrayfield.contains\"><code class=\"xref std std-lookup docutils literal notranslate\">contains</code></a> ルックアップの逆です。返されるオブジェクトは、データが渡された値の部分集合であるものです。これにはSQL演算子 <code class=\"docutils literal notranslate\">&lt;&#64;</code> が使用されます。たとえば:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;First post&quot;</span><span class=\"p\">,</span> tags<span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s2\">&quot;thoughts&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;django&quot;</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=\"s2\">&quot;Second post&quot;</span><span class=\"p\">,</span> tags<span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s2\">&quot;thoughts&quot;</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=\"s2\">&quot;Third post&quot;</span><span class=\"p\">,</span> tags<span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s2\">&quot;tutorial&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;django&quot;</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=\"s2\">&quot;thoughts&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;django&quot;</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=\"s2\">&quot;thoughts&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;django&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;tutorial&quot;</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>データが渡された値といずれか一致するオブジェクトを返します。SQL 演算子 <code class=\"docutils literal notranslate\">(&amp;&amp;)</code> を使用します。例:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;First post&quot;</span><span class=\"p\">,</span> tags<span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s2\">&quot;thoughts&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;django&quot;</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=\"s2\">&quot;Second post&quot;</span><span class=\"p\">,</span> tags<span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s2\">&quot;thoughts&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;tutorial&quot;</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=\"s2\">&quot;Third post&quot;</span><span class=\"p\">,</span> tags<span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s2\">&quot;tutorial&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;django&quot;</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=\"s2\">&quot;thoughts&quot;</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=\"s2\">&quot;thoughts&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;tutorial&quot;</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\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>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>values_list<span class=\"p\">(</span><span class=\"s2\">&quot;tags&quot;</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>配列の長さを返します。この後に利用可能なルックアップは <a class=\"reference internal\" href=\"/ja/6.0/ref/models/fields/#django.db.models.IntegerField\" title=\"django.db.models.IntegerField\"><code class=\"xref py py-class docutils literal notranslate\">IntegerField</code></a> で利用可能なものです。たとえば:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;First post&quot;</span><span class=\"p\">,</span> tags<span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s2\">&quot;thoughts&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;django&quot;</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=\"s2\">&quot;Second post&quot;</span><span class=\"p\">,</span> tags<span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s2\">&quot;thoughts&quot;</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>インデックスのトランスフォーム<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>インデックスは配列内のインデックスに変換されます。非負の整数ならどれでも使用できます。配列の <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> 属性を超えていてもエラーは発生しません。変換後に利用可能なルックアップは、 <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> 属性から得られるものです。たとえば:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;First post&quot;</span><span class=\"p\">,</span> tags<span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s2\">&quot;thoughts&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;django&quot;</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=\"s2\">&quot;Second post&quot;</span><span class=\"p\">,</span> tags<span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s2\">&quot;thoughts&quot;</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=\"s2\">&quot;thoughts&quot;</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=\"s2\">&quot;Django&quot;</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=\"s2\">&quot;javascript&quot;</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\">注釈</p>\n<p>PostgreSQL は素のSQLを記述する際、配列フィールドに1から始まるインデックスを使用します。しかし、これらのインデックスと <a class=\"reference internal\" href=\"#std-fieldlookup-arrayfield.slice\"><code class=\"xref std std-lookup docutils literal notranslate\">slices</code></a> で使用されるインデックスは、Pythonとの一貫性を保つために0から始まるインデックスを使用します。</p>\n</aside>\n</section>\n<section id=\"slice-transforms\">\n<span id=\"std-fieldlookup-arrayfield.slice\"></span><h4>スライス トランスフォーム<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>スライス トランスフォームは、配列の一部を切り取ります。 2つの非負整数をアンダースコアで区切って使用できます。トランスフォーム後に利用可能なルックアップは変わりません。 例を挙げると、</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>Post<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;First post&quot;</span><span class=\"p\">,</span> tags<span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s2\">&quot;thoughts&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;django&quot;</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=\"s2\">&quot;Second post&quot;</span><span class=\"p\">,</span> tags<span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s2\">&quot;thoughts&quot;</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=\"s2\">&quot;Third post&quot;</span><span class=\"p\">,</span> tags<span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s2\">&quot;django&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;python&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;thoughts&quot;</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=\"s2\">&quot;thoughts&quot;</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=\"s2\">&quot;thoughts&quot;</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\">注釈</p>\n<p>PostgreSQLは素のSQLを記述する際、配列フィールドに対して1から始まるインデックスを使用します。しかし、これらのスライスや <a class=\"reference internal\" href=\"#std-fieldlookup-arrayfield.index\"><code class=\"xref std std-lookup docutils literal notranslate\">indexes</code></a> で使用されるスライスは、Pythonとの一貫性を保つために0から始まるインデックスを使用します。</p>\n</aside>\n<aside class=\"admonition-multidimensional-arrays-with-indexes-and-slices admonition\" role=\"note\">\n<p class=\"admonition-title\">インデックスとスライスを使用した多次元配列</p>\n<p>PostgreSQL は、多次元配列でインデックスやスライスを使うときに、かなり難解な動作をします。最終的な基礎データまで到達するためにインデックスを使うのは常にうまくいきますが、他のほとんどのスライスはデータベースレベルで奇妙な動作をするので、 Django が論理的で一貫性のある方法でサポートすることはできません。</p>\n</aside>\n</section>\n</section>\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>キーと値のペアを格納するためのフィールド。Python のデータ型は <code class=\"docutils literal notranslate\">dict</code> です。キーは文字列でなければならず、値は文字列または NULL (Python では <code class=\"docutils literal notranslate\">None</code>) でなければなりません。</p>\n<p>このフィールドを使用するには、次のようにします:</p>\n<ol class=\"arabic simple\">\n<li><p><a class=\"reference internal\" href=\"/ja/6.0/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\">INSTALLED_APPS</code></a> に <code class=\"docutils literal notranslate\">'django.contrib.postgres'</code> を追加します。</p></li>\n<li><p><a class=\"reference internal\" href=\"/ja/6.0/ref/contrib/postgres/operations/#create-postgresql-extensions\"><span class=\"std std-ref\">PostgreSQL の hstore 拡張</span></a> を設定します。</p></li>\n</ol>\n<p>最初のステップをスキップすると <code class=\"docutils literal notranslate\">can't adapt type 'dict'</code> というエラーが表示され、2番目のステップをスキップすると <code class=\"docutils literal notranslate\">type &quot;hstore&quot; does not exist</code> というエラーが表示されます。</p>\n</dd></dl>\n\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">注釈</p>\n<p>与えられたフィールドに対して有効なキーを要求したり、制限したりすることが有用な場合があります。これは <a class=\"reference internal\" href=\"/ja/6.0/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><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><code class=\"docutils literal notranslate\">HStoreField</code> では、キーによるクエリに加えて、多くのカスタムルックアップが利用可能です。</p>\n<p>次のようなモデル例を使用します:</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\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>キーのルックアップ<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>指定されたキーに基づいてクエリを実行するには、そのキーをルックアップ名として使用します:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Rufus&quot;</span><span class=\"p\">,</span> data<span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;breed&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;labrador&quot;</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=\"s2\">&quot;Meg&quot;</span><span class=\"p\">,</span> data<span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;breed&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;collie&quot;</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=\"s2\">&quot;collie&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet [&lt;Dog: Meg&gt;]&gt;</span>\n</code></pre></div>\n<p>キーのルックアップの後に他のルックアップを連結することもできます:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>data__breed__contains<span class=\"o\">=</span><span class=\"s2\">&quot;l&quot;</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><code class=\"docutils literal notranslate\">F()</code> 式を使ってキー値にアノテーションを付けることもできます。たとえば:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"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>クエリしたいキーが他のルックアップの名前と衝突する場合は、代わりに <a class=\"reference internal\" href=\"#std-fieldlookup-hstorefield.contains\"><code class=\"xref std std-lookup docutils literal notranslate\">hstorefield.contains</code></a> ルックアップを使用する必要があります。</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">注釈</p>\n<p>キーのトランスフォームは、 <a class=\"reference internal\" href=\"/ja/6.0/ref/models/querysets/#std-fieldlookup-contains\"><code class=\"xref std std-lookup docutils literal notranslate\">contains</code></a>、<a class=\"reference internal\" href=\"/ja/6.0/ref/models/querysets/#std-fieldlookup-icontains\"><code class=\"xref std std-lookup docutils literal notranslate\">icontains</code></a>、<a class=\"reference internal\" href=\"/ja/6.0/ref/models/querysets/#std-fieldlookup-endswith\"><code class=\"xref std std-lookup docutils literal notranslate\">endswith</code></a>、 <a class=\"reference internal\" href=\"/ja/6.0/ref/models/querysets/#std-fieldlookup-iendswith\"><code class=\"xref std std-lookup docutils literal notranslate\">iendswith</code></a>、<a class=\"reference internal\" href=\"/ja/6.0/ref/models/querysets/#std-fieldlookup-iexact\"><code class=\"xref std std-lookup docutils literal notranslate\">iexact</code></a>、<a class=\"reference internal\" href=\"/ja/6.0/ref/models/querysets/#std-fieldlookup-regex\"><code class=\"xref std std-lookup docutils literal notranslate\">regex</code></a>、<a class=\"reference internal\" href=\"/ja/6.0/ref/models/querysets/#std-fieldlookup-iregex\"><code class=\"xref std std-lookup docutils literal notranslate\">iregex</code></a>、<a class=\"reference internal\" href=\"/ja/6.0/ref/models/querysets/#std-fieldlookup-startswith\"><code class=\"xref std std-lookup docutils literal notranslate\">startswith</code></a>、および <a class=\"reference internal\" href=\"/ja/6.0/ref/models/querysets/#std-fieldlookup-istartswith\"><code class=\"xref std std-lookup docutils literal notranslate\">istartswith</code></a>  ルックアップとも連結できます。</p>\n</aside>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">警告</p>\n<p>どのような文字列でも hstore 値のキーになり得るので、以下に列挙されている以外のルックアップはキーのルックアップとして解釈されます。エラーは発生しません。タイプミスには特に注意し、クエリが意図したとおりに動作するか常にチェックしてください。</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><a class=\"reference internal\" href=\"/ja/6.0/ref/models/querysets/#std-fieldlookup-contains\"><code class=\"xref std std-lookup docutils literal notranslate\">contains</code></a> ルックアップは、<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> 上でオーバーライドされています。返されるオブジェクトは、指定されたキーと値の <code class=\"docutils literal notranslate\">dict</code> がフィールド内にすべて含まれるものです。SQL 演算子 <code class=\"docutils literal notranslate\">&#64;&gt;</code> を使用します。たとえば:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Rufus&quot;</span><span class=\"p\">,</span> data<span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;breed&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;labrador&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;owner&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Bob&quot;</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=\"s2\">&quot;Meg&quot;</span><span class=\"p\">,</span> data<span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;breed&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;collie&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;owner&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Bob&quot;</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=\"s2\">&quot;Fred&quot;</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=\"s2\">&quot;owner&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Bob&quot;</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=\"s2\">&quot;breed&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;collie&quot;</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>これは、 <a class=\"reference internal\" href=\"#std-fieldlookup-hstorefield.contains\"><code class=\"xref std std-lookup docutils literal notranslate\">contains</code></a> ルックアップの逆です。返されるオブジェクトは、オブジェクト上のキーと値のペアが渡された値のサブセットであるものです。これは、SQL演算子 <code class=\"docutils literal notranslate\">&lt;&#64;</code> を使用します。たとえば:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Rufus&quot;</span><span class=\"p\">,</span> data<span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;breed&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;labrador&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;owner&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Bob&quot;</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=\"s2\">&quot;Meg&quot;</span><span class=\"p\">,</span> data<span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;breed&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;collie&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;owner&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Bob&quot;</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=\"s2\">&quot;Fred&quot;</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=\"s2\">&quot;breed&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;collie&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;owner&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Bob&quot;</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=\"s2\">&quot;breed&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;collie&quot;</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>与えられたキーがデータ内にあるオブジェクトを返します。SQL演算子は <code class=\"docutils literal notranslate\">?</code> を使用します。例:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Rufus&quot;</span><span class=\"p\">,</span> data<span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;breed&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;labrador&quot;</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=\"s2\">&quot;Meg&quot;</span><span class=\"p\">,</span> data<span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;breed&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;collie&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;owner&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Bob&quot;</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=\"s2\">&quot;owner&quot;</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>与えられたキーのいずれかがデータ内にあるオブジェクトを返します。SQL演算子 <code class=\"docutils literal notranslate\">?|</code> を使用します。例:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Rufus&quot;</span><span class=\"p\">,</span> data<span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;breed&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;labrador&quot;</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=\"s2\">&quot;Meg&quot;</span><span class=\"p\">,</span> data<span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;owner&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Bob&quot;</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=\"s2\">&quot;Fred&quot;</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=\"s2\">&quot;owner&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;breed&quot;</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>与えられたキーが全てデータ中に含まれるオブジェクトを返します。SQL演算子 <code class=\"docutils literal notranslate\">?&amp;</code> を使用します。例:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Rufus&quot;</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=\"s2\">&quot;Meg&quot;</span><span class=\"p\">,</span> data<span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;breed&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;collie&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;owner&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Bob&quot;</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=\"s2\">&quot;breed&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;owner&quot;</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>与えられた値がキーの配列であるオブジェクトを返します。順序が信頼できるわけではないことに注意してください。したがって、このトランスフォームは主に <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> でのルックアップと組み合わせて使用するために便利です。SQL 関数 <code class=\"docutils literal notranslate\">akeys()</code> を使用します。例:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Rufus&quot;</span><span class=\"p\">,</span> data<span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;toy&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;bone&quot;</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=\"s2\">&quot;Meg&quot;</span><span class=\"p\">,</span> data<span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;breed&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;collie&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;owner&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Bob&quot;</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=\"s2\">&quot;breed&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;toy&quot;</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>値の配列が与えられた値であるオブジェクトを返します。このトランスフォームは主に <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> のルックアップと組み合わせて使用すると便利です。SQL 関数 <code class=\"docutils literal notranslate\">avals()</code> を使用します。たとえば:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>Dog<span class=\"o\">.</span>objects<span class=\"o\">.</span>create<span class=\"p\">(</span>name<span class=\"o\">=</span><span class=\"s2\">&quot;Rufus&quot;</span><span class=\"p\">,</span> data<span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;breed&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;labrador&quot;</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=\"s2\">&quot;Meg&quot;</span><span class=\"p\">,</span> data<span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;breed&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;collie&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;owner&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Bob&quot;</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=\"s2\">&quot;collie&quot;</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>範囲フィールド<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>PostgreSQLの組み込み範囲型に対応する5つの範囲フィールド型があります。これらのフィールドは値の範囲を格納するために使用されます。例えば、イベントの開始と終了のタイムスタンプや、アクティビティに適した年齢の範囲などです。</p>\n<p>すべての範囲フィールドはPythonでは <a class=\"reference external\" href=\"https://www.psycopg.org/psycopg3/docs/basic/pgtypes.html#adapt-range\" title=\"(in psycopg)\"><span class=\"xref std std-ref\">psycopg Range オブジェクト</span></a> に変換されますが、境界情報が不要な場合はタプルを入力として受け付けます。デフォルトは下界を含み、上界を含まない <code class=\"docutils literal notranslate\">[)</code> です (<a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/rangetypes.html#RANGETYPES-IO\">different bounds</a> の詳細についてはPostgreSQLのドキュメントを参照してください) 。離散範囲でないフィールド (<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> と <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>) のデフォルトの境界は <code class=\"docutils literal notranslate\">default_bounds</code> 引数で変更できます。</p>\n<aside class=\"admonition-postgresql-normalizes-a-range-with-no-points-to-the-empty-range admonition\" role=\"note\">\n<p class=\"admonition-title\">PostgreSQL は要素を持たない範囲を正規化して空の範囲として扱います。</p>\n<p><code class=\"docutils literal notranslate\">Range(datetime.date(2005, 6, 21), datetime.date(2005, 6, 21))</code> や <code class=\"docutils literal notranslate\">[4, 4)</code> のように、下限を含み上限を含まない範囲において、両方の値が等しい場合は、範囲内に要素が存在しません。このような場合、PostgreSQL はその範囲を空として正規化して保存し、元の境界値は失われます。詳細は、<a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/rangetypes.html#RANGETYPES-IO\">PostgreSQL のドキュメント</a> を参照してください。</p>\n</aside>\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>整数の範囲を格納します。 <a class=\"reference internal\" href=\"/ja/6.0/ref/models/fields/#django.db.models.IntegerField\" title=\"django.db.models.IntegerField\"><code class=\"xref py py-class docutils literal notranslate\">IntegerField</code></a> に基づいています。データベースでは <code class=\"docutils literal notranslate\">int4range</code> で表現され、 Python では <code class=\"docutils literal notranslate\">django.db.backends.postgresql.psycopg_any.NumericRange</code> で表現されます。</p>\n<p>データ保存時に指定された境界に関係なく、PostgreSQLは常に下界を含み上界を除いた正規形、つまり <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>大きな整数の範囲を格納します。 <a class=\"reference internal\" href=\"/ja/6.0/ref/models/fields/#django.db.models.BigIntegerField\" title=\"django.db.models.BigIntegerField\"><code class=\"xref py py-class docutils literal notranslate\">BigIntegerField</code></a> に基づいています。データベースでは <code class=\"docutils literal notranslate\">int8range</code> で表現され、 Python では <code class=\"docutils literal notranslate\">django.db.backends.postgresql.psycopg_any.NumericRange</code> で表現されます。</p>\n<p>データ保存時に指定された境界に関係なく、PostgreSQLは常に下界を含み上界を除いた正規形、つまり <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>浮動小数点値の範囲を格納します。 <a class=\"reference internal\" href=\"/ja/6.0/ref/models/fields/#django.db.models.DecimalField\" title=\"django.db.models.DecimalField\"><code class=\"xref py py-class docutils literal notranslate\">DecimalField</code></a> に基づいています。データベースでは <code class=\"docutils literal notranslate\">numrange</code> で表現され、Python では <code class=\"docutils literal notranslate\">django.db.backends.postgresql.psycopg_any.NumericRange</code> で表現されます。</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><p>オプション。リストとタプルの入力に対する <code class=\"docutils literal notranslate\">bounds</code> の値。デフォルトは下限を含み、上限を除く <code class=\"docutils literal notranslate\">[)</code> です (<a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/rangetypes.html#RANGETYPES-IO\">different bounds</a> の詳細については PostgreSQL のドキュメント を参照してください)。 <code class=\"docutils literal notranslate\">default_bounds</code> は <code class=\"docutils literal notranslate\">django.db.backends.postgresql.psycopg_any.NumericRange</code> 入力には使用されません。</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>タイムスタンプの範囲を格納します。 <a class=\"reference internal\" href=\"/ja/6.0/ref/models/fields/#django.db.models.DateTimeField\" title=\"django.db.models.DateTimeField\"><code class=\"xref py py-class docutils literal notranslate\">DateTimeField</code></a> に基づいています。データベースでは <code class=\"docutils literal notranslate\">tstzrange</code> で表現され、Python では <code class=\"docutils literal notranslate\">django.db.backends.postgresql.psycopg_any.DateTimeTZRange</code> で表現されます。</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><p>オプション。リストとタプルの入力に対する <code class=\"docutils literal notranslate\">bounds</code> の値。デフォルトは下限を含み、上限を除く <code class=\"docutils literal notranslate\">[)</code> です (<a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/rangetypes.html#RANGETYPES-IO\">different bounds</a> の詳細については PostgreSQL のドキュメント を参照してください)。 <code class=\"docutils literal notranslate\">default_bounds</code> は <code class=\"docutils literal notranslate\">django.db.backends.postgresql.psycopg_any.DateTimeTZRange</code> 入力には使用されません。</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>日付の範囲を格納します。 <a class=\"reference internal\" href=\"/ja/6.0/ref/models/fields/#django.db.models.DateField\" title=\"django.db.models.DateField\"><code class=\"xref py py-class docutils literal notranslate\">DateField</code></a> に基づいています。データベースでは <code class=\"docutils literal notranslate\">daterange</code> で表現され、Python では <code class=\"docutils literal notranslate\">django.db.backends.postgresql.psycopg_any.DateRange</code> で表現されます。</p>\n<p>データ保存時に指定された境界に関係なく、PostgreSQLは常に下界を含み上界を除いた正規形、つまり <code class=\"docutils literal notranslate\">[)</code> で範囲を返します。</p>\n</dd></dl>\n\n</section>\n<section id=\"querying-range-fields\">\n<h3>範囲フィールドへのクエリ<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>範囲フィールド用のカスタムルックアップとトランスフォームが多数あります。これらは上記のすべてのフィールドで利用できますが、次の例のモデルを使います:</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\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>また、以下のオブジェクト例も使用します:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"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=\"s2\">&quot;Soft play&quot;</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>\n<span class=\"gp\">... </span>    name<span class=\"o\">=</span><span class=\"s2\">&quot;Pub trip&quot;</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<span class=\"gp\">... </span><span class=\"p\">)</span>\n</code></pre></div>\n<p>そして <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\">django.db.backends.postgresql.psycopg_any</span> <span class=\"kn\">import</span> NumericRange\n</code></pre></div>\n<section id=\"containment-functions\">\n<h4>包含関数<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>他の PostgreSQL フィールドと同様に、3つの標準の包含演算子があります。 <code class=\"docutils literal notranslate\">contains</code>, <code class=\"docutils literal notranslate\">contained_by</code>, <code class=\"docutils literal notranslate\">overlap</code> で、それぞれ SQL 演算子 <code class=\"docutils literal notranslate\">&#64;&gt;</code>, <code class=\"docutils literal notranslate\">&lt;&#64;</code>, <code class=\"docutils literal notranslate\">&amp;&amp;</code> が使われます。</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>また、<code class=\"docutils literal notranslate\">contained_by</code> ルックアップは範囲以外のフィールド型でも利用できます: <a class=\"reference internal\" href=\"/ja/6.0/ref/models/fields/#django.db.models.SmallAutoField\" title=\"django.db.models.SmallAutoField\"><code class=\"xref py py-class docutils literal notranslate\">SmallAutoField</code></a>, <a class=\"reference internal\" href=\"/ja/6.0/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=\"/ja/6.0/ref/models/fields/#django.db.models.BigAutoField\" title=\"django.db.models.BigAutoField\"><code class=\"xref py py-class docutils literal notranslate\">BigAutoField</code></a>, <a class=\"reference internal\" href=\"/ja/6.0/ref/models/fields/#django.db.models.SmallIntegerField\" title=\"django.db.models.SmallIntegerField\"><code class=\"xref py py-class docutils literal notranslate\">SmallIntegerField</code></a>, <a class=\"reference internal\" href=\"/ja/6.0/ref/models/fields/#django.db.models.IntegerField\" title=\"django.db.models.IntegerField\"><code class=\"xref py py-class docutils literal notranslate\">IntegerField</code></a>, <a class=\"reference internal\" href=\"/ja/6.0/ref/models/fields/#django.db.models.BigIntegerField\" title=\"django.db.models.BigIntegerField\"><code class=\"xref py py-class docutils literal notranslate\">BigIntegerField</code></a>, <a class=\"reference internal\" href=\"/ja/6.0/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=\"/ja/6.0/ref/models/fields/#django.db.models.FloatField\" title=\"django.db.models.FloatField\"><code class=\"xref py py-class docutils literal notranslate\">FloatField</code></a>, <a class=\"reference internal\" href=\"/ja/6.0/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 <a class=\"reference internal\" href=\"/ja/6.0/ref/models/fields/#django.db.models.DateTimeField\" title=\"django.db.models.DateTimeField\"><code class=\"xref py py-class docutils literal notranslate\">DateTimeField</code></a> 。たとえば:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.db.backends.postgresql.psycopg_any</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>比較関数<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>範囲フィールドは標準のルックアップをサポートしています: <a class=\"reference internal\" href=\"/ja/6.0/ref/models/querysets/#std-fieldlookup-lt\"><code class=\"xref std std-lookup docutils literal notranslate\">lt</code></a>, <a class=\"reference internal\" href=\"/ja/6.0/ref/models/querysets/#std-fieldlookup-gt\"><code class=\"xref std std-lookup docutils literal notranslate\">gt</code></a>, <a class=\"reference internal\" href=\"/ja/6.0/ref/models/querysets/#std-fieldlookup-lte\"><code class=\"xref std std-lookup docutils literal notranslate\">lte</code></a>, および <a class=\"reference internal\" href=\"/ja/6.0/ref/models/querysets/#std-fieldlookup-gte\"><code class=\"xref std std-lookup docutils literal notranslate\">gte</code></a>。これらはあまり有用ではありません。必要な場合のみ上限値を比較するように、まず下限値を比較します。これは範囲フィールドでのソートにも使用される戦略です。特定の範囲比較演算子を使用する方が良いです。</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>返される範囲は、渡された範囲よりも厳密に小さいです。つまり、返される範囲内のすべての点は、渡された範囲内のすべての点よりも小さいです。</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>返される範囲は、渡された範囲よりも厳密に大きいです。つまり、返される範囲のすべての点は、渡された範囲のすべての点よりも大きくなります。</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>返される範囲には、渡された範囲より小さいポイントは含まれません。つまり、返される範囲の下限は少なくとも渡された範囲の下限となります。</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>返される範囲には、渡された範囲よりも大きい値が含まれませんい。つまり、返される範囲の上限は、渡された範囲の上限以下になります。</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>返される範囲は、渡された範囲と境界を共有します。</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>境界を使ったクエリ<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>範囲フィールドはいくつかの追加ルックアップをサポートしています。</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>返されるオブジェクトは与えられた下界を持つ。ベースフィールドの有効なルックアップに連結できます。</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>返されるオブジェクトは与えられた上限を持つ。ベースフィールドの有効なルックアップに連結できます。</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>返されるオブジェクトは空の範囲です。 <a class=\"reference internal\" href=\"/ja/6.0/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>与えられた真偽値に基づき、包含もしくは非包含な下限値を持つオブジェクトを返します。 <a class=\"reference internal\" href=\"/ja/6.0/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>渡された真偽値に応じて、無限大または有界下限境界を持つオブジェクトを返します。 <a class=\"reference internal\" href=\"/ja/6.0/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>渡されたブール値に応じて、上限値を包含または非包含として持つオブジェクトを返します。これは、 <a class=\"reference internal\" href=\"/ja/6.0/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>渡された真偽値に応じて、上限が無制限 (無限) または有界のオブジェクトを返します。 <a class=\"reference internal\" href=\"/ja/6.0/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>独自の範囲型を定義する<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では、独自の範囲型の定義が可能です。Djangoのモデルとフォームフィールドの実装は、以下の基本クラスを使用しており、 <code class=\"docutils literal notranslate\">psycopg</code> は独自の範囲型の使用を可能にする <a class=\"reference external\" href=\"https://www.psycopg.org/psycopg3/docs/basic/pgtypes.html#psycopg.types.range.register_range\" title=\"(in psycopg)\"><code class=\"xref py py-func docutils literal notranslate\">register_range()</code></a> を提供しています。</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>モデル範囲フィールドの基底クラス。</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>使用するモデルフィールドクラス。</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>使用する範囲のタイプ。</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>使用するフォームフィールドクラス。これは <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>フォームの範囲フィールドの基底クラス。</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>使用するフォームフィールド。</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>使用する範囲のタイプ。</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"range-operators\">\n<h3>範囲演算子<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 は範囲データ型と共に使用できる SQL 演算子のセットを提供しています (範囲演算子の完全な詳細については <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 range operators</a> を参照してください) 。このクラスはタイプミスを避けるための便利な方法です。演算子名は対応するルックアップの名前と重複します。</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=\"s2\">&quot;=&quot;</span>\n    NOT_EQUAL <span class=\"o\">=</span> <span class=\"s2\">&quot;&lt;&gt;&quot;</span>\n    CONTAINS <span class=\"o\">=</span> <span class=\"s2\">&quot;@&gt;&quot;</span>\n    CONTAINED_BY <span class=\"o\">=</span> <span class=\"s2\">&quot;&lt;@&quot;</span>\n    OVERLAPS <span class=\"o\">=</span> <span class=\"s2\">&quot;&amp;&amp;&quot;</span>\n    FULLY_LT <span class=\"o\">=</span> <span class=\"s2\">&quot;&lt;&lt;&quot;</span>\n    FULLY_GT <span class=\"o\">=</span> <span class=\"s2\">&quot;&gt;&gt;&quot;</span>\n    NOT_LT <span class=\"o\">=</span> <span class=\"s2\">&quot;&amp;&gt;&quot;</span>\n    NOT_GT <span class=\"o\">=</span> <span class=\"s2\">&quot;&amp;&lt;&quot;</span>\n    ADJACENT_TO <span class=\"o\">=</span> <span class=\"s2\">&quot;-|-&quot;</span>\n</code></pre></div>\n</section>\n<section id=\"rangeboundary-expressions\">\n<h3>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><code class=\"docutils literal notranslate\">True</code> (デフォルト) の場合、下限値は包含される <code class=\"docutils literal notranslate\">'['</code> であり、そうでない場合は非包含 <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><code class=\"docutils literal notranslate\">False</code> (デフォルト) なら、上限は非包含 <code class=\"docutils literal notranslate\">')'</code> となります。それ以外の場合は包含 <code class=\"docutils literal notranslate\">']'</code> となります。</p>\n</dd></dl>\n\n</dd></dl>\n\n<p><code class=\"docutils literal notranslate\">RangeBoundary()</code> 式は範囲の境界を表します。これは、範囲の境界を期待するカスタム範囲関数と一緒に使用できます。たとえば、 <a class=\"reference internal\" href=\"/ja/6.0/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> を定義する際に使用されます。詳細は <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/rangetypes.html#RANGETYPES-INCLUSIVITY\">PostgreSQLのドキュメント</a> を参照してください。</p>\n</section>\n</section>","rootId":"postgresql-specific-model-fields","toc":[{"title":"これらのフィールドにインデックスを付ける","anchor":"indexing-these-fields","children":[]},{"title":"ArrayField","anchor":"arrayfield","children":[{"title":"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":"インデックスのトランスフォーム","anchor":"index-transforms","children":[]},{"title":"スライス トランスフォーム","anchor":"slice-transforms","children":[]}]}]},{"title":"HStoreField","anchor":"hstorefield","children":[{"title":"HStoreField へのクエリ","anchor":"querying-hstorefield","children":[{"title":"キーのルックアップ","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":"範囲フィールド","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":"範囲フィールドへのクエリ","anchor":"querying-range-fields","children":[{"title":"包含関数","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":"比較関数","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":"境界を使ったクエリ","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":"独自の範囲型を定義する","anchor":"defining-your-own-range-types","children":[]},{"title":"範囲演算子","anchor":"range-operators","children":[]},{"title":"RangeBoundary() 式","anchor":"rangeboundary-expressions","children":[]}]}],"breadcrumbs":[{"docname":"ref/index","title":"API リファレンス","url":"/ja/6.0/ref/"},{"docname":"ref/contrib/index","title":"contrib パッケージ","url":"/ja/6.0/ref/contrib/"},{"docname":"ref/contrib/postgres/index","title":"django.contrib.postgres","url":"/ja/6.0/ref/contrib/postgres/"}],"prev":{"docname":"ref/contrib/postgres/expressions","title":"PostgreSQL 固有のクエリ式","url":"/ja/6.0/ref/contrib/postgres/expressions/"},"next":{"docname":"ref/contrib/postgres/forms","title":"PostgreSQL 固有のフォームフィールドとウィジェット","url":"/ja/6.0/ref/contrib/postgres/forms/"},"formats":{"html":"/ja/6.0/ref/contrib/postgres/fields/","markdown":"/ja/6.0/ref/contrib/postgres/fields.md","json":"/ja/6.0/ref/contrib/postgres/fields.json"},"source":"https://github.com/django/django/blob/stable/6.0.x/docs/ref/contrib/postgres/fields.txt","official":"https://docs.djangoproject.com/ja/6.0/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","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}