{"title":"Srianta bunachar sonraí sonracha PostgreSQL","version":"6.1","locale":"ga","docname":"ref/contrib/postgres/constraints","url":"/ga/6.1/ref/contrib/postgres/constraints/","canonical":"https://djangodocs.dev/ga/6.1/ref/contrib/postgres/constraints/","summary":"Tacaíonn PostgreSQL le srianta breise sláine sonraí atá ar fáil ón modúl `` django.contrib.postgres.restricints'. <django.db.models.Options.constraints>Cuirtear iad…","html":"<span id=\"postgresql-specific-database-constraints\"></span><h1>Srianta bunachar sonraí sonracha PostgreSQL<a class=\"heading-anchor\" href=\"#module-django.contrib.postgres.constraints\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Tacaíonn PostgreSQL le srianta breise sláine sonraí atá ar fáil ón modúl <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>django.contrib.postgres.restricints'. &lt;django.db.models.Options.constraints&gt;Cuirtear iad leis sa rogha samhail: attr: <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>Meta.Constraints <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">`</span></a>.</p>\n<section id=\"exclusionconstraint\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">Srianadh</span> <span class=\"pre\">eisiaim</span></code><a class=\"heading-anchor\" href=\"#exclusionconstraint\"><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.constraints.ExclusionConstraint\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">ExclusionConstraint</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"keyword-only-separator o\"><abbr title=\"Keyword-only parameters separator (PEP 3102)\"><span class=\"pre\">*</span></abbr></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">name</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expressions</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">index_type</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">condition</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">deferrable</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">include</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">violation_error_code</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">violation_error_message</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.constraints.ExclusionConstraint\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Cruthaíonn sé srian eisiaimh sa bhunachar sonraí. Go hinmheánach, cuireann PostgreSQL srianta eisiaimh i bhfeidhm ag úsáid innéacsanna. &lt; <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/gist.html\">https://www.postgresql.org/docs/current/gist.html</a>&gt;Is é Gist `_ an cineál innéacs réamhshocraithe. &lt; https://www.postgresql.org/docs/current/btree-gist.html&gt;Chun iad a úsáid, ní mór duit an síneadh `btree_gist `_ a ghníomhachtú ar PostgreSQL. Is féidir leat é a shuiteáil ag baint úsáide as an oibríocht imirce:class: `~django.contrib.postgres.operations.btreegistExtension.</p>\n<p>Má dhéanann tú iarracht sraith nua a chur isteach a dhéanann coinbhleacht leis an tsraith atá ann cheana, ardaítear an:exc: ~django.db.IntegrityError. Ar an gcaoi chéanna, nuair a nuashonraítear coinbhleachtaí le sraith</p>\n<p>&lt;validating-objects&gt;Déantar srianta eisiaimh a sheiceáil le linn an: ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>bailíochtú samhail <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>.</p>\n</dd></dl>\n\n<section id=\"name\">\n<h3><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>ainm `<a class=\"heading-anchor\" href=\"#name\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.constraints.ExclusionConstraint.name\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ExclusionConstraint.</span></span><span class=\"sig-name descname\"><span class=\"pre\">name</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.constraints.ExclusionConstraint.name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Féach: attr: .baseConstraint.name.</p>\n</section>\n<section id=\"expressions\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">léiritheach</span></code><a class=\"heading-anchor\" href=\"#expressions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.constraints.ExclusionConstraint.expressions\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ExclusionConstraint.</span></span><span class=\"sig-name descname\"><span class=\"pre\">expressions</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.constraints.ExclusionConstraint.expressions\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Athraitheach de 2-tuples. Is é an chéad eilimint ná abairt nó sreang. Is é an dara gné ná oibreoir SQL a léirítear mar shreang. Chun clóscríobh a sheachaint, is féidir leat: class: ~django.contrib.postgres.fields.rangeOperators a mhéapálann na hoibreoirí le teaghráin. Mar shampla:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">expressions</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"p\">(</span><span class=\"s2\">&quot;timespan&quot;</span><span class=\"p\">,</span> <span class=\"n\">RangeOperators</span><span class=\"o\">.</span><span class=\"n\">ADJACENT_TO</span><span class=\"p\">),</span>\n    <span class=\"p\">(</span><span class=\"n\">F</span><span class=\"p\">(</span><span class=\"s2\">&quot;room&quot;</span><span class=\"p\">),</span> <span class=\"n\">RangeOperators</span><span class=\"o\">.</span><span class=\"n\">EQUAL</span><span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<aside class=\"admonition-restrictions-on-operators admonition\">\n<p class=\"admonition-title\">Srianta ar oibreoirí.</p>\n<p>Ní féidir ach oibreoirí comutaitheacha a úsáid i srianta eisiaimh.</p>\n</aside>\n<p>Is féidir an abairt: class: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>op &lt;django.contrib.postgres.indexes.OpClass&gt;Class () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>a úsáid chun <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">`</span></a>aicme oibreora <a href=\"#id7\"><span class=\"problematic\" id=\"id8\">`</span></a>_ saincheaptha a shonrú do na nathanna srianta. Mar shampla:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">expressions</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"p\">(</span><span class=\"n\">OpClass</span><span class=\"p\">(</span><span class=\"s2\">&quot;circle&quot;</span><span class=\"p\">,</span> <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;circle_ops&quot;</span><span class=\"p\">),</span> <span class=\"n\">RangeOperators</span><span class=\"o\">.</span><span class=\"n\">OVERLAPS</span><span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>cruthaíonn srian eisiaimh ar <code class=\"docutils literal notranslate\"><span class=\"pre\">circle</span></code> ag baint úsáide as <code class=\"docutils literal notranslate\"><span class=\"pre\">circle_ops</span></code>.</p>\n</section>\n<section id=\"index-type\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">cineál_innéacsa</span></code><a class=\"heading-anchor\" href=\"#index-type\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.constraints.ExclusionConstraint.index_type\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ExclusionConstraint.</span></span><span class=\"sig-name descname\"><span class=\"pre\">index_type</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.constraints.ExclusionConstraint.index_type\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>The index type of the constraint. Accepted values are <code class=\"docutils literal notranslate\"><span class=\"pre\">GiST</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">Hash</span></code>, or\n<code class=\"docutils literal notranslate\"><span class=\"pre\">SPGiST</span></code>. Matching is case insensitive. If not provided, the default index\ntype is <code class=\"docutils literal notranslate\"><span class=\"pre\">GIST</span></code>.</p>\n<aside class=\"version-note version-changed\" data-version=\"6.1\">\n<p class=\"version-note-title\">Changed in Django 6.1</p><p>Support for exclusion constraints using Hash indexes was added.</p>\n</aside>\n</section>\n<section id=\"condition\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">coinníoll</span></code><a class=\"heading-anchor\" href=\"#condition\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.constraints.ExclusionConstraint.condition\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ExclusionConstraint.</span></span><span class=\"sig-name descname\"><span class=\"pre\">condition</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.constraints.ExclusionConstraint.condition\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>A: Aicme: ~Django.db.Models.q réad a shonraíonn an coinníoll chun srian a shrianadh le fo-thacar sraitheanna. Mar shampla, <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Condition=Q (cealaithe = bréagach) <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>.</p>\n<p>Tá na srianta bunachar sonraí céanna ag na coinníollacha seo las:attr: django.db.models.index.condition.</p>\n</section>\n<section id=\"deferrable\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">iarchurraithe</span></code><a class=\"heading-anchor\" href=\"#deferrable\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.constraints.ExclusionConstraint.deferrable\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ExclusionConstraint.</span></span><span class=\"sig-name descname\"><span class=\"pre\">deferrable</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.constraints.ExclusionConstraint.deferrable\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Socraigh an paraiméadar seo chun srian eisiaimh in-iarchurtha a chruthú. Is iad na luachanna a nglactar leo ná <code class=\"docutils literal notranslate\"><span class=\"pre\">Deferrable.Ferred</span></code> nó <code class=\"docutils literal notranslate\"><span class=\"pre\">Deferrable.Immediate</span></code>. Mar shampla:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.postgres.constraints</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">ExclusionConstraint</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.postgres.fields</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">RangeOperators</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Deferrable</span>\n\n<span class=\"n\">ExclusionConstraint</span><span class=\"p\">(</span>\n    <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;exclude_overlapping_deferred&quot;</span><span class=\"p\">,</span>\n    <span class=\"n\">expressions</span><span class=\"o\">=</span><span class=\"p\">[</span>\n        <span class=\"p\">(</span><span class=\"s2\">&quot;timespan&quot;</span><span class=\"p\">,</span> <span class=\"n\">RangeOperators</span><span class=\"o\">.</span><span class=\"n\">OVERLAPS</span><span class=\"p\">),</span>\n    <span class=\"p\">],</span>\n    <span class=\"n\">deferrable</span><span class=\"o\">=</span><span class=\"n\">Deferrable</span><span class=\"o\">.</span><span class=\"n\">DEFERRED</span><span class=\"p\">,</span>\n<span class=\"p\">)</span>\n</code></pre></div>\n<p>De réir réamhshocraithe ní chuirtear srianta ar iarchur. Ní chuirfear srian iarchurtha i bhfeidhm go dtí deireadh an idirbheart. Cuirfear srian láithreach i bhfeidhm díreach tar éis gach ordaithe.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Warning</p>\n<p>&lt; <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/sql-createtable.html#id-1.9.3.85.9.4\">https://www.postgresql.org/docs/current/sql-createtable.html#id-1.9.3.85.9.4</a>&gt;D'fhéadfadh “pionós feidhmíochta” _ a bheith mar thoradh ar srianta eisiaimh iarchurtha.</p>\n</aside>\n</section>\n<section id=\"include\">\n<h3><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>san áireamh ``<a class=\"heading-anchor\" href=\"#include\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.constraints.ExclusionConstraint.include\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ExclusionConstraint.</span></span><span class=\"sig-name descname\"><span class=\"pre\">include</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.constraints.ExclusionConstraint.include\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Liosta nó tuipéar d'ainmneacha na réimsí atá le cur san áireamh sa srian eisiaimh clúdaigh mar cholúin neamh-lárnacha. Ligeann sé seo scananna innéacs amháin a úsáid le haghaidh ceisteanna nach roghnaíonn ach réimsí san áireamh (:attr: ~ExclusionConstraint.include) agus ní scagann ach amháin de réir réimsí innéacsaithe (:attr: ~ExclusionConstraint.Expressions).</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">include</span></code> is supported for GiST and SP-GiST indexes.</p>\n</section>\n<section id=\"violation-error-code\">\n<h3><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>cód_earráid_shárú `<a class=\"heading-anchor\" href=\"#violation-error-code\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.constraints.ExclusionConstraint.violation_error_code\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ExclusionConstraint.</span></span><span class=\"sig-name descname\"><span class=\"pre\">violation_error_code</span></span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.constraints.ExclusionConstraint.violation_error_code\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>&lt;validating-objects&gt;An cód earráide a úsáidtear nuair a ardaítear <code class=\"docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code> trí:ref: bailíochtú samhail `. Réamhshocraithe go ``None`.</p>\n</section>\n<section id=\"violation-error-message\">\n<h3><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>teachtaireachtaí earráid_shárúcháin ``<a class=\"heading-anchor\" href=\"#violation-error-message\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>&lt;validating-objects&gt;An teachtaireacht earráide a úsáidtear nuair a ardaítear <code class=\"docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code> trí:ref: bailíochtú samhail `. Réamhshocraithe to:attr: `.baseConstraint.VIOLATION_ERROR_MESSAGE.</p>\n</section>\n<section id=\"examples\">\n<h3>Samplaí<a class=\"heading-anchor\" href=\"#examples\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Cuireann an sampla seo a leanas srian ar áirithintí forluí sa seomra céanna, gan áirithintí cealaithe a chur san áireamh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.postgres.constraints</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">ExclusionConstraint</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.postgres.fields</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">DateTimeRangeField</span><span class=\"p\">,</span> <span class=\"n\">RangeOperators</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Q</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Room</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">number</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">IntegerField</span><span class=\"p\">()</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Reservation</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">room</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ForeignKey</span><span class=\"p\">(</span><span class=\"s2\">&quot;Room&quot;</span><span class=\"p\">,</span> <span class=\"n\">on_delete</span><span class=\"o\">=</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CASCADE</span><span class=\"p\">)</span>\n    <span class=\"n\">timespan</span> <span class=\"o\">=</span> <span class=\"n\">DateTimeRangeField</span><span class=\"p\">()</span>\n    <span class=\"n\">cancelled</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">BooleanField</span><span class=\"p\">(</span><span class=\"n\">default</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n\n    <span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Meta</span><span class=\"p\">:</span>\n        <span class=\"n\">constraints</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n            <span class=\"n\">ExclusionConstraint</span><span class=\"p\">(</span>\n                <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;exclude_overlapping_reservations&quot;</span><span class=\"p\">,</span>\n                <span class=\"n\">expressions</span><span class=\"o\">=</span><span class=\"p\">[</span>\n                    <span class=\"p\">(</span><span class=\"s2\">&quot;timespan&quot;</span><span class=\"p\">,</span> <span class=\"n\">RangeOperators</span><span class=\"o\">.</span><span class=\"n\">OVERLAPS</span><span class=\"p\">),</span>\n                    <span class=\"p\">(</span><span class=\"s2\">&quot;room&quot;</span><span class=\"p\">,</span> <span class=\"n\">RangeOperators</span><span class=\"o\">.</span><span class=\"n\">EQUAL</span><span class=\"p\">),</span>\n                <span class=\"p\">],</span>\n                <span class=\"n\">condition</span><span class=\"o\">=</span><span class=\"n\">Q</span><span class=\"p\">(</span><span class=\"n\">cancelled</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">),</span>\n            <span class=\"p\">),</span>\n        <span class=\"p\">]</span>\n</code></pre></div>\n<p>Sa chás go sainmhíníonn do mhúnla raon ag baint úsáide as dhá réimse, in ionad na cineálacha raon dúchasacha PostgreSQL, ba cheart duit abairt a scríobh a úsáideann an fheidhm choibhéiseach (m.sh. TstzRange () `), agus na teorannaithe a úsáid don réimse. Is minic a bheidh na teorannaitheoirí ná <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>'[) ', rud a chiallaíonn go bhfuil an teorainn íochtarach cuimsitheach agus go bhfuil an teorainn uachtarach eisiach. &lt; <a class=\"reference external\" href=\"https://www.postgresql.org/docs/\">https://www.postgresql.org/docs/</a> current/rangetypes.html #RANGETYPES -INCLUSIVITY&gt;Is féidir leat an: class: ~django.contrib.postgres.fields.rangeBoundary a sholáthraíonn léarscáil abairt do na <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>teorainneacha raon <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">`</span></a>_ a úsáid. Mar shampla:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.postgres.constraints</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">ExclusionConstraint</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.postgres.fields</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"p\">(</span>\n    <span class=\"n\">DateTimeRangeField</span><span class=\"p\">,</span>\n    <span class=\"n\">RangeBoundary</span><span class=\"p\">,</span>\n    <span class=\"n\">RangeOperators</span><span class=\"p\">,</span>\n<span class=\"p\">)</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Func</span><span class=\"p\">,</span> <span class=\"n\">Q</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">TsTzRange</span><span class=\"p\">(</span><span class=\"n\">Func</span><span class=\"p\">):</span>\n    <span class=\"n\">function</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;TSTZRANGE&quot;</span>\n    <span class=\"n\">output_field</span> <span class=\"o\">=</span> <span class=\"n\">DateTimeRangeField</span><span class=\"p\">()</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Reservation</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">room</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ForeignKey</span><span class=\"p\">(</span><span class=\"s2\">&quot;Room&quot;</span><span class=\"p\">,</span> <span class=\"n\">on_delete</span><span class=\"o\">=</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CASCADE</span><span class=\"p\">)</span>\n    <span class=\"n\">start</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">DateTimeField</span><span class=\"p\">()</span>\n    <span class=\"n\">end</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">DateTimeField</span><span class=\"p\">()</span>\n    <span class=\"n\">cancelled</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">BooleanField</span><span class=\"p\">(</span><span class=\"n\">default</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n\n    <span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Meta</span><span class=\"p\">:</span>\n        <span class=\"n\">constraints</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n            <span class=\"n\">ExclusionConstraint</span><span class=\"p\">(</span>\n                <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;exclude_overlapping_reservations&quot;</span><span class=\"p\">,</span>\n                <span class=\"n\">expressions</span><span class=\"o\">=</span><span class=\"p\">[</span>\n                    <span class=\"p\">(</span>\n                        <span class=\"n\">TsTzRange</span><span class=\"p\">(</span><span class=\"s2\">&quot;start&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;end&quot;</span><span class=\"p\">,</span> <span class=\"n\">RangeBoundary</span><span class=\"p\">()),</span>\n                        <span class=\"n\">RangeOperators</span><span class=\"o\">.</span><span class=\"n\">OVERLAPS</span><span class=\"p\">,</span>\n                    <span class=\"p\">),</span>\n                    <span class=\"p\">(</span><span class=\"s2\">&quot;room&quot;</span><span class=\"p\">,</span> <span class=\"n\">RangeOperators</span><span class=\"o\">.</span><span class=\"n\">EQUAL</span><span class=\"p\">),</span>\n                <span class=\"p\">],</span>\n                <span class=\"n\">condition</span><span class=\"o\">=</span><span class=\"n\">Q</span><span class=\"p\">(</span><span class=\"n\">cancelled</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">),</span>\n            <span class=\"p\">),</span>\n        <span class=\"p\">]</span>\n</code></pre></div>\n</section>\n</section>","rootId":"module-django.contrib.postgres.constraints","toc":[{"title":"Srianadh eisiaim","anchor":"exclusionconstraint","children":[{"title":"``ainm `","anchor":"name","children":[]},{"title":"léiritheach","anchor":"expressions","children":[]},{"title":"cineál_innéacsa","anchor":"index-type","children":[]},{"title":"coinníoll","anchor":"condition","children":[]},{"title":"iarchurraithe","anchor":"deferrable","children":[]},{"title":"``san áireamh ``","anchor":"include","children":[]},{"title":"``cód_earráid_shárú `","anchor":"violation-error-code","children":[]},{"title":"``teachtaireachtaí earráid_shárúcháin ``","anchor":"violation-error-message","children":[]},{"title":"Samplaí","anchor":"examples","children":[]}]}],"breadcrumbs":[{"docname":"ref/index","title":"Tagairt API","url":"/ga/6.1/ref/"},{"docname":"ref/contrib/index","title":"Pacáistí contrib","url":"/ga/6.1/ref/contrib/"},{"docname":"ref/contrib/postgres/index","title":"django.contrib.postgres","url":"/ga/6.1/ref/contrib/postgres/"}],"prev":{"docname":"ref/contrib/postgres/aggregates","title":"Feidhmeanna comhiomlánaithe sonracha PostgreSQL","url":"/ga/6.1/ref/contrib/postgres/aggregates/"},"next":{"docname":"ref/contrib/postgres/expressions","title":"Nathanna fiosrúcháin sonracha PostgreSQL","url":"/ga/6.1/ref/contrib/postgres/expressions/"},"formats":{"html":"/ga/6.1/ref/contrib/postgres/constraints/","markdown":"/ga/6.1/ref/contrib/postgres/constraints.md","json":"/ga/6.1/ref/contrib/postgres/constraints.json"},"source":"https://github.com/django/django/blob/stable/6.1.x/docs/ref/contrib/postgres/constraints.txt","official":"https://docs.djangoproject.com/ga/6.1/ref/contrib/postgres/constraints/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}