{"title":"Ceisteanna a dhéanamh","version":"6.1","locale":"ga","docname":"topics/db/queries","url":"/ga/6.1/topics/db/queries/","canonical":"https://djangodocs.dev/ga/6.1/topics/db/queries/","summary":"Nuair a bheidh do: doc: samhlacha sonraí cruthaithe agat, tugann Django API teastarbhaithe bunachar sonraí duit go huathoibríoch a ligeann duit rudaí a…","html":"<h1>Ceisteanna a dhéanamh<a class=\"heading-anchor\" href=\"#making-queries\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Nuair a bheidh do: doc: samhlacha sonraí cruthaithe agat, tugann Django API teastarbhaithe bunachar sonraí duit go huathoibríoch a ligeann duit rudaí a chruth&lt;/topics/db/models&gt; ú, a aisghabháil, a nuashonrú agus a scriosadh. Míníonn an doiciméad seo conas an API seo a úsáid. Féach ar an: doc: `tagairt samhail sonraí le haghaidh sonraí iomlána faoi na roghanna cu&lt;/ref/models/index&gt; ardaigh samhlacha éagsúla go léir.</p>\n<p>Le linn na treoir seo (agus sa tagairt), déanfaimid tagairt do na samhlacha seo a leanas, a chuimsíonn feidhmchlár blag:</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=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">datetime</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">date</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Blog</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n    <span class=\"n\">tagline</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">TextField</span><span class=\"p\">()</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"fm\">__str__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">name</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Author</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">200</span><span class=\"p\">)</span>\n    <span class=\"n\">email</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">EmailField</span><span class=\"p\">()</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"fm\">__str__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">name</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Entry</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\">blog</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=\"n\">Blog</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\">headline</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">255</span><span class=\"p\">)</span>\n    <span class=\"n\">body_text</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">TextField</span><span class=\"p\">()</span>\n    <span class=\"n\">pub_date</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">DateField</span><span class=\"p\">()</span>\n    <span class=\"n\">mod_date</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">DateField</span><span class=\"p\">(</span><span class=\"n\">default</span><span class=\"o\">=</span><span class=\"n\">date</span><span class=\"o\">.</span><span class=\"n\">today</span><span class=\"p\">)</span>\n    <span class=\"n\">authors</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ManyToManyField</span><span class=\"p\">(</span><span class=\"n\">Author</span><span class=\"p\">)</span>\n    <span class=\"n\">number_of_comments</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">IntegerField</span><span class=\"p\">(</span><span class=\"n\">default</span><span class=\"o\">=</span><span class=\"mi\">0</span><span class=\"p\">)</span>\n    <span class=\"n\">number_of_pingbacks</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">IntegerField</span><span class=\"p\">(</span><span class=\"n\">default</span><span class=\"o\">=</span><span class=\"mi\">0</span><span class=\"p\">)</span>\n    <span class=\"n\">rating</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">IntegerField</span><span class=\"p\">(</span><span class=\"n\">default</span><span class=\"o\">=</span><span class=\"mi\">5</span><span class=\"p\">)</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"fm\">__str__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">headline</span>\n</code></pre></div>\n<section id=\"creating-objects\">\n<h2>Cruthú rudaí<a class=\"heading-anchor\" href=\"#creating-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Chun sonraí tábla bunachar sonraí a léiriú i rudaí Python, úsáideann Django córas iomasach: Léiríonn rang samhail tábla bunachar sonraí, agus léiríonn sampla den rang sin taifead áirithe sa tábla bunachar sonraí.</p>\n<p>Chun réad a chruthú, cuir isteach é ag baint úsáide as argóintí eochairfhocal chuig an rang samhail, ansin glaoigh ar: meth: ~django.db.models.model.save chun é a shábháil ar an mbunachar sonraí.</p>\n<p>Ag glacadh leis go gcónaíonn samhlacha i gcomhad <code class=\"docutils literal notranslate\"><span class=\"pre\">models.py</span></code> taobh istigh d'aip <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>blog <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>Django, seo sampla:</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=\"w\"> </span><span class=\"nn\">blog.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Blog</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">b</span> <span class=\"o\">=</span> <span class=\"n\">Blog</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Beatles Blog&quot;</span><span class=\"p\">,</span> <span class=\"n\">tagline</span><span class=\"o\">=</span><span class=\"s2\">&quot;All the latest Beatles news.&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">b</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>Déanann sé seo ráiteas SQL <code class=\"docutils literal notranslate\"><span class=\"pre\">INSERT</span></code> taobh thiar de na radhairc. Ní bhuaileann Django an bunachar sonraí go dtí go nglaonn tú go sainráite ar: meth: ~django.db.models.model.save.</p>\n<p>Níl aon luach tuairisceáin ag an modh: Meth: ~django.db.models.model.save.</p>\n<aside class=\"admonition admonition-seealso\">\n<p class=\"admonition-title\">See also</p>\n<p>: meth: ~django.db.models.model.save tógann roinnt ardroghanna nach bhfuil cur síos orthu anseo. Féach an doiciméadú le haghaidh: meth: ~django.db.models.model.save le haghaidh sonraí iomlána.</p>\n<p>To create and save an object in a single step, use the\n<a class=\"reference internal\" href=\"/ga/6.1/ref/models/querysets/#django.db.models.query.QuerySet.create\" title=\"django.db.models.query.QuerySet.create\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">create()</span></code></a> method.</p>\n</aside>\n</section>\n<section id=\"saving-changes-to-objects\">\n<h2>Athruithe a shábháil ar rudaí<a class=\"heading-anchor\" href=\"#saving-changes-to-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Chun athruithe a shábháil ar réad atá sa bhunachar sonraí cheana féin, bain úsáid as: meth: ~django.db.models.model.save.</p>\n<p>Mar gheall ar shampla <code class=\"docutils literal notranslate\"><span class=\"pre\">Blog</span></code> <code class=\"docutils literal notranslate\"><span class=\"pre\">b5</span></code> atá sábháilte cheana féin sa bhunachar sonraí, athraíonn an sampla seo a ainm agus nuashonraíonn a taifead sa bhunachar sonraí:</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=\"n\">b5</span><span class=\"o\">.</span><span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;New name&quot;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">b5</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>Déanann sé seo ráiteas SQL <code class=\"docutils literal notranslate\"><span class=\"pre\">UPDATE</span></code> taobh thiar de na radhairc. Ní bhuaileann Django an bunachar sonraí go dtí go nglaonn tú go sainráite ar: meth: ~django.db.models.model.save.</p>\n<section id=\"saving-foreignkey-and-manytomanyfield-fields\">\n<h3>Réimsí <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code> agus <code class=\"docutils literal notranslate\"><span class=\"pre\">ManyTomanyField</span></code> a shábháil<a class=\"heading-anchor\" href=\"#saving-foreignkey-and-manytomanyfield-fields\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Oibríonn réimse a: class: ~Django.db.Models.ForeignKey a nuashonrú ar an mbealach céanna le gnáthréimse a shábháil -- sannadh réad den chineál ceart don réimse atá i gceist. Nuashonraíonn an sampla seo tréith <code class=\"docutils literal notranslate\"><span class=\"pre\">blog</span></code> de shampla <code class=\"docutils literal notranslate\"><span class=\"pre\">Iontrála</span></code> <code class=\"docutils literal notranslate\"><span class=\"pre\">iontrála</span></code>, ag glacadh leis go bhfuil cásanna cuí <code class=\"docutils literal notranslate\"><span class=\"pre\">Iontrála</span></code> agus <code class=\"docutils literal notranslate\"><span class=\"pre\">Blog</span></code> sábháilte sa bhunachar sonraí cheana féin (ionas gur féidir linn iad a aisghabháil thíos):</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=\"w\"> </span><span class=\"nn\">blog.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Blog</span><span class=\"p\">,</span> <span class=\"n\">Entry</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">entry</span> <span class=\"o\">=</span> <span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"n\">pk</span><span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">cheese_blog</span> <span class=\"o\">=</span> <span class=\"n\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Cheddar Talk&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">entry</span><span class=\"o\">.</span><span class=\"n\">blog</span> <span class=\"o\">=</span> <span class=\"n\">cheese_blog</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">entry</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>Oibríonn nuashonrú a:class: ~django.db.models.manyToManyField beagán difriúil - bain úsáid as an modh: meth: ~Django.db.Models.Fields.Related.RelatedManager.Add ar an réimse chun taifead a chur leis an ngaol. Cuireann an sampla seo an sampla <code class=\"docutils literal notranslate\"><span class=\"pre\">Audar</span> <span class=\"pre\">````joe</span></code> leis an réad <code class=\"docutils literal notranslate\"><span class=\"pre\">`iontrála</span></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=\"w\"> </span><span class=\"nn\">blog.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Author</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">joe</span> <span class=\"o\">=</span> <span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Joe&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">entry</span><span class=\"o\">.</span><span class=\"n\">authors</span><span class=\"o\">.</span><span class=\"n\">add</span><span class=\"p\">(</span><span class=\"n\">joe</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Chun iolrthaifid a chur le a:class: ~django.db.models.manyToManyField in aon dul amháin, cuir argóintí iolracha san áireamh sa ghlao chuig:meth: ~Django.db.Models.Fields.Related.RelatedManager.Add, mar seo:</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=\"n\">john</span> <span class=\"o\">=</span> <span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;John&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">paul</span> <span class=\"o\">=</span> <span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Paul&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">george</span> <span class=\"o\">=</span> <span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;George&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">ringo</span> <span class=\"o\">=</span> <span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Ringo&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">entry</span><span class=\"o\">.</span><span class=\"n\">authors</span><span class=\"o\">.</span><span class=\"n\">add</span><span class=\"p\">(</span><span class=\"n\">john</span><span class=\"p\">,</span> <span class=\"n\">paul</span><span class=\"p\">,</span> <span class=\"n\">george</span><span class=\"p\">,</span> <span class=\"n\">ringo</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Déanfaidh Django gearán má dhéanann tú iarracht réad den chineál mícheart a shannadh nó a chur leis.</p>\n</section>\n</section>\n<section id=\"retrieving-objects\">\n<span id=\"id1\"></span><h2>Rudaí a aisghabháil<a class=\"heading-anchor\" href=\"#retrieving-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Chun rudaí a aisghabháil ó do bhunachar sonraí, tóg a:class: ~django.db.models.query.queryset trí a:class: ~django.db.models.manager ar do rang samhail.</p>\n<p>A: Class: ~django.db.models.query.querySet léiríonn bailiúchán rudaí ó do bhunachar sonraí. Is féidir leis nialas, ceann amháin nó go leor scagair* a bheith aige. Cuimsíonn scagairí torthaí na bhfiosrúcháin bunaithe ar na paraiméadair I dtéarmaí SQL, a: class: ~django.db.models.query.queryset cothrom le ráiteas <code class=\"docutils literal notranslate\"><span class=\"pre\">SELECT</span></code>, agus is clásal teorannach é scagaire mar <code class=\"docutils literal notranslate\"><span class=\"pre\">WHERE</span></code> nó LIMIT`.</p>\n<p>Faigheann tú a:class: ~django.db.models.query.queryset trí úsáid a bhaint as do mhúnlaí:class: ~django.db.models.manager. Tá ceann amháin ar a laghad ag gach samhail:: ~Django.db.Models.Manager, agus tugtar air:attr: ~django.db.models.model.objects de réir réamhshocraithe. Rochtain a fháil go díreach air tríd an rang samhail, mar sin:</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=\"n\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span>\n<span class=\"go\">&lt;django.db.models.manager.Manager object at ...&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">b</span> <span class=\"o\">=</span> <span class=\"n\">Blog</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Foo&quot;</span><span class=\"p\">,</span> <span class=\"n\">tagline</span><span class=\"o\">=</span><span class=\"s2\">&quot;Bar&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">b</span><span class=\"o\">.</span><span class=\"n\">objects</span>\n<span class=\"go\">Traceback:</span>\n<span class=\"go\">    ...</span>\n<span class=\"go\">AttributeError: &quot;Manager isn&#39;t accessible via Blog instances.&quot;</span>\n</code></pre></div>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>A <code class=\"docutils literal notranslate\"><span class=\"pre\">Manager</span></code> is accessible only via model classes, rather than from model\ninstances, to enforce a separation between &quot;table-level&quot; operations and\n&quot;record-level&quot; operations.</p>\n</aside>\n<p>The <a class=\"reference internal\" href=\"/ga/6.1/topics/db/managers/#django.db.models.Manager\" title=\"django.db.models.Manager\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Manager</span></code></a> is the main source of querysets for\na model. For example, <code class=\"docutils literal notranslate\"><span class=\"pre\">Blog.objects.all()</span></code> returns a\n<a class=\"reference internal\" href=\"/ga/6.1/ref/models/querysets/#django.db.models.query.QuerySet\" title=\"django.db.models.query.QuerySet\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code></a> that contains all <code class=\"docutils literal notranslate\"><span class=\"pre\">Blog</span></code> objects in\nthe database.</p>\n<section id=\"retrieving-all-objects\">\n<h3>Aisghabháil gach rud<a class=\"heading-anchor\" href=\"#retrieving-all-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Is é an bealach is simplí chun rudaí a aisghabháil ó thábla ná iad go léir a fháil. Chun seo a dhéanamh, bain úsáid as an modh:meth: ~django.db.models.query.queryset.all ar a:class: ~django.db.models.manager:</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=\"n\">all_entries</span> <span class=\"o\">=</span> <span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>Tugann an modh: Meth: ~django.db.models.query.queryset.all ar ais a:class: ~django.db.models.query.queryset de na rudaí go léir sa bhunachar sonraí.</p>\n</section>\n<section id=\"retrieving-specific-objects-with-filters\">\n<h3>Rudaí ar leith a aisghabháil le scagairí<a class=\"heading-anchor\" href=\"#retrieving-specific-objects-with-filters\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Déan:class: ~django.db.models.query.queryset ar ais ar:meth: ~django.db.models.queryset.all cur síos ar gach rud sa tábla bunachar sonraí. De ghnáth, áfach, ní bheidh ort ach fo-thacar den tsraith iomlán rudaí a roghnú.</p>\n<p>Chun fo-thacar den sórt sin a chruthú, déanann tú an tosaigh: class: ~django.db.models.query.querySet a bheachtú, ag cur coinníollacha scagaire leis. Is iad an dá bhealach is coitianta chun a:class: ~django.db.models.query.queryset a bheachtú:</p>\n<dl class=\"simple\">\n<dt><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>scagaire (<a href=\"#id3\"><span class=\"problematic\" id=\"id4\">**</span></a>kwargs) ``</dt><dd><p>Filleann sé nua:class: ~django.db.models.query.querySet ina bhfuil rudaí a mheaitseálann leis na paraiméadair cuardaigh ar leith.</p>\n</dd>\n<dt><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>eisiamh (<a href=\"#id3\"><span class=\"problematic\" id=\"id4\">**</span></a>kwargs) ``</dt><dd><p>Filleann sé nua:class: ~django.db.models.query.querySet ina bhfuil rudaí nach n-oireann naí* leis na paraiméadair chuardaigh a thugtar.</p>\n</dd>\n</dl>\n<p>Ba chóir go mbeadh na paraiméadair chuardaigh (<a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a><a href=\"#id3\"><span class=\"problematic\" id=\"id4\">**</span></a>kwargs <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">``</span></a>sna sainmhínithe feidhme thuas) san fhormáid a thuairiscítear i <a href=\"#id7\"><span class=\"problematic\" id=\"id8\">`</span></a>Cuardach réimse <a href=\"#id9\"><span class=\"problematic\" id=\"id10\">`</span></a>_ thíos.</p>\n<p>Mar shampla, chun a:class: ~django.db.models.query.queryset d'iontrálacha blag ón mbliain 2006 a fháil, bain úsáid as: meth: ~django.db.models.query.queryset.filter mar sin:</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\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">pub_date__year</span><span class=\"o\">=</span><span class=\"mi\">2006</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Leis an rang bainisteora réamhshocraithe, tá sé mar an gcéanna le:</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\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">pub_date__year</span><span class=\"o\">=</span><span class=\"mi\">2006</span><span class=\"p\">)</span>\n</code></pre></div>\n<section id=\"chaining-filters\">\n<span id=\"id2\"></span><h4>Scagairí slabhraithe<a class=\"heading-anchor\" href=\"#chaining-filters\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Is é an toradh a bhaineann le scagadh a: ~django.db.models.query.queryset é féin a: aicme: ~django.db.models.query.queryset, mar sin is féidir mionscrúcháin a shlánú le chéile. Mar shampla:</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=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">headline__startswith</span><span class=\"o\">=</span><span class=\"s2\">&quot;What&quot;</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">exclude</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">pub_date__gte</span><span class=\"o\">=</span><span class=\"n\">datetime</span><span class=\"o\">.</span><span class=\"n\">date</span><span class=\"o\">.</span><span class=\"n\">today</span><span class=\"p\">()</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">pub_date__gte</span><span class=\"o\">=</span><span class=\"n\">datetime</span><span class=\"o\">.</span><span class=\"n\">date</span><span class=\"p\">(</span><span class=\"mi\">2005</span><span class=\"p\">,</span> <span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"mi\">30</span><span class=\"p\">))</span>\n</code></pre></div>\n<p>Tógann sé seo an tosaigh: class: ~django.db.models.query.queryset de gach iontráil sa bhunachar sonraí, cuireann sé scagaire, ansin eisiamh, ansin scagaire eile. Is é an toradh deiridh a:class: ~django.db.models.query.queryset ina bhfuil gach iontráil le ceannteideal a thosaíonn le “Cad”, a foilsíodh idir 30 Eanáir, 2005, agus an lá reatha.</p>\n</section>\n<section id=\"filtered-querysets-are-unique\">\n<span id=\"id3\"></span><h4>Tá scagtha <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code> uathúil<a class=\"heading-anchor\" href=\"#filtered-querysets-are-unique\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Gach uair a bheachnaíonn tú a:class: ~django.db.models.query.queryset, gheobhaidh tú branda-nua:class: ~django.db.models.query.queryset nach bhfuil ceangailte ar aon bhealach leis an roimhe seo: ~django.db.models.queryset. Cruthaíonn gach scagadh ar leithligh agus difriúil: aicme: ~django.db.models.query.queryset is féidir a stóráil, a úsáid agus a athúsáid.</p>\n<p>Sampla:</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=\"n\">q1</span> <span class=\"o\">=</span> <span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">headline__startswith</span><span class=\"o\">=</span><span class=\"s2\">&quot;What&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">q2</span> <span class=\"o\">=</span> <span class=\"n\">q1</span><span class=\"o\">.</span><span class=\"n\">exclude</span><span class=\"p\">(</span><span class=\"n\">pub_date__gte</span><span class=\"o\">=</span><span class=\"n\">datetime</span><span class=\"o\">.</span><span class=\"n\">date</span><span class=\"o\">.</span><span class=\"n\">today</span><span class=\"p\">())</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">q3</span> <span class=\"o\">=</span> <span class=\"n\">q1</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">pub_date__gte</span><span class=\"o\">=</span><span class=\"n\">datetime</span><span class=\"o\">.</span><span class=\"n\">date</span><span class=\"o\">.</span><span class=\"n\">today</span><span class=\"p\">())</span>\n</code></pre></div>\n<p>These three querysets are separate. The first is a base\n<a class=\"reference internal\" href=\"/ga/6.1/ref/models/querysets/#django.db.models.query.QuerySet\" title=\"django.db.models.query.QuerySet\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code></a> containing all entries that contain a\nheadline starting with &quot;What&quot;. The second is a subset of the first, with an\nadditional criteria that excludes records whose <code class=\"docutils literal notranslate\"><span class=\"pre\">pub_date</span></code> is today or in the\nfuture. The third is a subset of the first, with an additional criteria that\nselects only the records whose <code class=\"docutils literal notranslate\"><span class=\"pre\">pub_date</span></code> is today or in the future. The\ninitial <a class=\"reference internal\" href=\"/ga/6.1/ref/models/querysets/#django.db.models.query.QuerySet\" title=\"django.db.models.query.QuerySet\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code></a> (<code class=\"docutils literal notranslate\"><span class=\"pre\">q1</span></code>) is unaffected by the\nrefinement process.</p>\n</section>\n<section id=\"querysets-are-lazy\">\n<span id=\"id4\"></span><h4>Tá <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code> leisciúil<a class=\"heading-anchor\" href=\"#querysets-are-lazy\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code> objects are lazy -- the act of creating a\n<a class=\"reference internal\" href=\"/ga/6.1/ref/models/querysets/#django.db.models.query.QuerySet\" title=\"django.db.models.query.QuerySet\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code></a> doesn't involve any database\nactivity. You can stack filters together all day long, and Django won't\nactually run the query until the <a class=\"reference internal\" href=\"/ga/6.1/ref/models/querysets/#django.db.models.query.QuerySet\" title=\"django.db.models.query.QuerySet\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code></a> is\n<em>evaluated</em>. Take a look at this example:</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=\"n\">q</span> <span class=\"o\">=</span> <span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">headline__startswith</span><span class=\"o\">=</span><span class=\"s2\">&quot;What&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">q</span> <span class=\"o\">=</span> <span class=\"n\">q</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">pub_date__lte</span><span class=\"o\">=</span><span class=\"n\">datetime</span><span class=\"o\">.</span><span class=\"n\">date</span><span class=\"o\">.</span><span class=\"n\">today</span><span class=\"p\">())</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">q</span> <span class=\"o\">=</span> <span class=\"n\">q</span><span class=\"o\">.</span><span class=\"n\">exclude</span><span class=\"p\">(</span><span class=\"n\">body_text__icontains</span><span class=\"o\">=</span><span class=\"s2\">&quot;food&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">q</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Cé go bhfuil sé seo cosúil le trí bhualadh bunachar sonraí, i ndáiríre ní bhuaileann sé an bunachar sonraí ach uair amháin, ag an líne dheireanach (<a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>print (q) <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>). Go ginearálta, ní fhaightear torthaí a:class: ~django.db.models.query.querySet ón mbunachar sonraí go dtí go n-iarrann tú iad. Nuair a dhéanann tú, déantar an:class: ~django.db.models.query.queryset <em>meastóireach</em> trí rochtain a fháil ar an mbunachar sonraí. Le haghaidh tuilleadh sonraí maidir le cathain a dhéantar an mheastóireacht, féach:ref: when-querysets-are-evaluated.</p>\n</section>\n</section>\n<section id=\"retrieving-a-single-object-with-get\">\n<span id=\"retrieving-single-object-with-get\"></span><h3>Aisghabháil réad amháin le <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>get () ``<a class=\"heading-anchor\" href=\"#retrieving-a-single-object-with-get\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><a class=\"reference internal\" href=\"/ga/6.1/ref/models/querysets/#django.db.models.query.QuerySet.filter\" title=\"django.db.models.query.QuerySet.filter\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">filter()</span></code></a> will always give you a\n<a class=\"reference internal\" href=\"/ga/6.1/ref/models/querysets/#django.db.models.query.QuerySet\" title=\"django.db.models.query.QuerySet\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code></a>, even if only a single object matches\nthe query - in this case, it will be a\n<a class=\"reference internal\" href=\"/ga/6.1/ref/models/querysets/#django.db.models.query.QuerySet\" title=\"django.db.models.query.QuerySet\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code></a> containing a single element.</p>\n<p>Má tá a fhios agat nach bhfuil ach réad amháin a mheaitseálann le d'fhiosrúchán, is féidir leat an modh:meth: ~django.db.models.query.queryset.get a úsáid ar a:class: ~django.db.models.manager a thugann an réad ar ais go díreach:</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=\"n\">one_entry</span> <span class=\"o\">=</span> <span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"n\">pk</span><span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Is féidir leat aon abairt fiosrúcháin a úsáid le:meth: ~django.db.models.query.queryset.get, díreach cosúil le: meth: ~django.db.models.query.queryset.filter - arís, féach <a class=\"reference internal\" href=\"#field-lookups\">Field lookups</a> thíos.</p>\n<p>Tabhair faoi deara go bhfuil difríocht idir úsáid: meth: ~django.db.models.query.queryset.get, agus úsáid: meth: ~django.db.models.query.queryset.filter le slisnacht <code class=\"docutils literal notranslate\"><span class=\"pre\">[0]</span></code>. Mura bhfuil aon torthaí ann a mheaitseálann leis an bhfiosrú, :meth: ~django.db.models.query.queryset.get ardóidh eisceacht <code class=\"docutils literal notranslate\"><span class=\"pre\">doesNotExist</span></code>. Is tréith den aicme samhail í an eisceacht seo a bhfuil an cheist á dhéanamh air - mar sin sa chód thuas, mura bhfuil aon réad <code class=\"docutils literal notranslate\"><span class=\"pre\">Entry`</span> <span class=\"pre\">ann</span> <span class=\"pre\">le</span> <span class=\"pre\">príomh-eochair</span> <span class=\"pre\">1,</span> <span class=\"pre\">ardóidh</span> <span class=\"pre\">Django</span> <span class=\"pre\">``entry.doesNotExist</span></code>.</p>\n<p>Ar an gcaoi chéanna, déanfaidh Django gearán má mheaitseálann níos mó ná mír amháin leis an bhfiosrúchán:: ~django.db.models.queryset.get. Sa chás seo, ardóidh sé: exc: ~Django.Core.Exceptions.MultipleObjectsReturned, atá ina tréith den rang samhail féin arís.</p>\n</section>\n<section id=\"other-queryset-methods\">\n<h3>Modhanna eile <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>QuerySet`<a class=\"heading-anchor\" href=\"#other-queryset-methods\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>An chuid is mó den am a úsáidfidh tú: meth: ~django.db.models.query.queryset.all, :meth: ~django.db.models.queryset.get, :meth: ~django.db.models.query.queryset.filter agus:meth: ~django.db.models.querys.querys.querys.ery.queryset.exclude nuair is gá duit rudaí a lorg suas ón mbunachar sonraí. Mar sin féin, tá sé sin i bhfad ó gach rud atá ann; féach an:ref: QuerySet API Tagairt `le haghaidh li &lt;queryset-api&gt;osta iomlán de na modhanna éagsúla:class: `~django.db.models.queryset go léir.</p>\n</section>\n<section id=\"limiting-querysets\">\n<span id=\"id5\"></span><h3>Teorannú ar <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code>s<a class=\"heading-anchor\" href=\"#limiting-querysets\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Úsáid fo-thacar de chomhpháirtíocht slisnú eagair Python chun do: class: ~django.db.models.query.querySet a theorannú go líon áirithe torthaí. Is é seo coibhéis le clásail <code class=\"docutils literal notranslate\"><span class=\"pre\">LIMIT</span></code> agus <code class=\"docutils literal notranslate\"><span class=\"pre\">OFFSET</span></code> SQL.</p>\n<p>Mar shampla, tugann sé seo an chéad 5 rud ar ais (<code class=\"docutils literal notranslate\"><span class=\"pre\">LIMIT</span> <span class=\"pre\">5</span></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=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()[:</span><span class=\"mi\">5</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>Tugann sé seo an séú réad tríd an deichiú rud ar ais (<code class=\"docutils literal notranslate\"><span class=\"pre\">OFFSET</span> <span class=\"pre\">5</span> <span class=\"pre\">TEORAINN</span> <span class=\"pre\">5</span></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=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()[</span><span class=\"mi\">5</span><span class=\"p\">:</span><span class=\"mi\">10</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>Ní thacaítear le hinnéacsú diúltach (ie <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Entry.Objects.all () [-1] <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>).</p>\n<p>Go ginearálta, cuireann sliseadh a:class: ~django.db.models.query.queryset ar ais nua:class: ~django.db.models.queryset - ní dhéanann sé measúnú ar an gceist. Is eisceacht ná má úsáideann tú an paraiméadar “céim” de chomhréir slisní Python. Mar shampla, chuirfeadh sé seo an ceist i ndáiríre i ndáiríre d'fhonn liosta de ghach* soicind* réad den chéad 10 a thabhairt ar ais:</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=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()[:</span><span class=\"mi\">10</span><span class=\"p\">:</span><span class=\"mi\">2</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>Tá cosc ar scagadh nó ordú breise tacar fiosrúcháin slisnaithe mar gheall ar nádúr débhríoch an chaoi a d'fhéadfadh sé sin a bheith ag obair.</p>\n<p>Chun réad*aon* a aisghabháil seachas liosta (m.sh. <code class=\"docutils literal notranslate\"><span class=\"pre\">SELECT</span> <span class=\"pre\">foo</span> <span class=\"pre\">FROM</span> <span class=\"pre\">barra</span> <span class=\"pre\">LIMIT</span> <span class=\"pre\">1</span></code>), bain úsáid as innéacs in ionad slisnacht. Mar shampla, filleann sé seo an chéad <code class=\"docutils literal notranslate\"><span class=\"pre\">Iontrála</span></code> sa bhunachar sonraí, tar éis iontrálacha a ordú in ord aibítre de réir ceanncheanntála:</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=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">order_by</span><span class=\"p\">(</span><span class=\"s2\">&quot;headline&quot;</span><span class=\"p\">)[</span><span class=\"mi\">0</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>Tá sé seo coibhéiseach thart ar:</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=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">order_by</span><span class=\"p\">(</span><span class=\"s2\">&quot;headline&quot;</span><span class=\"p\">)[</span><span class=\"mi\">0</span><span class=\"p\">:</span><span class=\"mi\">1</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>Tabhair faoi deara, áfach, go n-ardóidh an chéad cheann díobh seo <code class=\"docutils literal notranslate\"><span class=\"pre\">IndexError</span></code> agus ardóidh an dara ceann <code class=\"docutils literal notranslate\"><span class=\"pre\">doesNotExist</span></code> mura n-oireann aon rud leis na critéir a thugtar. Féach: Meth: ~django.db.models.query.queryset.get le haghaidh tuilleadh sonraí.</p>\n</section>\n<section id=\"field-lookups\">\n<span id=\"field-lookups-intro\"></span><h3>Cuardaigh allamuigh<a class=\"heading-anchor\" href=\"#field-lookups\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Is iad cuardaigh réimse an chaoi a shonraíonn tú feoil clásal SQL <code class=\"docutils literal notranslate\"><span class=\"pre\">WHERE</span></code>. Sonraítear iad mar argóintí eochairfhocal chuig:class: ~django.db.models.query.queryset modh:meth: ~django.db.models.query.queryset.filter, :meth: ~django.db.models.query.queryset.exclude agus:meth: ~django.db.models.query.queryset.exclude .queryset.get”.</p>\n<p>Glacann argóintí eochairfhocal cuardaigh bunúsacha an fhoirm <code class=\"docutils literal notranslate\"><span class=\"pre\">field__lookuptype=value</span></code>. (Is béim dhúbailte é sin). Mar shampla:</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=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">pub_date__lte</span><span class=\"o\">=</span><span class=\"s2\">&quot;2006-01-01&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>aistríonn (go garbh) go dtí an SQL seo a leanas:</p>\n<div class=\"code-block\" data-language=\"sql\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">SQL</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=\"SQL code\"><code><span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"o\">*</span><span class=\"w\"> </span><span class=\"k\">FROM</span><span class=\"w\"> </span><span class=\"n\">blog_entry</span><span class=\"w\"> </span><span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"n\">pub_date</span><span class=\"w\"> </span><span class=\"o\">&lt;=</span><span class=\"w\"> </span><span class=\"s1\">&#39;2006-01-01&#39;</span><span class=\"p\">;</span>\n</code></pre></div>\n<aside class=\"admonition-how-this-is-possible admonition\">\n<p class=\"admonition-title\">Conas is féidir é seo</p>\n<p>Tá sé de chumas ag Python feidhmeanna a shainiú a ghlacann le hargóintí treallach ainm-luach a ndéantar a n-ainmneacha agus a luachanna a mheas ag am Le haghaidh tuilleadh faisnéise, féach:ref: tut-keywordargs sa rang teagaisc oifigiúil Python.</p>\n</aside>\n<p>Caithfidh ainm réimse samhail an réimse a shonraítear i gcuardach. Tá eisceacht amháin ann áfach, i gcás a:class: ~Django.db.Models.ForeignKey is féidir leat an t-ainm réimse a shonrú le <code class=\"docutils literal notranslate\"><span class=\"pre\">_id</span></code>. Sa chás seo, táthar ag súil go mbeidh amluach príomh-eochair an tsamhail eachtrach sa pharaiméadar luacha. Mar shampla:</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=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">blog_id</span><span class=\"o\">=</span><span class=\"mi\">4</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Má chuireann tú argóint eochairfhocal neamhbhailí, ardóidh feidhm chuardaigh <code class=\"docutils literal notranslate\"><span class=\"pre\">typeError</span></code>.</p>\n<p>&lt;field-lookups&gt;Tacaíonn an API bunachar sonraí le thart ar dhá dhosaen cineálacha cuardaigh; is féidir tagairt iomlán a fháil in:ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>tagairt cuardaigh réimse <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>. Chun blas a thabhairt duit ar na rudaí atá ar fáil, seo cuid de na cuardaigh is coitianta a úsáidfidh tú is dócha:</p>\n<dl>\n<dt><a class=\"reference internal\" href=\"/ga/6.1/ref/models/querysets/#std-fieldlookup-exact\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">exact</span></code></a></dt><dd><p>Cluiche “cruinn”. Mar shampla:</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=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"n\">headline__exact</span><span class=\"o\">=</span><span class=\"s2\">&quot;Cat bites dog&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Ghinfidh sé SQL ar na línte seo:</p>\n<div class=\"code-block\" data-language=\"sql\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">SQL</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=\"SQL code\"><code><span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"p\">...</span><span class=\"w\"> </span><span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"n\">headline</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"s1\">&#39;Cat bites dog&#39;</span><span class=\"p\">;</span>\n</code></pre></div>\n<p>Mura soláthraíonn tú cineál cuardaigh - is é sin, mura bhfuil béim dhúbailte ag d'argóint eochairfhocal - glactar leis gurb é “cruinn” an cineál cuardaigh.</p>\n<p>Mar shampla, tá an dá ráiteas seo a leanas coibhéiseach:</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=\"n\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"n\">id__exact</span><span class=\"o\">=</span><span class=\"mi\">14</span><span class=\"p\">)</span>  <span class=\"c1\"># Explicit form</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"mi\">14</span><span class=\"p\">)</span>  <span class=\"c1\"># __exact is implied</span>\n</code></pre></div>\n<p>Tá sé seo ar mhaithe le háisiúlacht, mar is é cuardaigh <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>cruinn <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>an cás coitianta.</p>\n</dd>\n<dt><a class=\"reference internal\" href=\"/ga/6.1/ref/models/querysets/#std-fieldlookup-iexact\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">iexact</span></code></a></dt><dd><p>Cluiche cás-neamh-íogair. Mar sin, an cheist:</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=\"n\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"n\">name__iexact</span><span class=\"o\">=</span><span class=\"s2\">&quot;beatles blog&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Meaitseálann sé <code class=\"docutils literal notranslate\"><span class=\"pre\">Blag</span></code> dar teideal <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;Blag</span> <span class=\"pre\">Beatles&quot;</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">blog</span> <span class=\"pre\">beatles&quot;</span></code>, nó fiú <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;Blag</span> <span class=\"pre\">Beatles&quot;</span></code>.</p>\n</dd>\n<dt><a class=\"reference internal\" href=\"/ga/6.1/ref/models/querysets/#std-fieldlookup-contains\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">contains</span></code></a></dt><dd><p>Tástáil srianta cás-íogair. 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\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"n\">headline__contains</span><span class=\"o\">=</span><span class=\"s2\">&quot;Lennon&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Aistríonn sé go garbh go dtí an SQL seo:</p>\n<div class=\"code-block\" data-language=\"sql\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">SQL</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=\"SQL code\"><code><span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"p\">...</span><span class=\"w\"> </span><span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"n\">headline</span><span class=\"w\"> </span><span class=\"k\">LIKE</span><span class=\"w\"> </span><span class=\"s1\">&#39;%Lennon%&#39;</span><span class=\"p\">;</span>\n</code></pre></div>\n<p>Tabhair faoi deara go mbeidh sé seo comhoiriúnach leis an gceannteideal <code class=\"docutils literal notranslate\"><span class=\"pre\">``Inniu</span> <span class=\"pre\">Lennon</span> <span class=\"pre\">onored'</span></code> ach ní <code class=\"docutils literal notranslate\"><span class=\"pre\">`inniu</span> <span class=\"pre\">lennon</span> <span class=\"pre\">onored'</span></code>.</p>\n<p>Tá leagan cás-neamh-íogair ann freisin, :lookup: icontains.</p>\n</dd>\n<dt><a class=\"reference internal\" href=\"/ga/6.1/ref/models/querysets/#std-fieldlookup-startswith\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">startswith</span></code></a>, <a class=\"reference internal\" href=\"/ga/6.1/ref/models/querysets/#std-fieldlookup-endswith\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">endswith</span></code></a></dt><dd><p>Tosaí-le cuardach agus críochnaí-le cuardach, faoi seach. Tá leaganacha cás-neamh-íogair ann freisin ar a dtugtar: lookup: istartswith agus:lookup: iendswith.</p>\n</dd>\n</dl>\n<p>Arís, ní scriosann sé seo ach an dromchla. &lt;field-lookups&gt;Is féidir tagairt iomlán a fháil in:ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>tagairt cuardaigh réimse <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>.</p>\n</section>\n<section id=\"lookups-that-span-relationships\">\n<span id=\"id6\"></span><h3>Cuardaigh a bhaineann le caidrimh<a class=\"heading-anchor\" href=\"#lookups-that-span-relationships\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Cuireann Django bealach cumhachtach iomasach ar fáil chun caidrimh a “leanúint” i gcuardaigh, ag tabhairt aire do na SQL JOIN` duitse go huathoibríoch, taobh thiar de na radhairc. Chun caidreamh a sceitheadh, bain úsáid as ainm réimse réimsí gaolmhara ar fud samhlacha, scartha le béim dhúbailte, go dtí go sroicheann tú an réimse atá uait.</p>\n<p>Aisghabhraíonn an sampla seo gach rud <code class=\"docutils literal notranslate\"><span class=\"pre\">Entry</span></code> le <code class=\"docutils literal notranslate\"><span class=\"pre\">Blog</span></code> a bhfuil <code class=\"docutils literal notranslate\"><span class=\"pre\">ainm</span> <span class=\"pre\">`````Blog</span></code> <code class=\"docutils literal notranslate\"><span class=\"pre\">`Beatles</span> <span class=\"pre\">Blog`</span></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=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">blog__name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Beatles Blog&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Is féidir leis an sceitheadh seo a bheith chomh domhain agus is mian leat.</p>\n<p>It works backwards, too. While it can be customized by setting\n<a class=\"reference internal\" href=\"/ga/6.1/ref/models/fields/#django.db.models.ForeignKey.related_query_name\" title=\"django.db.models.ForeignKey.related_query_name\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">related_query_name</span></code></a>, by default you\nrefer to a &quot;reverse&quot; relationship in a lookup using the lowercase name of the\nmodel.</p>\n<p>Aisghabhraíonn an sampla seo gach rud <code class=\"docutils literal notranslate\"><span class=\"pre\">`Blog</span></code> a bhfuil <code class=\"docutils literal notranslate\"><span class=\"pre\">Iontrála</span></code> amháin ar a laghad aici a bhfuil <code class=\"docutils literal notranslate\"><span class=\"pre\">Lennon</span></code> 'ceannlíne <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></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=\"n\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">entry__headline__contains</span><span class=\"o\">=</span><span class=\"s2\">&quot;Lennon&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Má tá tú ag scagadh ar fud caidrimh iolracha agus mura bhfuil luach ag ceann de na samhlacha idirmheánacha a chomhlíonann coinníoll an scagaire, déileálfaidh Django leis amhail is dá mbeadh folamh ann (tá gach luach <code class=\"docutils literal notranslate\"><span class=\"pre\">NULL</span></code>), ach bailí, réad ann. Ciallaíonn sé seo go léir ná nach n-ardófar aon earráid. Mar shampla, sa scagaire seo:</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\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">entry__authors__name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Lennon&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>(dá mbeadh samhail ghaolmhar <code class=\"docutils literal notranslate\"><span class=\"pre\">Údar</span></code> ann), mura mbeadh aon <code class=\"docutils literal notranslate\"><span class=\"pre\">údar</span></code> a bhaineann le hiontráil, déileálfaí leis amhail is dá mbeadh aon <code class=\"docutils literal notranslate\"><span class=\"pre\">ainm</span> <span class=\"pre\">``ceangailte</span> <span class=\"pre\">ann</span> <span class=\"pre\">freisin,</span> <span class=\"pre\">seachas</span> <span class=\"pre\">earráid</span> <span class=\"pre\">a</span> <span class=\"pre\">ardú</span> <span class=\"pre\">mar</span> <span class=\"pre\">gheall</span> <span class=\"pre\">ar</span> <span class=\"pre\">an</span> <span class=\"pre\">``údar</span></code> atá in easnamh. De ghnáth is é seo go díreach cad ba mhaith leat a tharlóidh. Is é an t-aon chás ina bhféadfadh sé a bheith mearbhall ná má tá tú ag baint úsáidea:lookup: isnull. Dá bhrí sin:</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\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">entry__authors__name__isnull</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>cuirfidh sé ar ais rudaí <code class=\"docutils literal notranslate\"><span class=\"pre\">Blog</span></code> a bhfuil <code class=\"docutils literal notranslate\"><span class=\"pre\">ainm</span> <span class=\"pre\">folamh</span> <span class=\"pre\">acu</span> <span class=\"pre\">ar</span> <span class=\"pre\">an</span> <span class=\"pre\">``údar</span></code> agus freisin iad siúd a bhfuil <code class=\"docutils literal notranslate\"><span class=\"pre\">údar</span></code> folamh acu ar an <code class=\"docutils literal notranslate\"><span class=\"pre\">iontrála</span></code>. Mura dteastaíonn na rudaí deiridh sin uait, d'fhéadfá scríobh:</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\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">entry__authors__isnull</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">,</span> <span class=\"n\">entry__authors__name__isnull</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n</code></pre></div>\n<section id=\"spanning-multi-valued-relationships\">\n<span id=\"id7\"></span><h4>Cuimsíonn caidrimh illuachmhar<a class=\"heading-anchor\" href=\"#spanning-multi-valued-relationships\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Nuair a chuimsíonn a:class: ~django.db.models.manyToManyField nó a reverse:class: ~django.db.models.foreignKey (mar shampla ó <code class=\"docutils literal notranslate\"><span class=\"pre\">Blog</span></code> go Entry `), ardaíonn scagadh ar iolrthréithe an cheist an gcaithfidh gach tréith a bheith ag teacht leis an réad gaolmhar céanna. D'fhéadfaimis blaganna a lorg a bhfuil iontráil acu ó 2008 len* “Lennon” * ina cheannlíne, nó d'fhéadfaimis blaganna a lorg nach bhfuil ach aon iontráil acu ó 2008 chomh maith le roinnt iontráil níos nuaí nó níos sine len* “Lennon” * ina cheannlíne.</p>\n<p>Chun gach blaganna a roghnú ina bhfuil iontráil amháin ar a laghad ó 2008 ina bhfuil <em>&quot;Lennon&quot;</em> ina cheannlíne (an iontráil chéanna a shlíonann an dá choinníoll), scríobhfaimis:</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\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">entry__headline__contains</span><span class=\"o\">=</span><span class=\"s2\">&quot;Lennon&quot;</span><span class=\"p\">,</span> <span class=\"n\">entry__pub_date__year</span><span class=\"o\">=</span><span class=\"mi\">2008</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Seachas sin, chun fiosrúchán níos ceadaithe a dhéanamh ag roghnú aon bhlaganna nach bhfuil ach iontráil* éigin* lennon&quot;* ina cheannlíne agus iontráil* éigin* ó 2008, scríobhfaimis:</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\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">entry__headline__contains</span><span class=\"o\">=</span><span class=\"s2\">&quot;Lennon&quot;</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span>\n    <span class=\"n\">entry__pub_date__year</span><span class=\"o\">=</span><span class=\"mi\">2008</span>\n<span class=\"p\">)</span>\n</code></pre></div>\n<p>Cuir i gcás nach bhfuil ach blag amháin ann a bhfuil an dá iontráil ina bhfuil <em>&quot;Lennon&quot;</em> agus iontrálacha ó 2008, ach nach raibh <em>&quot;Lennon&quot;</em> in aon cheann de na hiontrálacha ó 2008. Ní thabharfadh an chéad cheist aon bhlag ar ais, ach chuirfeadh an dara ceist ar ais an blag amháin sin. (Tá sé seo toisc go bhféadfadh nó nach bhféadfadh na hiontrálacha a roghnaíonn an dara scagaire a bheith mar an gcéanna leis na hiontrálacha sa chéad scagaire. Táimid ag scagadh na míreanna <code class=\"docutils literal notranslate\"><span class=\"pre\">Blag</span></code> le gach ráiteas scagaire, ní na míreanna <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Iontrála`.) I mbeagán focal, más gá do gach coinníoll an réad gaolmhar céanna a mheaitseáil, ba chóir go mbeadh gach ceann acu i nglao aonair: meth: ~django.db.models.query.queryset.filter.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>De réir mar a shlabhraíonn an dara ceist (níos ceadaithe) scagairí iolracha, déanann sé iolracha comhcheangail leis an bpríomhúnsamhail, rud a d'fhéadfadh dúbailtí a thabhairt.</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=\"w\"> </span><span class=\"nn\">datetime</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">date</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">beatles</span> <span class=\"o\">=</span> <span class=\"n\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Beatles Blog&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">pop</span> <span class=\"o\">=</span> <span class=\"n\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Pop Music Blog&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">blog</span><span class=\"o\">=</span><span class=\"n\">beatles</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">headline</span><span class=\"o\">=</span><span class=\"s2\">&quot;New Lennon Biography&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">pub_date</span><span class=\"o\">=</span><span class=\"n\">date</span><span class=\"p\">(</span><span class=\"mi\">2008</span><span class=\"p\">,</span> <span class=\"mi\">6</span><span class=\"p\">,</span> <span class=\"mi\">1</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"go\">&lt;Entry: New Lennon Biography&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">blog</span><span class=\"o\">=</span><span class=\"n\">beatles</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">headline</span><span class=\"o\">=</span><span class=\"s2\">&quot;New Lennon Biography in Paperback&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">pub_date</span><span class=\"o\">=</span><span class=\"n\">date</span><span class=\"p\">(</span><span class=\"mi\">2009</span><span class=\"p\">,</span> <span class=\"mi\">6</span><span class=\"p\">,</span> <span class=\"mi\">1</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"go\">&lt;Entry: New Lennon Biography in Paperback&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">blog</span><span class=\"o\">=</span><span class=\"n\">pop</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">headline</span><span class=\"o\">=</span><span class=\"s2\">&quot;Best Albums of 2008&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">pub_date</span><span class=\"o\">=</span><span class=\"n\">date</span><span class=\"p\">(</span><span class=\"mi\">2008</span><span class=\"p\">,</span> <span class=\"mi\">12</span><span class=\"p\">,</span> <span class=\"mi\">15</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"go\">&lt;Entry: Best Albums of 2008&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">blog</span><span class=\"o\">=</span><span class=\"n\">pop</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">headline</span><span class=\"o\">=</span><span class=\"s2\">&quot;Lennon Would Have Loved Hip Hop&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">pub_date</span><span class=\"o\">=</span><span class=\"n\">date</span><span class=\"p\">(</span><span class=\"mi\">2020</span><span class=\"p\">,</span> <span class=\"mi\">4</span><span class=\"p\">,</span> <span class=\"mi\">1</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"go\">&lt;Entry: Lennon Would Have Loved Hip Hop&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">entry__headline__contains</span><span class=\"o\">=</span><span class=\"s2\">&quot;Lennon&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">entry__pub_date__year</span><span class=\"o\">=</span><span class=\"mi\">2008</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet [&lt;Blog: Beatles Blog&gt;]&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">entry__headline__contains</span><span class=\"o\">=</span><span class=\"s2\">&quot;Lennon&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">entry__pub_date__year</span><span class=\"o\">=</span><span class=\"mi\">2008</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet [&lt;Blog: Beatles Blog&gt;, &lt;Blog: Beatles Blog&gt;, &lt;Blog: Pop Music Blog]&gt;</span>\n</code></pre></div>\n</aside>\n<aside class=\"admonition admonition-note\" id=\"exclude-implementation\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Ní chuirtear iompar: meth: ~django.db.models.query.queryset.filter i bhfeidhm go coibhéiseach le haghaidh ceisteanna a bhaineann le caidrimh illuacha, mar a thuairiscítear thuas, go coibhéiseach le haghaidh: meth: ~django.db.models.query.queryset.exclude. Ina áit sin, ní gá go dtagróidh na coinníollacha i nglao aonair: meth: ~django.db.models.query.queryset.exclude don mhír chéanna.</p>\n<p>Mar shampla, ní chuirfeadh an cheist seo a leanas blaganna ina bhfuil iontrálacha <em>&quot;Lennon&quot;</em> san iontrálacha ceannlín*agus* a foilsíodh in 2008:</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\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">exclude</span><span class=\"p\">(</span>\n    <span class=\"n\">entry__headline__contains</span><span class=\"o\">=</span><span class=\"s2\">&quot;Lennon&quot;</span><span class=\"p\">,</span>\n    <span class=\"n\">entry__pub_date__year</span><span class=\"o\">=</span><span class=\"mi\">2008</span><span class=\"p\">,</span>\n<span class=\"p\">)</span>\n</code></pre></div>\n<p>Mar sin féin, murab ionann agus an t-iompar nuair a úsáidtear: meth: ~django.db.models.query.queryset.filter, ní chuirfidh sé seo teorainn le blaganna bunaithe ar iontrálacha a shánaíonn an dá choinníoll. D'fhonn é sin a dhéanamh, ie gach blaganna nach bhfuil iontrálacha foilsíodh len*&quot;Lennon&quot;* a foilsíodh in 2008 a roghnú, ní mór duit dhá cheist a dhéanamh:</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\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">exclude</span><span class=\"p\">(</span>\n    <span class=\"n\">entry__in</span><span class=\"o\">=</span><span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span>\n        <span class=\"n\">headline__contains</span><span class=\"o\">=</span><span class=\"s2\">&quot;Lennon&quot;</span><span class=\"p\">,</span>\n        <span class=\"n\">pub_date__year</span><span class=\"o\">=</span><span class=\"mi\">2008</span><span class=\"p\">,</span>\n    <span class=\"p\">),</span>\n<span class=\"p\">)</span>\n</code></pre></div>\n</aside>\n</section>\n</section>\n<section id=\"filters-can-reference-fields-on-the-model\">\n<span id=\"using-f-expressions-in-filters\"></span><h3>Is féidir le scagairí réimsí tagartha a dhéanamh ar an<a class=\"heading-anchor\" href=\"#filters-can-reference-fields-on-the-model\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Sna samplaí a tugadh go dtí seo, tá scagairí tógtha againn a dhéanann comparáid idir luach réimse samhail le tairiseach. Ach cad más mian leat luach réimse samhail a chur i gcomparáid le réimse eile ar an tsamhail chéanna?</p>\n<p>Django provides <a class=\"reference internal\" href=\"/ga/6.1/ref/models/expressions/#f-expressions\"><span class=\"std std-ref\">Nathanna ``F () ``</span></a> to allow such comparisons. Instances of\n<code class=\"docutils literal notranslate\"><span class=\"pre\">F()</span></code> act as a reference to a model field within a query. These references\ncan then be used in query filters to compare the values of two different fields\non the same model instance.</p>\n<p>Mar shampla, chun liosta de na hiontrálacha blag go léir a raibh níos mó tuairimí acu ná pingbacks a fháil, tógaimid réad <code class=\"docutils literal notranslate\"><span class=\"pre\">F</span> <span class=\"pre\">()</span> <span class=\"pre\">``chun</span> <span class=\"pre\">tagairt</span> <span class=\"pre\">a</span> <span class=\"pre\">dhéanamh</span> <span class=\"pre\">don</span> <span class=\"pre\">chomhaireamh</span> <span class=\"pre\">pingback,</span> <span class=\"pre\">agus</span> <span class=\"pre\">úsáidimid</span> <span class=\"pre\">an</span> <span class=\"pre\">rud</span> <span class=\"pre\">``F</span> <span class=\"pre\">()</span></code> sin san cheist:</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=\"w\"> </span><span class=\"nn\">django.db.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">F</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">number_of_comments__gt</span><span class=\"o\">=</span><span class=\"n\">F</span><span class=\"p\">(</span><span class=\"s2\">&quot;number_of_pingbacks&quot;</span><span class=\"p\">))</span>\n</code></pre></div>\n<p>Tacaíonn Django le húsáid suimithe, íolraithe, iolraithe, roinnte, modulo, agus uimhrithíochta cumhachta le rudaí <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>F () , le comhsheasmhacha agus le rudaí `F () eile. Chun na hiontrálacha blag go léir a fháil le níos mó ná * dhá uaire* an oiread tuairimí le pingbacks, déanaimid an cheist a mhodhnú:</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=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">number_of_comments__gt</span><span class=\"o\">=</span><span class=\"n\">F</span><span class=\"p\">(</span><span class=\"s2\">&quot;number_of_pingbacks&quot;</span><span class=\"p\">)</span> <span class=\"o\">*</span> <span class=\"mi\">2</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Chun na hiontrálacha go léir a fháil ina bhfuil rátáil an iontrála níos lú ná suim an chomhaireamh pingback agus comhaireamh tráchta, eisíodh an cheist:</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=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">rating__lt</span><span class=\"o\">=</span><span class=\"n\">F</span><span class=\"p\">(</span><span class=\"s2\">&quot;number_of_comments&quot;</span><span class=\"p\">)</span> <span class=\"o\">+</span> <span class=\"n\">F</span><span class=\"p\">(</span><span class=\"s2\">&quot;number_of_pingbacks&quot;</span><span class=\"p\">))</span>\n</code></pre></div>\n<p>Is féidir leat an nótaí béim dhúbailte a úsáid freisin chun caidrimh a shlánú i réad <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>F () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>. Tabharfaidh réad <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">``</span></a>F () <a href=\"#id7\"><span class=\"problematic\" id=\"id8\">``</span></a>le béim dúbailte aon cheangal a theastaíonn chun rochtain a fháil ar an réad gaolmhar. Mar shampla, chun na hiontrálacha go léir a aisghabháil ina bhfuil ainm an údair mar an gcéanna le hainm an bhlag, d'fhéadfaimis an cheist a eisiúint:</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=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">authors__name</span><span class=\"o\">=</span><span class=\"n\">F</span><span class=\"p\">(</span><span class=\"s2\">&quot;blog__name&quot;</span><span class=\"p\">))</span>\n</code></pre></div>\n<p>Maidir le réimsí dáta agus dáta/ama, is féidir leat a: class: ~datetime.timedelta réad a chur leis nó a bhaint. Chuirfeadh na nithe seo a leanas ar ais gach iontráil a modhníodh níos mó ná 3 lá tar éis iad a fhoilsiú:</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=\"w\"> </span><span class=\"nn\">datetime</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">timedelta</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">mod_date__gt</span><span class=\"o\">=</span><span class=\"n\">F</span><span class=\"p\">(</span><span class=\"s2\">&quot;pub_date&quot;</span><span class=\"p\">)</span> <span class=\"o\">+</span> <span class=\"n\">timedelta</span><span class=\"p\">(</span><span class=\"n\">days</span><span class=\"o\">=</span><span class=\"mi\">3</span><span class=\"p\">))</span>\n</code></pre></div>\n<p>Tacaíonn na rudaí <code class=\"docutils literal notranslate\"><span class=\"pre\">F</span> <span class=\"pre\">()</span> <span class=\"pre\">``le</span> <span class=\"pre\">hoibríochtaí</span> <span class=\"pre\">bitwise</span> <span class=\"pre\">le</span> <span class=\"pre\">``.bitand</span> <span class=\"pre\">()</span></code>, .bitor () `, .bitxor ()`, .bitxor () `, .bitrightshift ()`, agus <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>.bitleftshift () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>. Mar shampla:</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=\"n\">F</span><span class=\"p\">(</span><span class=\"s2\">&quot;somefield&quot;</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">bitand</span><span class=\"p\">(</span><span class=\"mi\">16</span><span class=\"p\">)</span>\n</code></pre></div>\n<aside class=\"admonition-oracle admonition\">\n<p class=\"admonition-title\">Oracle</p>\n<p>Ní thacaíonn Oracle le hoibriú bitwise XOR.</p>\n</aside>\n</section>\n<section id=\"expressions-can-reference-transforms\">\n<span id=\"using-transforms-in-expressions\"></span><h3>Is féidir le nathanna tagairt a dhéanamh d'athrú<a class=\"heading-anchor\" href=\"#expressions-can-reference-transforms\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Tacaíonn Django le hathruithe a úsáid i nathanna.</p>\n<p>Mar shampla, chun gach rud <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Iontrála` a fhoilsíodh sa bhliain chéanna agus a mhodhníodh iad go deireanach a aimsiú:</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=\"w\"> </span><span class=\"nn\">django.db.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">F</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">pub_date__year</span><span class=\"o\">=</span><span class=\"n\">F</span><span class=\"p\">(</span><span class=\"s2\">&quot;mod_date__year&quot;</span><span class=\"p\">))</span>\n</code></pre></div>\n<p>Chun an bhliain is luaithe foilsíodh iontráil a fháil, is féidir linn an cheist a eisiúint:</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=\"w\"> </span><span class=\"nn\">django.db.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Min</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">aggregate</span><span class=\"p\">(</span><span class=\"n\">first_published_year</span><span class=\"o\">=</span><span class=\"n\">Min</span><span class=\"p\">(</span><span class=\"s2\">&quot;pub_date__year&quot;</span><span class=\"p\">))</span>\n</code></pre></div>\n<p>Aimsíonn an sampla seo luach an iontrála is airde agus líon iomlán na dtuairimí ar gach iontráil do gach bliain:</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=\"w\"> </span><span class=\"nn\">django.db.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">OuterRef</span><span class=\"p\">,</span> <span class=\"n\">Subquery</span><span class=\"p\">,</span> <span class=\"n\">Sum</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">values</span><span class=\"p\">(</span><span class=\"s2\">&quot;pub_date__year&quot;</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">top_rating</span><span class=\"o\">=</span><span class=\"n\">Subquery</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>        <span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>            <span class=\"n\">pub_date__year</span><span class=\"o\">=</span><span class=\"n\">OuterRef</span><span class=\"p\">(</span><span class=\"s2\">&quot;pub_date__year&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>        <span class=\"p\">)</span>\n<span class=\"gp\">... </span>        <span class=\"o\">.</span><span class=\"n\">order_by</span><span class=\"p\">(</span><span class=\"s2\">&quot;-rating&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">... </span>        <span class=\"o\">.</span><span class=\"n\">values</span><span class=\"p\">(</span><span class=\"s2\">&quot;rating&quot;</span><span class=\"p\">)[:</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=\"n\">total_comments</span><span class=\"o\">=</span><span class=\"n\">Sum</span><span class=\"p\">(</span><span class=\"s2\">&quot;number_of_comments&quot;</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n</code></pre></div>\n</section>\n<section id=\"the-pk-lookup-shortcut\">\n<h3>An aicearra cuardaigh <code class=\"docutils literal notranslate\"><span class=\"pre\">pk</span></code><a class=\"heading-anchor\" href=\"#the-pk-lookup-shortcut\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Ar mhaithe le áisiúlacht, soláthraíonn Django aicearra cuardaigh <code class=\"docutils literal notranslate\"><span class=\"pre\">pk</span></code>, a sheasann do “eochair phríomhúil”.</p>\n<p>Sa tsamhail <code class=\"docutils literal notranslate\"><span class=\"pre\">Blog</span></code> sampla, is é an príomh-eochair an réimse id`, mar sin tá na trí ráiteas seo coibhéiseach:</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=\"n\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"n\">id__exact</span><span class=\"o\">=</span><span class=\"mi\">14</span><span class=\"p\">)</span>  <span class=\"c1\"># Explicit form</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"mi\">14</span><span class=\"p\">)</span>  <span class=\"c1\"># __exact is implied</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"n\">pk</span><span class=\"o\">=</span><span class=\"mi\">14</span><span class=\"p\">)</span>  <span class=\"c1\"># pk implies id__exact</span>\n</code></pre></div>\n<p>Níl úsáid pk` teoranta do cheisteanna <code class=\"docutils literal notranslate\"><span class=\"pre\">__exact</span></code> - is féidir aon téarma fiosrúcháin a chomhcheangal le pk` chun ceist a dhéanamh ar phríomh-eochair mhúnla:</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=\"go\"># Get blogs entries with id 1, 4 and 7</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">pk__in</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"mi\">4</span><span class=\"p\">,</span> <span class=\"mi\">7</span><span class=\"p\">])</span>\n\n<span class=\"go\"># Get all blog entries with id &gt; 14</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">pk__gt</span><span class=\"o\">=</span><span class=\"mi\">14</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Oibríonn cuardaigh pk` trasna comhpháirteanna freisin. Mar shampla, tá na trí ráiteas seo coibhéiseach:</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=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">blog__id__exact</span><span class=\"o\">=</span><span class=\"mi\">3</span><span class=\"p\">)</span>  <span class=\"c1\"># Explicit form</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">blog__id</span><span class=\"o\">=</span><span class=\"mi\">3</span><span class=\"p\">)</span>  <span class=\"c1\"># __exact is implied</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">blog__pk</span><span class=\"o\">=</span><span class=\"mi\">3</span><span class=\"p\">)</span>  <span class=\"c1\"># __pk implies __id__exact</span>\n</code></pre></div>\n</section>\n<section id=\"escaping-percent-signs-and-underscores-in-like-statements\">\n<h3>Comharthaí agus béim faoin gcéad ag éalú i ráitis <code class=\"docutils literal notranslate\"><span class=\"pre\">LIKE</span></code><a class=\"heading-anchor\" href=\"#escaping-percent-signs-and-underscores-in-like-statements\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Éalóidh na cuardaigh réimse atá cothrom le ráitis SQL LIKE` (iexact`, contains`, icontains`, startswith`, istartswith`, <code class=\"docutils literal notranslate\"><span class=\"pre\">deireadh</span> <span class=\"pre\">``agus</span> <span class=\"pre\">``iendswith</span></code>) éalóidh go huathoibríoch an dá charachtar speisialta a úsáidtear i ráitis LIKE` -- an céatadán agus an comhartha an béim. (I ráiteas <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>LIKE <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>, léiríonn an comhartha faoin gcéad cárta fiáin ilcharachtar agus léiríonn an béim cárta fiáin aon charachtar.)</p>\n<p>Ciallaíonn sé seo gur chóir go n-oibreodh rudaí go iomasach, ionas nach sceitheann an teastarbhú. Mar shampla, chun na hiontrálacha go léir ina bhfuil comhartha faoin gcéad a aisghabháil, bain úsáid as an gcomhartha céatadáin mar aon charachtar eile</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=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">headline__contains</span><span class=\"o\">=</span><span class=\"s2\">&quot;%&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Tugann Django aire don luachan duit; beidh cuma mar seo ar an SQL mar seo:</p>\n<div class=\"code-block\" data-language=\"sql\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">SQL</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=\"SQL code\"><code><span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"p\">...</span><span class=\"w\"> </span><span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"n\">headline</span><span class=\"w\"> </span><span class=\"k\">LIKE</span><span class=\"w\"> </span><span class=\"s1\">&#39;%\\%%&#39;</span><span class=\"p\">;</span>\n</code></pre></div>\n<p>Baineann an rud céanna le béim. Déantar comharthaí céatadáin agus béim a láimhseáil duit go trédhearcach.</p>\n</section>\n<section id=\"caching-and-querysets\">\n<span id=\"id8\"></span><h3>Caching agus <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code>s<a class=\"heading-anchor\" href=\"#caching-and-querysets\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Tá taisce ag gach ceann: Class: ~django.db.models.query.querySet chun rochtain ar bhunachar sonraí a íoslaghdú. Ligfidh tuiscint ar an gcaoi a n-oibríonn sé duit an cód is éifeachtaí a scríobh.</p>\n<p>I: class: ~django.db.models.query.queryset nua-chruthaithe, tá an taisce folamh. An chéad uair a dhéantar a: class: ~django.db.models.query.queryset a mheas -- agus, dá bhrí sin, tarlaíonn ceist bunachar sonraí -- Sábhálann Django torthaí na fiosrúcháin i taisce:class: ~django.db.models.queryset agus filleann sé na torthaí a iarradh go sainráite (m.sh., an chéad eilimint eile, más air:class: ~django..DB.Models.Query.QuerySet á athrá). Déanann meastóireachtaí ina dhiaidh sin ar an: aicme: ~django.db.models.query.queryset athúsáid na torthaí taisceáilte.</p>\n<p>Coinnigh an t-iompar taiscéála seo i gcuimhne, toisc go bhféadfadh sé greim ort mura n-úsáideann tú do: class: ~django.db.models.query.querysets i gceart. Mar shampla, cruthóidh an méid seo a leanas dhá cheant:class: ~django.db.models.query.querysets, iad a mheas, agus caith amach iad:</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=\"nb\">print</span><span class=\"p\">([</span><span class=\"n\">e</span><span class=\"o\">.</span><span class=\"n\">headline</span> <span class=\"k\">for</span> <span class=\"n\">e</span> <span class=\"ow\">in</span> <span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()])</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">([</span><span class=\"n\">e</span><span class=\"o\">.</span><span class=\"n\">pub_date</span> <span class=\"k\">for</span> <span class=\"n\">e</span> <span class=\"ow\">in</span> <span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()])</span>\n</code></pre></div>\n<p>Ciallaíonn sé sin go ndéanfar an ceist bunachar sonraí céanna a fhorghníomhú faoi dhó, ag dúbailt go héifeachtach Chomh maith leis sin, tá an fhéidearthacht nach gcuimsíonn an dá liosta na taifid bunachar sonraí céanna, toisc go bhféadfadh “Iontráil” a chur leis nó a scriosadh sa dara scoilt idir an dá iarratas.</p>\n<p>Chun an fhadhb seo a sheachaint, sábháil an:class: ~django.db.models.query.queryset agus athúsáid é:</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=\"n\">queryset</span> <span class=\"o\">=</span> <span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">([</span><span class=\"n\">p</span><span class=\"o\">.</span><span class=\"n\">headline</span> <span class=\"k\">for</span> <span class=\"n\">p</span> <span class=\"ow\">in</span> <span class=\"n\">queryset</span><span class=\"p\">])</span>  <span class=\"c1\"># Evaluate the query set.</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">([</span><span class=\"n\">p</span><span class=\"o\">.</span><span class=\"n\">pub_date</span> <span class=\"k\">for</span> <span class=\"n\">p</span> <span class=\"ow\">in</span> <span class=\"n\">queryset</span><span class=\"p\">])</span>  <span class=\"c1\"># Reuse the cache from the evaluation.</span>\n</code></pre></div>\n<section id=\"when-querysets-are-not-cached\">\n<h4>Nuair nach ndéantar <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code>\\ s a chosc<a class=\"heading-anchor\" href=\"#when-querysets-are-not-cached\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Querysets do not always cache their results. When evaluating only <em>part</em> of\nthe queryset, the cache is checked, but if it is not populated then the items\nreturned by the subsequent query are not cached. Specifically, this means that\n<a class=\"reference internal\" href=\"#limiting-querysets\"><span class=\"std std-ref\">limiting the queryset</span></a> using an array slice or an\nindex will not populate the cache.</p>\n<p>Mar shampla, déanfaidh innéacs áirithe a fháil arís agus arís agus arís eile i réad socraithe ceisteanna an bunachar sonraí gach uair:</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=\"n\">queryset</span> <span class=\"o\">=</span> <span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">queryset</span><span class=\"p\">[</span><span class=\"mi\">5</span><span class=\"p\">])</span>  <span class=\"c1\"># Queries the database</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">queryset</span><span class=\"p\">[</span><span class=\"mi\">5</span><span class=\"p\">])</span>  <span class=\"c1\"># Queries the database again</span>\n</code></pre></div>\n<p>Mar sin féin, má rinneadh an tacar fiosrúcháin iomlán a mheas cheana féin, seiceálfar an taisce ina ionad sin:</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=\"n\">queryset</span> <span class=\"o\">=</span> <span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"p\">[</span><span class=\"n\">entry</span> <span class=\"k\">for</span> <span class=\"n\">entry</span> <span class=\"ow\">in</span> <span class=\"n\">queryset</span><span class=\"p\">]</span>  <span class=\"c1\"># Queries the database</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">queryset</span><span class=\"p\">[</span><span class=\"mi\">5</span><span class=\"p\">])</span>  <span class=\"c1\"># Uses cache</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">queryset</span><span class=\"p\">[</span><span class=\"mi\">5</span><span class=\"p\">])</span>  <span class=\"c1\"># Uses cache</span>\n</code></pre></div>\n<p>Seo roinnt samplaí de ghníomhartha eile a mbeidh meastóireacht ar an tacar fiosrúcháin iomlán mar thoradh air agus dá bhrí sin an taisce a líonadh:</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=\"p\">[</span><span class=\"n\">entry</span> <span class=\"k\">for</span> <span class=\"n\">entry</span> <span class=\"ow\">in</span> <span class=\"n\">queryset</span><span class=\"p\">]</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">bool</span><span class=\"p\">(</span><span class=\"n\">queryset</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">entry</span> <span class=\"ow\">in</span> <span class=\"n\">queryset</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">list</span><span class=\"p\">(</span><span class=\"n\">queryset</span><span class=\"p\">)</span>\n</code></pre></div>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Ní dhéanfaidh an taisce an taisce a phriontáil ach an tacar fiosrúcháin a phriontáil. Tá sé seo toisc nach bhfilleann an glao chuig <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>__repr__ () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>ach slisnacht den tacar fiosrúcháin iomlán.</p>\n</aside>\n</section>\n</section>\n</section>\n<section id=\"asynchronous-queries\">\n<span id=\"async-queries\"></span><h2>Fiosrúcháin asincrónach<a class=\"heading-anchor\" href=\"#asynchronous-queries\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Má tá tuairimí nó cód asincrónacha á scríobh agat, ní féidir leat an ORM a úsáid le haghaidh fiosrúcháin ar an mbealach atá cur síos againn thuas, mar ní féidir leat cód sioncrónas* a ghlaoch ó chód asincrónach - cuirfidh sé bac ar an lúb imeachta (nó, is dóichí, tabharfaidh Django faoi deara agus ardóidh sé “SynchronousOnlyOperation” chun é sin a stopadh ó tharlóidh).</p>\n<p>Ar ámharaí an tsaoil, is féidir leat go leor ceisteanna a dhéanamh ag baint úsáide as APIs ceist asincrónach Django. Tá leagan asincrónach ag gach modh a d'fhéadfadh bac a chur - mar shampla <code class=\"docutils literal notranslate\"><span class=\"pre\">get</span> <span class=\"pre\">()</span> <span class=\"pre\">``nó</span> <span class=\"pre\">``delete</span> <span class=\"pre\">()</span></code> - <code class=\"docutils literal notranslate\"><span class=\"pre\">nó</span> <span class=\"pre\">``adelete</span> <span class=\"pre\">()</span></code>), agus nuair a athraitheann tú thar thorthaí, is féidir leat athrú asincrónach (async for`) a úsáid ina ionad.</p>\n<section id=\"query-iteration\">\n<h3>Athraitheadh ceisteanna<a class=\"heading-anchor\" href=\"#query-iteration\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Beidh ceist bunachar sonraí blocála taobh thiar de na radhairc mar thoradh ar an mbealach réamhshocraithe chun athrá thar cheist - le for` - - mar thoradh ar an mbealach réamhshocraithe agus Django á luchtú ag am athraithe. Chun é seo a shocrú, is féidir leat a mhalartú go <code class=\"docutils literal notranslate\"><span class=\"pre\">async</span> <span class=\"pre\">for</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">async</span> <span class=\"k\">for</span> <span class=\"n\">entry</span> <span class=\"ow\">in</span> <span class=\"n\">Authors</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">name__startswith</span><span class=\"o\">=</span><span class=\"s2\">&quot;A&quot;</span><span class=\"p\">):</span>\n    <span class=\"o\">...</span>\n</code></pre></div>\n<p>Bí ar an eolas nach féidir leat rudaí eile a dhéanamh a d'fhéadfadh athrú thar an tacar ceisteanna, mar shampla <code class=\"docutils literal notranslate\"><span class=\"pre\">liosta</span> <span class=\"pre\">()</span> <span class=\"pre\">``a</span> <span class=\"pre\">fhilleadh</span> <span class=\"pre\">timpeall</span> <span class=\"pre\">air</span> <span class=\"pre\">chun</span> <span class=\"pre\">a</span> <span class=\"pre\">mheastóireacht</span> <span class=\"pre\">a</span> <span class=\"pre\">chur</span> <span class=\"pre\">i</span> <span class=\"pre\">bhfeidhm</span> <span class=\"pre\">(is</span> <span class=\"pre\">féidir</span> <span class=\"pre\">leat</span> <span class=\"pre\">``async</span> <span class=\"pre\">for</span></code> a úsáid i dtuiscint, más mian leat é).</p>\n<p>Toisc nach ritheann modhanna <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span> <span class=\"pre\">``mar</span> <span class=\"pre\">`filter</span> <span class=\"pre\">()</span></code> agus <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>eisiamh () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>an ceist i ndáiríre - bhunaíonn siad an tacar ceisteanna le rith nuair a dhéantar é a athrá - is féidir leat iad sin a úsáid go saor i gcód asincrónach. Le haghaidh treoir maidir le cé na modhanna is féidir a choinneáil a úsáid mar seo, agus a bhfuil leaganacha asincrónacha acu, léigh an chéad chuid eile.</p>\n</section>\n<section id=\"queryset-and-manager-methods\">\n<h3><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>QuerySet <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>agus modhanna bainisteora<a class=\"heading-anchor\" href=\"#queryset-and-manager-methods\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Cuireann roinnt modhanna ar bhainisteoirí agus ceisteanna ceisteanna - cosúil le <code class=\"docutils literal notranslate\"><span class=\"pre\">get</span> <span class=\"pre\">()</span> <span class=\"pre\">``agus</span> <span class=\"pre\">``first</span> <span class=\"pre\">()</span></code> - forghníomhú an tacar ceisteanna agus tá siad ag blocáil. Ní chuireann cuid acu, cosúil le filter () ``agus ``eisiamh ()`, forghníomhú i bhfeidhm agus mar sin tá siad sábháilte a rith ó chód asincrónach. Ach conas a cheaptar duit an difríocht a insint?</p>\n<p>Cé go bhféadfá dul timpeall agus a fheiceáil an bhfuil leagan réamhshocraithe <code class=\"docutils literal notranslate\"><span class=\"pre\">a</span></code> ann (mar shampla, tá <code class=\"docutils literal notranslate\"><span class=\"pre\">aget</span> <span class=\"pre\">()</span> <span class=\"pre\">``againn</span> <span class=\"pre\">ach</span> <span class=\"pre\">ní</span> <span class=\"pre\">``afilter</span> <span class=\"pre\">()</span></code>), tá bealach níos loighciúla ann - féach suas cén cineál modh atá ann in:doc: QuerySet tagair. &lt;/ref/models/querysets&gt;</p>\n<p>Ansin, gheobhaidh tú na modhanna ar QuerySets atá grúpáilte ina dhá chuid:</p>\n<ul class=\"simple\">\n<li><p><em>Methods that return new querysets</em>: These are the non-blocking ones,\nand don't have asynchronous versions. You're free to use these in any\nsituation, but understand the constraint of <a class=\"reference internal\" href=\"#no-deferred-queries\">no deferred queries</a> before\nusing <a class=\"reference internal\" href=\"/ga/6.1/ref/models/querysets/#django.db.models.query.QuerySet.defer\" title=\"django.db.models.query.QuerySet.defer\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">defer()</span></code></a>,\n<a class=\"reference internal\" href=\"/ga/6.1/ref/models/querysets/#django.db.models.query.QuerySet.only\" title=\"django.db.models.query.QuerySet.only\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">only()</span></code></a>, or\n<a class=\"reference internal\" href=\"/ga/6.1/ref/models/querysets/#django.db.models.query.QuerySet.fetch_mode\" title=\"django.db.models.query.QuerySet.fetch_mode\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">fetch_mode()</span></code></a>.</p></li>\n<li><p><em>Methods that do not return querysets</em>: These are the blocking ones, and\nhave asynchronous versions - the asynchronous name for each is noted in its\ndocumentation, though our standard pattern is to add an <code class=\"docutils literal notranslate\"><span class=\"pre\">a</span></code> prefix.</p></li>\n</ul>\n<p>Ag baint úsáide as an idirdhealú seo, is féidir leat oibriú amach nuair is gá duit leaganacha asincrónacha a úsáid, agus nuair nach ndéanann tú. Mar shampla, seo ceist asincrónach bailí:</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\">user</span> <span class=\"o\">=</span> <span class=\"k\">await</span> <span class=\"n\">User</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">username</span><span class=\"o\">=</span><span class=\"n\">my_input</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">afirst</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>Filleann <code class=\"docutils literal notranslate\"><span class=\"pre\">filter</span> <span class=\"pre\">()</span> <span class=\"pre\">``tacar</span> <span class=\"pre\">fiosrúcháin,</span> <span class=\"pre\">agus</span> <span class=\"pre\">mar</span> <span class=\"pre\">sin</span> <span class=\"pre\">tá</span> <span class=\"pre\">sé</span> <span class=\"pre\">go</span> <span class=\"pre\">breá</span> <span class=\"pre\">é</span> <span class=\"pre\">a</span> <span class=\"pre\">choinneáil</span> <span class=\"pre\">taobh</span> <span class=\"pre\">istigh</span> <span class=\"pre\">de</span> <span class=\"pre\">thimpeallacht</span> <span class=\"pre\">asincrónach,</span> <span class=\"pre\">ach</span> <span class=\"pre\">déanann</span> <span class=\"pre\">``first</span> <span class=\"pre\">()</span></code> measúnú agus filleann sé samhail - dá bhrí sin, athraímid go <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>first () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>, agus úsáidimid <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">``</span></a><a href=\"#id7\"><span class=\"problematic\" id=\"id8\">`</span></a>ag teacht tosaigh an abairt iomlán chun é a ghlaoch ar bhealach asincrónach.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>&lt;coroutine ... &gt;Má dhéanann tú dearmad an chuid <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a><a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>ag fanacht <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">``</span></a>a chur isteach, b'fhéidir go bhfeicfidh tú earráidí cosúil* “níl aon tréith x” * nó <em>&quot;</em> teaghráin ag réad coroutine in ionad do chásanna samhail. Má fheiceann tú iad seo riamh, tá “ag fanacht” in easnamh áit éigin chun an coroutine sin a iompú ina luach fíor.</p>\n</aside>\n</section>\n<section id=\"no-deferred-queries\">\n<h3>No deferred queries<a class=\"heading-anchor\" href=\"#no-deferred-queries\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Relations are deferred by default. If the <code class=\"docutils literal notranslate\"><span class=\"pre\">blog</span></code> relation is not prefetched,\naccessing <code class=\"docutils literal notranslate\"><span class=\"pre\">entry.blog</span></code> during asynchronous evaluation of a queryset attempts\na blocking database query, raising <code class=\"docutils literal notranslate\"><span class=\"pre\">SynchronousOnlyOperation</span></code>. (A similar\nlimitation applies to fields deferred via <code class=\"docutils literal notranslate\"><span class=\"pre\">defer()</span></code> or <code class=\"docutils literal notranslate\"><span class=\"pre\">only()</span></code>.) To avoid\nthis, see the advice on prefetching in <a class=\"reference internal\" href=\"#topics-db-queries-related\"><span class=\"std std-ref\">Rudaí gaolmhara</span></a>.</p>\n</section>\n<section id=\"transactions\">\n<h3>Idirbhearta<a class=\"heading-anchor\" href=\"#transactions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Ní thacaítear le hidirbhearta faoi láthair le ceisteanna agus nuashonruithe asincrónacha. Gheobhaidh tú amach go n-ardaíonn iarracht ceann amháin a úsáid <code class=\"docutils literal notranslate\"><span class=\"pre\">SynchronousOnlyOperation</span></code>.</p>\n<p>Más mian leat idirbheart a úsáid, molaimid duit do chód ORM a scríobh istigh de fheidhm shioncronach ar leithligh agus ansin glaoch air sin ag úsáid sync_to_async` - féach: doc: /topics/async le haghaidh tuilleadh.</p>\n</section>\n</section>\n<section id=\"querying-jsonfield\">\n<span id=\"id9\"></span><h2>Ag fiosrú <code class=\"docutils literal notranslate\"><span class=\"pre\">Jsonfield</span></code><a class=\"heading-anchor\" href=\"#querying-jsonfield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Tá cur i bhfeidhm Lookups difriúil in:class: ~django.db.models.jsonField, go príomha mar gheall ar phríomhchlaochruithe a bheith ann. Chun a thaispeáint, úsáidfimid an tsamhail sampla seo a leanas:</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.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Dog</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">200</span><span class=\"p\">)</span>\n    <span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">JSONField</span><span class=\"p\">(</span><span class=\"n\">null</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"fm\">__str__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">name</span>\n</code></pre></div>\n<section id=\"storing-and-querying-for-none\">\n<span id=\"id10\"></span><h3>Stóráil agus fiosrú ar <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code><a class=\"heading-anchor\" href=\"#storing-and-querying-for-none\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>As with other fields, storing <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> as the field's value will store it as\nSQL <code class=\"docutils literal notranslate\"><span class=\"pre\">NULL</span></code>. While not recommended, it is possible to store JSON scalar\n<code class=\"docutils literal notranslate\"><span class=\"pre\">null</span></code> instead of SQL <code class=\"docutils literal notranslate\"><span class=\"pre\">NULL</span></code> by using the <a class=\"reference internal\" href=\"/ga/6.1/ref/models/expressions/#django.db.models.JSONNull\" title=\"django.db.models.JSONNull\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">JSONNull()</span></code></a> expression.</p>\n<p>Cibé ceann de na luachanna a stóráiltear, nuair a aisghabtar ón mbunachar sonraí, tá léiriú Python ar an scalar JSON <code class=\"docutils literal notranslate\"><span class=\"pre\">null</span></code> mar an gcéanna le SQL <code class=\"docutils literal notranslate\"><span class=\"pre\">NULL</span></code>, ie <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>None <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>. Dá bhrí sin, is féidir go mbeadh sé deacair idirdhealú eatarthu.</p>\n<p>This only applies to <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> as the top-level value of the field. If <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>\nis inside a <a class=\"reference external\" href=\"https://docs.python.org/3/library/stdtypes.html#list\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">list</span></code></a> or <a class=\"reference external\" href=\"https://docs.python.org/3/library/stdtypes.html#dict\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">dict</span></code></a>, it will always be interpreted\nas JSON <code class=\"docutils literal notranslate\"><span class=\"pre\">null</span></code>.</p>\n<p>When querying, <a class=\"reference internal\" href=\"/ga/6.1/ref/models/querysets/#std-fieldlookup-isnull\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">isnull=True</span></code></a> is used to match SQL <code class=\"docutils literal notranslate\"><span class=\"pre\">NULL</span></code>,\nwhile exact-matching <code class=\"docutils literal notranslate\"><span class=\"pre\">JSONNull()</span></code> is used to match JSON <code class=\"docutils literal notranslate\"><span class=\"pre\">null</span></code>.</p>\n<aside class=\"version-note version-deprecated\" data-version=\"6.1\">\n<p class=\"version-note-title\">Deprecated since Django 6.1</p><p><span class=\"versionmodified deprecated\">Deprecated since version 6.1: </span>Exact-matching <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> in a query to mean JSON <code class=\"docutils literal notranslate\"><span class=\"pre\">null</span></code> is deprecated.\nAfter the deprecation period, it will be interpreted as SQL <code class=\"docutils literal notranslate\"><span class=\"pre\">NULL</span></code>.</p>\n</aside>\n<aside class=\"version-note version-changed\" data-version=\"6.1\">\n<p class=\"version-note-title\">Changed in Django 6.1</p><p><code class=\"docutils literal notranslate\"><span class=\"pre\">JSONNull()</span></code> expression was added.</p>\n</aside>\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=\"w\"> </span><span class=\"nn\">django.db.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">JSONNull</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Max&quot;</span><span class=\"p\">,</span> <span class=\"n\">data</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">)</span>  <span class=\"c1\"># SQL NULL.</span>\n<span class=\"go\">&lt;Dog: Max&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Archie&quot;</span><span class=\"p\">,</span> <span class=\"n\">data</span><span class=\"o\">=</span><span class=\"n\">JSONNull</span><span class=\"p\">())</span>  <span class=\"c1\"># JSON null.</span>\n<span class=\"go\">&lt;Dog: Archie&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">)</span>\n<span class=\"go\">...: RemovedInDjango70Warning: Using None as the right-hand side of an</span>\n<span class=\"go\">exact lookup on JSONField to mean JSON scalar &#39;null&#39; is deprecated. Use</span>\n<span class=\"go\">JSONNull() instead (or use the __isnull lookup if you meant SQL NULL).</span>\n<span class=\"go\">...</span>\n<span class=\"go\">&lt;QuerySet [&lt;Dog: Archie&gt;]&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"o\">=</span><span class=\"n\">JSONNull</span><span class=\"p\">())</span>\n<span class=\"go\">&lt;QuerySet [&lt;Dog: Archie&gt;]&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">data__isnull</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet [&lt;Dog: Max&gt;]&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">data__isnull</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet [&lt;Dog: Archie&gt;]&gt;</span>\n</code></pre></div>\n<p>Mura bhfuil tú cinnte gur mhaith leat oibriú le luachanna SQL <code class=\"docutils literal notranslate\"><span class=\"pre\">NULL</span></code>, smaoinigh ar Null=False` a shocrú agus réamhshocrú oiriúnach a sholáthar do luachanna folmha, mar shampla <code class=\"docutils literal notranslate\"><span class=\"pre\">default=dict</span></code>.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>&lt;django.db.models.Field.null&gt;Ní sháraíonn scálar JSON <code class=\"docutils literal notranslate\"><span class=\"pre\">null</span></code> a stóráil: attr: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>Null = false <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>.</p>\n</aside>\n<aside class=\"admonition-storing-json-null-inside-json-data admonition\">\n<p class=\"admonition-title\">Storing JSON <code class=\"docutils literal notranslate\"><span class=\"pre\">null</span></code> inside JSON data</p>\n<p>While <a class=\"reference internal\" href=\"/ga/6.1/ref/models/expressions/#django.db.models.JSONNull\" title=\"django.db.models.JSONNull\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">JSONNull()</span></code></a> can be used in\n<a class=\"reference internal\" href=\"#std-fieldlookup-jsonfield.key\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">jsonfield.key</span></code></a> exact lookups, it cannot be stored inside\n<a class=\"reference external\" href=\"https://docs.python.org/3/library/stdtypes.html#dict\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">dict</span></code></a> or <a class=\"reference external\" href=\"https://docs.python.org/3/library/stdtypes.html#list\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">list</span></code></a> instances meant to be saved in a\n<code class=\"docutils literal notranslate\"><span class=\"pre\">JSONField</span></code>, unless a custom encoder is used. If you don't want to use\na custom encoder, use <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> instead.</p>\n</aside>\n</section>\n<section id=\"key-index-and-path-transforms\">\n<span id=\"std-fieldlookup-jsonfield.key\"></span><span id=\"id11\"></span><h3>Athraíonn eochair, innéacs agus cosán<a class=\"heading-anchor\" href=\"#key-index-and-path-transforms\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Chun ceist a dhéanamh bunaithe ar eochair foclóra ar leith, bain úsáid as an eochair sin mar ainm an chuardaigh:</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=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Rufus&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{</span>\n<span class=\"gp\">... </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\">... </span>        <span class=\"s2\">&quot;owner&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n<span class=\"gp\">... </span>            <span class=\"s2\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Bob&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>            <span class=\"s2\">&quot;other_pets&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n<span class=\"gp\">... </span>                <span class=\"p\">{</span>\n<span class=\"gp\">... </span>                    <span class=\"s2\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Fishy&quot;</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=\"gp\">... </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;Dog: Rufus&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Meg&quot;</span><span class=\"p\">,</span> <span class=\"n\">data</span><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=\"kc\">None</span><span class=\"p\">})</span>\n<span class=\"go\">&lt;Dog: Meg&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">data__breed</span><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>To query a key for JSON <code class=\"docutils literal notranslate\"><span class=\"pre\">null</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> or <a class=\"reference internal\" href=\"/ga/6.1/ref/models/expressions/#django.db.models.JSONNull\" title=\"django.db.models.JSONNull\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">JSONNull()</span></code></a> can be used.</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=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">data__owner</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;Dog: Meg&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">data__owner</span><span class=\"o\">=</span><span class=\"n\">JSONNull</span><span class=\"p\">())</span>\n<span class=\"go\">&lt;Dog: Meg&gt;</span>\n</code></pre></div>\n<p>Is féidir eochracha iolracha a shlánú le chéile chun cuardach cosáin a fhoirmiú:</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=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">data__owner__name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Bob&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet [&lt;Dog: Rufus&gt;]&gt;</span>\n</code></pre></div>\n<p>Más slámhshláir é an eochair, léirmhínítear é mar athrú innéacs i sraith:</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=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">data__owner__other_pets__0__name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Fishy&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet [&lt;Dog: Rufus&gt;]&gt;</span>\n</code></pre></div>\n<p>If the key is a negative integer, it cannot be used in a filter keyword\ndirectly, but you can still use dictionary unpacking to use it in a query:</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=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"o\">**</span><span class=\"p\">{</span><span class=\"s2\">&quot;data__owner__other_pets__-1__name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Fishy&quot;</span><span class=\"p\">})</span>\n<span class=\"go\">&lt;QuerySet [&lt;Dog: Rufus&gt;]&gt;</span>\n</code></pre></div>\n<aside class=\"admonition-mysql-mariadb-and-oracle-21c admonition\">\n<p class=\"admonition-title\">MySQL, MariaDB, and Oracle &lt; 21c</p>\n<p>Negative JSON array indices are not supported.</p>\n</aside>\n<aside class=\"version-note version-changed\" data-version=\"6.0\">\n<p class=\"version-note-title\">Changed in Django 6.0</p><p>SQLite support for negative JSON array indices was added.</p>\n</aside>\n<aside class=\"version-note version-changed\" data-version=\"6.1\">\n<p class=\"version-note-title\">Changed in Django 6.1</p><p>Oracle 21c+ support for negative JSON array indices was added.</p>\n</aside>\n<p>&lt;jsonfield.contains&gt;Má tá an eochair is mian leat a cheistiú trí chomhraic le hainm cuardaigh eile, bain úsáid as an cuardach: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>lookup: <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>include <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">`</span></a>ina ionad.</p>\n<p>Chun ceist a dhéanamh ar eochracha atá in easnamh, bain úsáid as an lorg <code class=\"docutils literal notranslate\"><span class=\"pre\">isnull</span></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=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Shep&quot;</span><span class=\"p\">,</span> <span class=\"n\">data</span><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;Dog: Shep&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">data__owner__isnull</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet [&lt;Dog: Shep&gt;]&gt;</span>\n</code></pre></div>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Úsáideann na samplaí cuardaigh a thugtar thuas go hinchinneach an cuardach: lookup: exact. Is féidir athfhoirmithe eochair, innéacs agus cosáin a shlánú freisin le: :lookup: icontains, :lookup: endswith, :lookup: iendswith, :lookup: iexact, :lookup: regex, :lookup: iregex, :lookup: istarts , :lookup: `lt, :lookup: lte, :lookup: gt, agus:lookup: gte, chomh maith le:ref: coinníomh-agus-cuardach eochair.</p>\n</aside>\n<section id=\"module-django.db.models.fields.json\">\n<span id=\"kt-expressions\"></span><h4>Nathanna <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>KT () ``<a class=\"heading-anchor\" href=\"#module-django.db.models.fields.json\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.fields.json.KT\">\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\">KT</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">lookup</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.fields.json.KT\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Léiríonn sé luach téacs eochair, innéacs nó claochlú cosáin de:class: ~django.db.models.jsonField. Is féidir leat an nótaí béim dhúbailte a úsáid i <code class=\"docutils literal notranslate\"><span class=\"pre\">lookup</span></code> chun eochair foclóra agus claochruithe innéacs a shlabhra.</p>\n<p>Mar shampla:</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=\"w\"> </span><span class=\"nn\">django.db.models.fields.json</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">KT</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Shep&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{</span>\n<span class=\"gp\">... </span>        <span class=\"s2\">&quot;owner&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Bob&quot;</span><span class=\"p\">},</span>\n<span class=\"gp\">... </span>        <span class=\"s2\">&quot;breed&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"s2\">&quot;collie&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;lhasa apso&quot;</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;Dog: Shep&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">first_breed</span><span class=\"o\">=</span><span class=\"n\">KT</span><span class=\"p\">(</span><span class=\"s2\">&quot;data__breed__1&quot;</span><span class=\"p\">),</span> <span class=\"n\">owner_name</span><span class=\"o\">=</span><span class=\"n\">KT</span><span class=\"p\">(</span><span class=\"s2\">&quot;data__owner__name&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">first_breed__startswith</span><span class=\"o\">=</span><span class=\"s2\">&quot;lhasa&quot;</span><span class=\"p\">,</span> <span class=\"n\">owner_name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Bob&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet [&lt;Dog: Shep&gt;]&gt;</span>\n</code></pre></div>\n</dd></dl>\n\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Mar gheall ar an mbealach a n-oibríonn ceisteanna cosáin eochair, ní ráthaítear go dtáirgfidh: :meth: ~django.db.models.query.queryset.filter tacair uileghabhálacha. Más mian leat rudaí nach bhfuil an cosán acu a chur san áireamh, cuir an cuardach <code class=\"docutils literal notranslate\"><span class=\"pre\">isnull</span></code> leis.</p>\n</aside>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Warning</p>\n<p>Ós rud é go bhféadfadh aon teaghrán a bheith ina eochair i réad JSON, léirmhínítear aon chuardach seachas iad siúd atá liostaithe thíos mar phríomhchuardach. Ní ardaítear aon earráidí. Bí cúramach thar a bheith cúramach maidir le botúin clóscríobh, agus seiceáil i gcónaí go n-oibríonn do chuid</p>\n</aside>\n<aside class=\"admonition-mariadb-and-oracle-users admonition\">\n<p class=\"admonition-title\">Úsáideoirí MariaDB agus Oracle</p>\n<p>Ag baint úsáid:Meth: ~django.db.models.query.queryset.order_by ar eochair, innéacs nó athraithe cosáin déanfaidh siad na rudaí a shórtáil ag baint úsáide as léiriú teaghrán na luachanna. Tá sé seo toisc nach soláthraíonn MariaDB agus Bunachar Sonraí Oracle feidhm a athraíonn luachanna JSON ina luachanna coibhéiseach SQL.</p>\n</aside>\n<aside class=\"admonition-oracle-users admonition\">\n<p class=\"admonition-title\">Úsáideoirí Oracle</p>\n<p>Ar Bhunachar Sonraí Oracle, ag baint úsáide as <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> mar an luach cuardaigh i an:meth: ~django.db.models.query.queryset.exclude, cuirfear ar ais rudaí nach bhfuil null` acu mar an luach ag an gcosán ar leith, lena n-áirítear rudaí nach bhfuil an cosán acu. Ar chúltaca bunachar sonraí eile, cuirfidh an ceist ar ais rudaí a bhfuil an cosán acu agus nach bhfuil an luach <code class=\"docutils literal notranslate\"><span class=\"pre\">null</span></code>.</p>\n</aside>\n<aside class=\"admonition-postgresql-users admonition\">\n<p class=\"admonition-title\">Úsáideoirí PostgreSQL</p>\n<p>Ar PostgreSQL, mura n-úsáidtear ach eochair nó innéacs amháin, úsáidtear an t-oibreoir SQL <code class=\"docutils literal notranslate\"><span class=\"pre\">-&gt;</span> <span class=\"pre\">``.</span> <span class=\"pre\">Má</span> <span class=\"pre\">úsáidtear</span> <span class=\"pre\">oibreoirí</span> <span class=\"pre\">iolracha</span> <span class=\"pre\">ansin</span> <span class=\"pre\">úsáidtear</span> <span class=\"pre\">an</span> <span class=\"pre\">oibreoir</span> <span class=\"pre\">``#&gt;</span></code>.</p>\n</aside>\n<aside class=\"admonition-sqlite-users admonition\">\n<p class=\"admonition-title\">Úsáideoirí SQLite</p>\n<p>Ar SQLite, léirmhínítear luachanna teaghrán <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;true&quot;</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">bréagai&quot;</span></code>, agus <code class=\"docutils literal notranslate\"><span class=\"pre\">`null&quot;</span></code> luachanna teaghrán i gcónaí mar <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, False`, agus JSON <code class=\"docutils literal notranslate\"><span class=\"pre\">null</span></code> faoi seach.</p>\n</aside>\n</section>\n</section>\n<section id=\"containment-and-key-lookups\">\n<span id=\"id12\"></span><h3>Cuardaigh coimeádta agus príomhfheidhmeanna<a class=\"heading-anchor\" href=\"#containment-and-key-lookups\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<section id=\"contains\">\n<span id=\"std-fieldlookup-jsonfield.contains\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">Coimeád</span></code><a class=\"heading-anchor\" href=\"#contains\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Cuirtear an cuardach: lookup: contains ar <code class=\"docutils literal notranslate\"><span class=\"pre\">JSONfield</span></code>. Is iad na rudaí a thugtar ar ais iad siúd ina bhfuil an <code class=\"docutils literal notranslate\"><span class=\"pre\">dict</span></code> tugtha de phéirí eochairluacha go léir i mbarrleibhéal an réimse. Mar shampla:</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=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Rufus&quot;</span><span class=\"p\">,</span> <span class=\"n\">data</span><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=\"go\">&lt;Dog: Rufus&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Meg&quot;</span><span class=\"p\">,</span> <span class=\"n\">data</span><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;Dog: Meg&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Fred&quot;</span><span class=\"p\">,</span> <span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{})</span>\n<span class=\"go\">&lt;Dog: Fred&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Merry&quot;</span><span class=\"p\">,</span> <span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;breed&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;pekingese&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;tricks&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"s2\">&quot;fetch&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;dance&quot;</span><span class=\"p\">]}</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">data__contains</span><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<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">data__contains</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"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<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">data__contains</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;tricks&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"s2\">&quot;dance&quot;</span><span class=\"p\">]})</span>\n<span class=\"go\">&lt;QuerySet [&lt;Dog: Merry&gt;]&gt;</span>\n</code></pre></div>\n<aside class=\"admonition-oracle-and-sqlite admonition\">\n<p class=\"admonition-title\">Oracle agus SQLite</p>\n<p>Ní thacaítear le <code class=\"docutils literal notranslate\"><span class=\"pre\">contains</span></code> ar Oracle agus SQLite.</p>\n</aside>\n</section>\n<section id=\"contained-by\">\n<span id=\"std-fieldlookup-jsonfield.contained_by\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">coinneáilteo_ag</span></code><a class=\"heading-anchor\" href=\"#contained-by\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Is é seo an inbhéar den chuardach: lookup: conté &lt;jsonfield.contains&gt;- is iad na rudaí a chuirtear ar ais iad na rudaí ina bhfuil na péirí luacha eochair ar an réad ina fho-thacar de na rudaí sa luach a rith. Mar shampla:</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=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Rufus&quot;</span><span class=\"p\">,</span> <span class=\"n\">data</span><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=\"go\">&lt;Dog: Rufus&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Meg&quot;</span><span class=\"p\">,</span> <span class=\"n\">data</span><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;Dog: Meg&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Fred&quot;</span><span class=\"p\">,</span> <span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{})</span>\n<span class=\"go\">&lt;Dog: Fred&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Merry&quot;</span><span class=\"p\">,</span> <span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;breed&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;pekingese&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;tricks&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"s2\">&quot;fetch&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;dance&quot;</span><span class=\"p\">]}</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">data__contained_by</span><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<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">data__contained_by</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"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<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">data__contained_by</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;breed&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;pekingese&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;tricks&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"s2\">&quot;dance&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;fetch&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;hug&quot;</span><span class=\"p\">]}</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet [&lt;Dog: Merry&gt;, &lt;Dog: Fred&gt;]&gt;</span>\n</code></pre></div>\n<aside class=\"admonition-oracle-and-sqlite admonition\">\n<p class=\"admonition-title\">Oracle agus SQLite</p>\n<p>Ní thacaítear le <code class=\"docutils literal notranslate\"><span class=\"pre\">contained_by</span></code> ar Oracle agus SQLite.</p>\n</aside>\n</section>\n<section id=\"has-key\">\n<span id=\"std-fieldlookup-jsonfield.has_key\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">a_eochair</span></code><a class=\"heading-anchor\" href=\"#has-key\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Tugann sé rudaí ar ais i gcás ina bhfuil an eochair thugtar i barr-leibhéal na sonraí. Mar shampla:</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=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Rufus&quot;</span><span class=\"p\">,</span> <span class=\"n\">data</span><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=\"go\">&lt;Dog: Rufus&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Meg&quot;</span><span class=\"p\">,</span> <span class=\"n\">data</span><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;Dog: Meg&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">data__has_key</span><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-keys\">\n<span id=\"std-fieldlookup-jsonfield.has_keys\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">hais_eochair</span></code><a class=\"heading-anchor\" href=\"#has-keys\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Tugann sé rudaí ar ais ina bhfuil na heochracha a thugtar go léir i barr-leibhéal na sonraí. Mar shampla:</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=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Rufus&quot;</span><span class=\"p\">,</span> <span class=\"n\">data</span><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=\"go\">&lt;Dog: Rufus&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Meg&quot;</span><span class=\"p\">,</span> <span class=\"n\">data</span><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;Dog: Meg&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">data__has_keys</span><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=\"has-any-keys\">\n<span id=\"std-fieldlookup-jsonfield.has_any_keys\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">`aon_eochair</span></code><a class=\"heading-anchor\" href=\"#has-any-keys\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Tugann sé rudaí ar ais ina bhfuil aon cheann de na heochracha a thugtar i barr-leibhéal na sonraí. Mar shampla:</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=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Rufus&quot;</span><span class=\"p\">,</span> <span class=\"n\">data</span><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=\"go\">&lt;Dog: Rufus&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Meg&quot;</span><span class=\"p\">,</span> <span class=\"n\">data</span><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;Dog: Meg&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Dog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">data__has_any_keys</span><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>\n</section>\n<section id=\"complex-lookups-with-q-objects\">\n<span id=\"complex-lookups-with-q\"></span><h2>Cuardaigh casta le rudaí <code class=\"docutils literal notranslate\"><span class=\"pre\">Q</span></code><a class=\"heading-anchor\" href=\"#complex-lookups-with-q-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Keyword argument queries -- in <a class=\"reference internal\" href=\"/ga/6.1/ref/models/querysets/#django.db.models.query.QuerySet.filter\" title=\"django.db.models.query.QuerySet.filter\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">filter()</span></code></a>,\netc. -- are &quot;AND&quot;ed together. If you need to execute more complex queries (for\nexample, queries with <code class=\"docutils literal notranslate\"><span class=\"pre\">OR</span></code> statements), you can use <a class=\"reference internal\" href=\"/ga/6.1/ref/models/querysets/#q-objects\"><span class=\"std std-ref\">``Q () ``rudaí</span></a>.</p>\n<p>A <a class=\"reference internal\" href=\"/ga/6.1/ref/models/querysets/#q-objects\"><span class=\"std std-ref\">Q object</span></a> (<code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.Q</span></code>) is an object used to\nencapsulate a collection of keyword arguments. These keyword arguments are\nspecified as in &quot;Field lookups&quot; above.</p>\n<p>Mar shampla, cuimsíonn an réad <code class=\"docutils literal notranslate\"><span class=\"pre\">Q</span></code> seo fiosrúchán <code class=\"docutils literal notranslate\"><span class=\"pre\">LIKE</span></code> amháin:</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.db.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Q</span>\n\n<span class=\"n\">Q</span><span class=\"p\">(</span><span class=\"n\">question__startswith</span><span class=\"o\">=</span><span class=\"s2\">&quot;What&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Is féidir rudaí <code class=\"docutils literal notranslate\"><span class=\"pre\">Q</span></code> a chomhcheangal ag baint úsáide as na hoibreoirí <code class=\"docutils literal notranslate\"><span class=\"pre\">&amp;</span></code>, |`, agus <code class=\"docutils literal notranslate\"><span class=\"pre\">^</span></code>. Nuair a úsáidtear oibreoir ar dhá rud <code class=\"docutils literal notranslate\"><span class=\"pre\">Q</span></code>, tugann sé réad nua <code class=\"docutils literal notranslate\"><span class=\"pre\">Q</span></code>.</p>\n<p>Mar shampla, tugann an ráiteas seo réad <code class=\"docutils literal notranslate\"><span class=\"pre\">Q</span></code> amháin a léiríonn “OR” de dhá cheist <code class=\"docutils literal notranslate\"><span class=\"pre\">``ceiste__startswith&quot;</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">Q</span><span class=\"p\">(</span><span class=\"n\">question__startswith</span><span class=\"o\">=</span><span class=\"s2\">&quot;Who&quot;</span><span class=\"p\">)</span> <span class=\"o\">|</span> <span class=\"n\">Q</span><span class=\"p\">(</span><span class=\"n\">question__startswith</span><span class=\"o\">=</span><span class=\"s2\">&quot;What&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Tá sé seo coibhéiseach leis an gclásal SQL <code class=\"docutils literal notranslate\"><span class=\"pre\">WHERE</span></code> seo a leanas:</p>\n<div class=\"code-block\" data-language=\"sql\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">SQL</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=\"SQL code\"><code><span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"n\">question</span><span class=\"w\"> </span><span class=\"k\">LIKE</span><span class=\"w\"> </span><span class=\"s1\">&#39;Who%&#39;</span><span class=\"w\"> </span><span class=\"k\">OR</span><span class=\"w\"> </span><span class=\"n\">question</span><span class=\"w\"> </span><span class=\"k\">LIKE</span><span class=\"w\"> </span><span class=\"s1\">&#39;What%&#39;</span>\n</code></pre></div>\n<p>Is féidir leat ráitis de chastacht treallach a chumadh trí rudaí <code class=\"docutils literal notranslate\"><span class=\"pre\">Q</span></code> a chomhcheangal leis na hoibreoirí <code class=\"docutils literal notranslate\"><span class=\"pre\">&amp;</span></code>, |`, agus <code class=\"docutils literal notranslate\"><span class=\"pre\">^</span></code> agus grúpáil lúibheach a úsáid. Chomh maith leis sin, is féidir rudaí <code class=\"docutils literal notranslate\"><span class=\"pre\">Q</span></code> a dhiúltú ag baint úsáide as an oibreoir <code class=\"docutils literal notranslate\"><span class=\"pre\">~</span></code>, ag ligean cuardach comhcheangailte a chomhcheanglaíonn gnáthcheistiú agus ceist diúltaithe (<a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>NOT <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>) araon:</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\">Q</span><span class=\"p\">(</span><span class=\"n\">question__startswith</span><span class=\"o\">=</span><span class=\"s2\">&quot;Who&quot;</span><span class=\"p\">)</span> <span class=\"o\">|</span> <span class=\"o\">~</span><span class=\"n\">Q</span><span class=\"p\">(</span><span class=\"n\">pub_date__year</span><span class=\"o\">=</span><span class=\"mi\">2005</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Is féidir gach feidhm chuardaigh a ghlacann argóintí eochairfhocal (e.g.:meth: ~django.db.models.query.queryset.filter, :meth: ~django.db.models.query.queryset.exclude, :meth: ~django.db.models.queryset.get) a rith freisin amháin nó níos mó Rud `Q` mar argóintí seasmhacha (gan ainmnithe). Má sholáthraíonn tú argóintí réad <code class=\"docutils literal notranslate\"><span class=\"pre\">Q</span></code> iolracha d'fheidhm cuardaigh, beidh na hargóintí “agus&quot;ED le chéile. 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\">Poll</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span>\n    <span class=\"n\">Q</span><span class=\"p\">(</span><span class=\"n\">question__startswith</span><span class=\"o\">=</span><span class=\"s2\">&quot;Who&quot;</span><span class=\"p\">),</span>\n    <span class=\"n\">Q</span><span class=\"p\">(</span><span class=\"n\">pub_date</span><span class=\"o\">=</span><span class=\"n\">date</span><span class=\"p\">(</span><span class=\"mi\">2005</span><span class=\"p\">,</span> <span class=\"mi\">5</span><span class=\"p\">,</span> <span class=\"mi\">2</span><span class=\"p\">))</span> <span class=\"o\">|</span> <span class=\"n\">Q</span><span class=\"p\">(</span><span class=\"n\">pub_date</span><span class=\"o\">=</span><span class=\"n\">date</span><span class=\"p\">(</span><span class=\"mi\">2005</span><span class=\"p\">,</span> <span class=\"mi\">5</span><span class=\"p\">,</span> <span class=\"mi\">6</span><span class=\"p\">)),</span>\n<span class=\"p\">)</span>\n</code></pre></div>\n<p>... aistríonn sé go garbh go dtí an SQL:</p>\n<div class=\"code-block\" data-language=\"sql\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">SQL</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=\"SQL code\"><code><span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"o\">*</span><span class=\"w\"> </span><span class=\"k\">from</span><span class=\"w\"> </span><span class=\"n\">polls</span><span class=\"w\"> </span><span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"n\">question</span><span class=\"w\"> </span><span class=\"k\">LIKE</span><span class=\"w\"> </span><span class=\"s1\">&#39;Who%&#39;</span>\n<span class=\"w\">    </span><span class=\"k\">AND</span><span class=\"w\"> </span><span class=\"p\">(</span><span class=\"n\">pub_date</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"s1\">&#39;2005-05-02&#39;</span><span class=\"w\"> </span><span class=\"k\">OR</span><span class=\"w\"> </span><span class=\"n\">pub_date</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"s1\">&#39;2005-05-06&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Is féidir le feidhmeanna cuardaigh úsáid rudaí <code class=\"docutils literal notranslate\"><span class=\"pre\">Q</span></code> agus argóintí eochairfhocal a mheascadh. Tá na hargóintí go léir a chuirtear ar fáil do fheidhm chuardaigh (bíodh argóintí eochairfhocal nó rudaí <code class=\"docutils literal notranslate\"><span class=\"pre\">Q</span></code> iad) “agus” iad le chéile. Mar sin féin, má chuirtear réad <code class=\"docutils literal notranslate\"><span class=\"pre\">Q</span></code> ar fáil, ní mór dó roimh an sainmhíniú ar aon argóintí eochairfhocal. 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\">Poll</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span>\n    <span class=\"n\">Q</span><span class=\"p\">(</span><span class=\"n\">pub_date</span><span class=\"o\">=</span><span class=\"n\">date</span><span class=\"p\">(</span><span class=\"mi\">2005</span><span class=\"p\">,</span> <span class=\"mi\">5</span><span class=\"p\">,</span> <span class=\"mi\">2</span><span class=\"p\">))</span> <span class=\"o\">|</span> <span class=\"n\">Q</span><span class=\"p\">(</span><span class=\"n\">pub_date</span><span class=\"o\">=</span><span class=\"n\">date</span><span class=\"p\">(</span><span class=\"mi\">2005</span><span class=\"p\">,</span> <span class=\"mi\">5</span><span class=\"p\">,</span> <span class=\"mi\">6</span><span class=\"p\">)),</span>\n    <span class=\"n\">question__startswith</span><span class=\"o\">=</span><span class=\"s2\">&quot;Who&quot;</span><span class=\"p\">,</span>\n<span class=\"p\">)</span>\n</code></pre></div>\n<p>... a bheadh ina cheist bailí, coibhéiseach leis an sampla roimhe seo; ach:</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=\"c1\"># INVALID QUERY</span>\n<span class=\"n\">Poll</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span>\n    <span class=\"n\">question__startswith</span><span class=\"o\">=</span><span class=\"s2\">&quot;Who&quot;</span><span class=\"p\">,</span>\n    <span class=\"n\">Q</span><span class=\"p\">(</span><span class=\"n\">pub_date</span><span class=\"o\">=</span><span class=\"n\">date</span><span class=\"p\">(</span><span class=\"mi\">2005</span><span class=\"p\">,</span> <span class=\"mi\">5</span><span class=\"p\">,</span> <span class=\"mi\">2</span><span class=\"p\">))</span> <span class=\"o\">|</span> <span class=\"n\">Q</span><span class=\"p\">(</span><span class=\"n\">pub_date</span><span class=\"o\">=</span><span class=\"n\">date</span><span class=\"p\">(</span><span class=\"mi\">2005</span><span class=\"p\">,</span> <span class=\"mi\">5</span><span class=\"p\">,</span> <span class=\"mi\">6</span><span class=\"p\">)),</span>\n<span class=\"p\">)</span>\n</code></pre></div>\n<p>... ní bheadh bailí.</p>\n<aside class=\"admonition admonition-seealso\">\n<p class=\"admonition-title\">See also</p>\n<p>Taispeánann an: Foinse: OR sampla&lt;tests/or_lookups/tests.py&gt; í cuardaitheach' i dtástálacha aonaid Django roinnt úsáidí féideartha de ``Q`.</p>\n</aside>\n</section>\n<section id=\"comparing-objects\">\n<h2>Déan comparáid a dhéanamh<a class=\"heading-anchor\" href=\"#comparing-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Chun dhá chás samhail a chur i gcomparáid, bain úsáid as an oibreoir comparáide caighdeánach Python, an comhartha cothrom dúbailte: <code class=\"docutils literal notranslate\"><span class=\"pre\">==</span></code> Taobh thiar de na radhairc, déanann comparáid idir príomhluachanna dhá mhúnla.</p>\n<p>Ag baint úsáide as an sampla <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Iontrála` thuas, tá an dá ráiteas seo a leanas coibhéiseach:</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=\"n\">some_entry</span> <span class=\"o\">==</span> <span class=\"n\">other_entry</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">some_entry</span><span class=\"o\">.</span><span class=\"n\">id</span> <span class=\"o\">==</span> <span class=\"n\">other_entry</span><span class=\"o\">.</span><span class=\"n\">id</span>\n</code></pre></div>\n<p>Mura dtugtar “id” ar phríomh-eochair mhúnla, níl aon fhadhb ann. Úsáidfidh comparáidí an príomh-eochair i gcónaí, cibé rud a thugtar air. Mar shampla, má thugtar “ainm” ar phríomhréimse samhail, tá an dá ráiteas seo coibhéiseach:</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=\"n\">some_obj</span> <span class=\"o\">==</span> <span class=\"n\">other_obj</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">some_obj</span><span class=\"o\">.</span><span class=\"n\">name</span> <span class=\"o\">==</span> <span class=\"n\">other_obj</span><span class=\"o\">.</span><span class=\"n\">name</span>\n</code></pre></div>\n</section>\n<section id=\"deleting-objects\">\n<span id=\"topics-db-queries-delete\"></span><h2>Rudaí a scriosadh<a class=\"heading-anchor\" href=\"#deleting-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Ainmnítear an modh scriosta, go háisiúil,: meth: ~django.db.models.model.delete. Scriostann an modh seo an réad láithreach agus filleann sé líon na rudaí a scriosadh agus foclóir le líon na scriosadh in aghaidh an chineál réada. Sampla:</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=\"n\">e</span><span class=\"o\">.</span><span class=\"n\">delete</span><span class=\"p\">()</span>\n<span class=\"go\">(1, {&#39;blog.Entry&#39;: 1})</span>\n</code></pre></div>\n<p>Is féidir leat rudaí a scriosadh ar an mórchóir freisin. Tá a:meth: ~django.db.models.query.queryset: ~django.db.models.queryset.delete modh, a scriosann gach ball den ain:class: ~django.db.models.queryset.</p>\n<p>Mar shampla, scriosann sé seo gach rud <code class=\"docutils literal notranslate\"><span class=\"pre\">Entry</span> <span class=\"pre\">``le</span> <span class=\"pre\">bliain</span> <span class=\"pre\">``pub_date</span></code> de 2005:</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=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">pub_date__year</span><span class=\"o\">=</span><span class=\"mi\">2005</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">delete</span><span class=\"p\">()</span>\n<span class=\"go\">(5, {&#39;webapp.Entry&#39;: 5})</span>\n</code></pre></div>\n<p>Coinnigh i gcuimhne go ndéanfar é seo, nuair is féidir, a fhorghníomhú i SQL amháin, agus mar sin ní gá go nglófar ar na modhanna <code class=\"docutils literal notranslate\"><span class=\"pre\">delete</span> <span class=\"pre\">()</span> <span class=\"pre\">`de</span> <span class=\"pre\">chásanna</span> <span class=\"pre\">réad</span> <span class=\"pre\">aonair</span> <span class=\"pre\">le</span> <span class=\"pre\">linn</span> <span class=\"pre\">an</span> <span class=\"pre\">phróisis.</span> <span class=\"pre\">Má</span> <span class=\"pre\">chuir</span> <span class=\"pre\">tú</span> <span class=\"pre\">modh</span> <span class=\"pre\">saincheaptha</span> <span class=\"pre\">``delete</span> <span class=\"pre\">()</span> <span class=\"pre\">``ar</span> <span class=\"pre\">fáil</span> <span class=\"pre\">ar</span> <span class=\"pre\">rang</span> <span class=\"pre\">samhail</span> <span class=\"pre\">agus</span> <span class=\"pre\">má</span> <span class=\"pre\">theastaíonn</span> <span class=\"pre\">uait</span> <span class=\"pre\">a</span> <span class=\"pre\">chinntiú</span> <span class=\"pre\">go</span> <span class=\"pre\">nglactar</span> <span class=\"pre\">air,</span> <span class=\"pre\">beidh</span> <span class=\"pre\">ort</span> <span class=\"pre\">cásanna</span> <span class=\"pre\">den</span> <span class=\"pre\">tsamhail</span> <span class=\"pre\">sin</span> <span class=\"pre\">a</span> <span class=\"pre\">scriosadh</span> <span class=\"pre\">“de</span> <span class=\"pre\">láimh”</span> <span class=\"pre\">(m.sh.,</span> <span class=\"pre\">trí</span> <span class=\"pre\">athrú</span> <span class=\"pre\">thar</span> <span class=\"pre\">a:class:</span> <span class=\"pre\">`~django.db.Models.query.querySet`</span> <span class=\"pre\">agus</span> <span class=\"pre\">glaoch</span> <span class=\"pre\">ar</span> <span class=\"pre\">`delete</span> <span class=\"pre\">()</span></code> ar gach rud ina n-aonar) seachas an bulk:meth: ~djan:~djan:~djan:~djan:~djan:~djan:~djan:~djan:~djan:~djan:~djan:~djan:~djan:~djan:~djan:~djan:~djan:~djan:~Modh go.db.models.queryset.delete de a:class: ~django.db.models.query.queryset.</p>\n<p>Nuair a scriosann Django réad, de réir réamhshocraithe déanann sé aithris ar iompar an srianta SQL ON DELETE CASCADE` - i bhfocail eile, scriosfar aon rudaí a raibh eochracha eachtracha ag díriú ar an réad atá le scriosadh in éineacht leis. 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\">b</span> <span class=\"o\">=</span> <span class=\"n\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"n\">pk</span><span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">)</span>\n<span class=\"c1\"># This will delete the Blog and all of its Entry objects.</span>\n<span class=\"n\">b</span><span class=\"o\">.</span><span class=\"n\">delete</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>Is féidir an t-iompar cascaire seo inoiriúnaithe tríd an argóint: attr: ~django.db.models.foreignkey.on_delete chuig an argóint: :class: ~django.db.models.foreignKey.</p>\n<p>Tabhair faoi deara gur:meth: ~django.db.models.query.queryset.delete an modh aon:class: ~django.db.models.queryset nach bhfuil nochtaithe ar a:class: ~Django.db.Models.Manager féin. Is meicníocht sábháilteachta é seo chun cosc a chur ort <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>Entry.Objects.delete () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>a iarraidh de thaisme, agus <em>uach</em> na hiontrálacha a scriosadh. Más mian leat* na rudaí go léir a scriosadh, ansin caithfidh tú tacar ceisteanna iomlán a iarraidh go sainráite:</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\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">delete</span><span class=\"p\">()</span>\n</code></pre></div>\n</section>\n<section id=\"copying-model-instances\">\n<span id=\"topics-db-queries-copy\"></span><h2>Cóipeáil cásanna samhail<a class=\"heading-anchor\" href=\"#copying-model-instances\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Cé nach bhfuil aon mhodh ionsuite ann chun cásanna samhail a chóipeáil, is féidir sampla nua a chruthú go héasca le luachanna gach réimse a chóipeáil. &lt;django.db.models.Model._state&gt;Sa chás is simplí, is féidir leat pk` a shocrú go <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> agus:attr: _state.ag cur `le ``True`. Ag baint úsáide as ár sampla blag:</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\">blog</span> <span class=\"o\">=</span> <span class=\"n\">Blog</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;My blog&quot;</span><span class=\"p\">,</span> <span class=\"n\">tagline</span><span class=\"o\">=</span><span class=\"s2\">&quot;Blogging is easy&quot;</span><span class=\"p\">)</span>\n<span class=\"n\">blog</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">()</span>  <span class=\"c1\"># blog.pk == 1</span>\n\n<span class=\"n\">blog</span><span class=\"o\">.</span><span class=\"n\">pk</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>\n<span class=\"n\">blog</span><span class=\"o\">.</span><span class=\"n\">_state</span><span class=\"o\">.</span><span class=\"n\">adding</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>\n<span class=\"n\">blog</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">()</span>  <span class=\"c1\"># blog.pk == 2</span>\n</code></pre></div>\n<p>Éiríonn rudaí níos casta má úsáideann tú oidhreacht. Smaoinigh ar fho-aicme de <code class=\"docutils literal notranslate\"><span class=\"pre\">Blog</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ThemeBlog</span><span class=\"p\">(</span><span class=\"n\">Blog</span><span class=\"p\">):</span>\n    <span class=\"n\">theme</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">200</span><span class=\"p\">)</span>\n\n\n<span class=\"n\">django_blog</span> <span class=\"o\">=</span> <span class=\"n\">ThemeBlog</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Django&quot;</span><span class=\"p\">,</span> <span class=\"n\">tagline</span><span class=\"o\">=</span><span class=\"s2\">&quot;Django is easy&quot;</span><span class=\"p\">,</span> <span class=\"n\">theme</span><span class=\"o\">=</span><span class=\"s2\">&quot;python&quot;</span><span class=\"p\">)</span>\n<span class=\"n\">django_blog</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">()</span>  <span class=\"c1\"># django_blog.pk == 3</span>\n</code></pre></div>\n<p>Mar gheall ar an gcaoi a n-oibríonn oidhreacht, caithfidh tú <code class=\"docutils literal notranslate\"><span class=\"pre\">pk</span></code> agus id` araon a shocrú go <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, agus <code class=\"docutils literal notranslate\"><span class=\"pre\">_state.adding</span></code> go <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">django_blog</span><span class=\"o\">.</span><span class=\"n\">pk</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>\n<span class=\"n\">django_blog</span><span class=\"o\">.</span><span class=\"n\">id</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>\n<span class=\"n\">django_blog</span><span class=\"o\">.</span><span class=\"n\">_state</span><span class=\"o\">.</span><span class=\"n\">adding</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>\n<span class=\"n\">django_blog</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">()</span>  <span class=\"c1\"># django_blog.pk == 4</span>\n</code></pre></div>\n<p>Ní chóipeálann an próiseas seo caidrimh nach bhfuil mar chuid de thábla bunachar sonraí an tsamhail. Mar shampla, tá <code class=\"docutils literal notranslate\"><span class=\"pre\">`ManyTomanyField</span></code> ag <code class=\"docutils literal notranslate\"><span class=\"pre\">Entry</span></code> go <code class=\"docutils literal notranslate\"><span class=\"pre\">Údar</span></code>. Tar éis duit iontráil a dhúbailt, ní mór duit an caidreamh go leor a shocrú don iontráil nua:</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\">entry</span> <span class=\"o\">=</span> <span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()[</span><span class=\"mi\">0</span><span class=\"p\">]</span>  <span class=\"c1\"># some previous entry</span>\n<span class=\"n\">old_authors</span> <span class=\"o\">=</span> <span class=\"n\">entry</span><span class=\"o\">.</span><span class=\"n\">authors</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()</span>\n<span class=\"n\">entry</span><span class=\"o\">.</span><span class=\"n\">pk</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>\n<span class=\"n\">entry</span><span class=\"o\">.</span><span class=\"n\">_state</span><span class=\"o\">.</span><span class=\"n\">adding</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>\n<span class=\"n\">entry</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">()</span>\n<span class=\"n\">entry</span><span class=\"o\">.</span><span class=\"n\">authors</span><span class=\"o\">.</span><span class=\"n\">set</span><span class=\"p\">(</span><span class=\"n\">old_authors</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Maidir le <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>OneToonefield`, ní mór duit an réad gaolmhar a dhúbailt agus é a shannadh do réimse an réada nua chun an srian uathúil duine le duine a shárú. Mar shampla, ag glacadh leis go bhfuil “iontráil” dúbailte cheana féin mar atá thuas:</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\">detail</span> <span class=\"o\">=</span> <span class=\"n\">EntryDetail</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()[</span><span class=\"mi\">0</span><span class=\"p\">]</span>\n<span class=\"n\">detail</span><span class=\"o\">.</span><span class=\"n\">pk</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>\n<span class=\"n\">detail</span><span class=\"o\">.</span><span class=\"n\">_state</span><span class=\"o\">.</span><span class=\"n\">adding</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>\n<span class=\"n\">detail</span><span class=\"o\">.</span><span class=\"n\">entry</span> <span class=\"o\">=</span> <span class=\"n\">entry</span>\n<span class=\"n\">detail</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>Note that it is not possible to copy instances of models with deferred fields\nusing this pattern unless values are assigned to them:</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=\"n\">blog</span> <span class=\"o\">=</span> <span class=\"n\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">defer</span><span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">)[</span><span class=\"mi\">0</span><span class=\"p\">]</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">blog</span><span class=\"o\">.</span><span class=\"n\">pk</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">blog</span><span class=\"o\">.</span><span class=\"n\">_state</span><span class=\"o\">.</span><span class=\"n\">adding</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">blog</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">()</span>\n<span class=\"gt\">Traceback (most recent call last):</span>\n<span class=\"w\">    </span><span class=\"o\">...</span>\n<span class=\"gr\">AttributeError</span>: <span class=\"n\">Cannot retrieve deferred field &#39;name&#39; from an unsaved model.</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">blog</span><span class=\"o\">.</span><span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;Another Blog&quot;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">blog</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">()</span>\n</code></pre></div>\n</section>\n<section id=\"updating-multiple-objects-at-once\">\n<span id=\"topics-db-queries-update\"></span><h2>Nuashonrú iolrrudaí ag an am<a class=\"heading-anchor\" href=\"#updating-multiple-objects-at-once\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Uaireanta ba mhaith leat réimse a shocrú go luach áirithe do na rudaí go léir in a:class: ~django.db.models.query.queryset. Is féidir leat é seo a dhéanamh leis an modh: meth: ~django.db.models.query.queryset.update. 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=\"c1\"># Update all the headlines with pub_date in 2007.</span>\n<span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">pub_date__year</span><span class=\"o\">=</span><span class=\"mi\">2007</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">update</span><span class=\"p\">(</span><span class=\"n\">headline</span><span class=\"o\">=</span><span class=\"s2\">&quot;Everything is the same&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Ní féidir leat ach réimsí neamhghaolmhar agus:class: ~django.db.models.ForeignKey a shocrú ag baint úsáide as an modh seo. Chun réimse neamhghaolmhar a nuashonrú, cuir an luach nua ar fáil mar thairiseach. Chun réimsí: class: ~django.db.models.foreignKey a nuashonrú, socraigh an luach nua mar an samhail nua ar mhaith leat a chur in iúl dó. Mar shampla:</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=\"n\">b</span> <span class=\"o\">=</span> <span class=\"n\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"n\">pk</span><span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">)</span>\n\n<span class=\"go\"># Change every Entry so that it belongs to this Blog.</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">update</span><span class=\"p\">(</span><span class=\"n\">blog</span><span class=\"o\">=</span><span class=\"n\">b</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Cuirtear an modh update () ``i bhfeidhm láithreach agus filleann sé líon na sraitheanna a mheaitseálann an cheist (nach bhféadfadh a bheith comhionann le líon na sraitheanna a nuashonraítear má tá an luach nua ag roinnt sraitheanna cheana féin). Is é an t-aon srian ar an:class: `~django.db.models.query.queryset atá á nuashonrú ná nach féidir leis rochtain a fháil ach tábla bunachar sonraí amháin: príomh-tábla an tsamhail. Is féidir leat scagadh bunaithe ar réimsí gaolmhara, ach ní féidir leat colúin a nuashonrú ach i bpríomh-thábla an tsamhail. Sampla:</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=\"n\">b</span> <span class=\"o\">=</span> <span class=\"n\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"n\">pk</span><span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">)</span>\n\n<span class=\"go\"># Update all the headlines belonging to this Blog.</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">blog</span><span class=\"o\">=</span><span class=\"n\">b</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">update</span><span class=\"p\">(</span><span class=\"n\">headline</span><span class=\"o\">=</span><span class=\"s2\">&quot;Everything is the same&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Bí ar an eolas go ndéantar an modh <code class=\"docutils literal notranslate\"><span class=\"pre\">update</span> <span class=\"pre\">()</span> <span class=\"pre\">``a</span> <span class=\"pre\">thiontú</span> <span class=\"pre\">go</span> <span class=\"pre\">díreach</span> <span class=\"pre\">go</span> <span class=\"pre\">ráiteas</span> <span class=\"pre\">SQL.</span> <span class=\"pre\">Is</span> <span class=\"pre\">mór-oibríocht</span> <span class=\"pre\">í</span> <span class=\"pre\">le</span> <span class=\"pre\">haghaidh</span> <span class=\"pre\">nuashonruithe</span> <span class=\"pre\">díreacha.</span> <span class=\"pre\">Ní</span> <span class=\"pre\">ritheann</span> <span class=\"pre\">sé</span> <span class=\"pre\">modhanna</span> <span class=\"pre\">ar</span> <span class=\"pre\">bit:meth:</span> <span class=\"pre\">`~django.db.models.model.save`</span> <span class=\"pre\">ar</span> <span class=\"pre\">do</span> <span class=\"pre\">mhúnlaí,</span> <span class=\"pre\">nó</span> <span class=\"pre\">astaíonn</span> <span class=\"pre\">sé</span> <span class=\"pre\">na</span> <span class=\"pre\">comharthaí</span> <span class=\"pre\">``pre_save</span></code> nó <code class=\"docutils literal notranslate\"><span class=\"pre\">post_save</span></code> (atá mar thoradh ar ghlao:meth: ~Django.db.Models.Model.save), nó onóir dó:attr: ~django.db.db.Rogha réimse models.datefield.auto_now. Más mian leat gach mír a shábháil in a:class: ~django.db.models.query.queryset agus a chinntiú go ndéantar an modh:meth: ~django.db.models.model.save ar gach cás, ní gá duit aon fheidhm speisialta chun é sin a láimhseáil. Lúb orthu agus glaoigh ar: meth: ~django.db.models.model.save:</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=\"k\">for</span> <span class=\"n\">item</span> <span class=\"ow\">in</span> <span class=\"n\">my_queryset</span><span class=\"p\">:</span>\n    <span class=\"n\">item</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>Calls to update can also use <a class=\"reference internal\" href=\"/ga/6.1/ref/models/expressions/#f-expressions\"><span class=\"std std-ref\">Nathanna ``F () ``</span></a> to update one field based on\nthe value of another field in the model. This is especially useful for\nincrementing counters based upon their current value. For example, to increment\nthe pingback count for every entry in the blog:</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=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">update</span><span class=\"p\">(</span><span class=\"n\">number_of_pingbacks</span><span class=\"o\">=</span><span class=\"n\">F</span><span class=\"p\">(</span><span class=\"s2\">&quot;number_of_pingbacks&quot;</span><span class=\"p\">)</span> <span class=\"o\">+</span> <span class=\"mi\">1</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Mar sin féin, murab ionann agus rudaí F () ``i gclásail scagaire agus eisiamh, ní féidir leat comhpháirteanna a thabhairt isteach nuair a úsáideann tú rudaí ``F ()` i nuashonrú - ní féidir leat tagairt a dhéanamh ach réimsí áitiúla don tsamhail atá á nuashonrú. Má dhéanann tú iarracht teagmháil a thabhairt isteach le réad <code class=\"docutils literal notranslate\"><span class=\"pre\">F</span> <span class=\"pre\">()</span> <span class=\"pre\">``,</span> <span class=\"pre\">ardófar</span> <span class=\"pre\">``Fielderror</span></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=\"go\"># This will raise a FieldError</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">update</span><span class=\"p\">(</span><span class=\"n\">headline</span><span class=\"o\">=</span><span class=\"n\">F</span><span class=\"p\">(</span><span class=\"s2\">&quot;blog__name&quot;</span><span class=\"p\">))</span>\n</code></pre></div>\n</section>\n<section id=\"related-objects\">\n<span id=\"topics-db-queries-related\"></span><h2>Rudaí gaolmhara<a class=\"heading-anchor\" href=\"#related-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>When you define a relationship in a model (with\n<a class=\"reference internal\" href=\"/ga/6.1/ref/models/fields/#django.db.models.ForeignKey\" title=\"django.db.models.ForeignKey\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code></a>,\n<a class=\"reference internal\" href=\"/ga/6.1/ref/models/fields/#django.db.models.OneToOneField\" title=\"django.db.models.OneToOneField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">OneToOneField</span></code></a>, or\n<a class=\"reference internal\" href=\"/ga/6.1/ref/models/fields/#django.db.models.ManyToManyField\" title=\"django.db.models.ManyToManyField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code></a>), instances of the model class gain\naccessor attributes for the related object(s).</p>\n<p>Using the models at the top of this page, for example, an <code class=\"docutils literal notranslate\"><span class=\"pre\">Entry</span></code> object\n<code class=\"docutils literal notranslate\"><span class=\"pre\">e</span></code> has its associated <code class=\"docutils literal notranslate\"><span class=\"pre\">Blog</span></code> object accessible in its <code class=\"docutils literal notranslate\"><span class=\"pre\">blog</span></code> attribute:\n<code class=\"docutils literal notranslate\"><span class=\"pre\">e.blog</span></code>.</p>\n<p>&lt;python:howto/descriptor&gt;( Taobh thiar de na radhairc, cuireann Python: Doc: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>tuairiscí 'i bhfeidhm an fheidhmiúlacht seo. Níor chóir go bhfuil sé seo tábhachtach duit i ndáiríre, ach cuirimid in iúl é anseo do dhaoine aisteach.)</p>\n<p>Django also creates API accessors for the &quot;other&quot; side of the relationship --\nthe link from the related model to the model that defines the relationship.\nFor example, a <code class=\"docutils literal notranslate\"><span class=\"pre\">Blog</span></code> object <code class=\"docutils literal notranslate\"><span class=\"pre\">b</span></code> has a manager that returns all related\n<code class=\"docutils literal notranslate\"><span class=\"pre\">Entry</span></code> objects in the <code class=\"docutils literal notranslate\"><span class=\"pre\">entry_set</span></code> attribute: <code class=\"docutils literal notranslate\"><span class=\"pre\">b.entry_set.all()</span></code>.</p>\n<p>These accessors may be prefetched by the <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code> methods\n<a class=\"reference internal\" href=\"/ga/6.1/ref/models/querysets/#django.db.models.query.QuerySet.select_related\" title=\"django.db.models.query.QuerySet.select_related\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">select_related()</span></code></a> or\n<a class=\"reference internal\" href=\"/ga/6.1/ref/models/querysets/#django.db.models.query.QuerySet.prefetch_related\" title=\"django.db.models.query.QuerySet.prefetch_related\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">prefetch_related()</span></code></a>. If not prefetched,\naccess will trigger an on-demand fetch through the model's\n<a class=\"reference internal\" href=\"/ga/6.1/topics/db/fetch-modes/\"><span class=\"doc\">fetch mode</span></a>.</p>\n<p>Úsáideann gach sampla sa chuid seo na samhlacha samplacha <code class=\"docutils literal notranslate\"><span class=\"pre\">Blog</span></code>, Údar` agus <code class=\"docutils literal notranslate\"><span class=\"pre\">Iontrála</span></code> atá sainmhínithe ag barr an leathanaigh seo.</p>\n<section id=\"one-to-many-relationships\">\n<h3>Caidrimh duine le go leor<a class=\"heading-anchor\" href=\"#one-to-many-relationships\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<section id=\"forward\">\n<h4>Ar aghaidh<a class=\"heading-anchor\" href=\"#forward\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Má tá a: class: ~django.db.models.foreignKey ag samhail, beidh rochtain ag cásanna den tsamhail sin ar an réad gaolmhar (eachtrach) trí thréith den tsamhail.</p>\n<p>Sampla:</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=\"n\">e</span> <span class=\"o\">=</span> <span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"mi\">2</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">e</span><span class=\"o\">.</span><span class=\"n\">blog</span>  <span class=\"c1\"># Returns the related Blog object.</span>\n</code></pre></div>\n<p>Is féidir leat a fháil agus a shocrú trí thréith eochair eachtrach. Mar a d'fhéadfá a bheith ag súil leis, ní shábháiltear athruithe ar an eochair eachtrach sa bhunachar sonraí go dtí go nglaonn tú ar: meth: ~django.db.models.model.save. Sampla:</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=\"n\">e</span> <span class=\"o\">=</span> <span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"mi\">2</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">e</span><span class=\"o\">.</span><span class=\"n\">blog</span> <span class=\"o\">=</span> <span class=\"n\">some_blog</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">e</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>Má tá a: class: ~django.db.models.foreignKey sraith <code class=\"docutils literal notranslate\"><span class=\"pre\">Null=True</span></code> réimse (ie, ceadaíonn sé luachanna <code class=\"docutils literal notranslate\"><span class=\"pre\">NULL</span></code>), is féidir leat <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> a shannadh chun an gaol a bhaint. Sampla:</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=\"n\">e</span> <span class=\"o\">=</span> <span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"mi\">2</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">e</span><span class=\"o\">.</span><span class=\"n\">blog</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">e</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">()</span>  <span class=\"c1\"># &quot;UPDATE blog_entry SET blog_id = NULL ...;&quot;</span>\n</code></pre></div>\n<p>Déantar rochtain ar aghaidh ar chaidrimh duine le go leor a stóráil an chéad uair a rochtaítear ar an réad gaolmhar. Déantar rochtainí ina dhiaidh sin ar an eochair eachtrach ar an gcás réad céanna a stóráil. Sampla:</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=\"n\">e</span> <span class=\"o\">=</span> <span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"mi\">2</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">e</span><span class=\"o\">.</span><span class=\"n\">blog</span><span class=\"p\">)</span>  <span class=\"c1\"># Hits the database to retrieve the associated Blog.</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">e</span><span class=\"o\">.</span><span class=\"n\">blog</span><span class=\"p\">)</span>  <span class=\"c1\"># Doesn&#39;t hit the database; uses cached version.</span>\n</code></pre></div>\n<p>Tabhair faoi deara go ndéanann an modh:meth: <code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">select_related</span></code> ~django.db.models.query.queryset taisce gach caidreamh duine le go leor roimh am go réamh-athshlánach. Sampla:</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=\"n\">e</span> <span class=\"o\">=</span> <span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">select_related</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"mi\">2</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">e</span><span class=\"o\">.</span><span class=\"n\">blog</span><span class=\"p\">)</span>  <span class=\"c1\"># Doesn&#39;t hit the database; uses cached version.</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">e</span><span class=\"o\">.</span><span class=\"n\">blog</span><span class=\"p\">)</span>  <span class=\"c1\"># Doesn&#39;t hit the database; uses cached version.</span>\n</code></pre></div>\n</section>\n<section id=\"following-relationships-backward\">\n<span id=\"backwards-related-objects\"></span><h4>Ag leanúint caidrimh “siar”<a class=\"heading-anchor\" href=\"#following-relationships-backward\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>If a model has a <a class=\"reference internal\" href=\"/ga/6.1/ref/models/fields/#django.db.models.ForeignKey\" title=\"django.db.models.ForeignKey\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code></a>, instances of the\nforeign-key model will have access to a <a class=\"reference internal\" href=\"/ga/6.1/topics/db/managers/#django.db.models.Manager\" title=\"django.db.models.Manager\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Manager</span></code></a> that\nreturns all instances of the first model. By default, this\n<a class=\"reference internal\" href=\"/ga/6.1/topics/db/managers/#django.db.models.Manager\" title=\"django.db.models.Manager\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Manager</span></code></a> is named <code class=\"docutils literal notranslate\"><span class=\"pre\">FOO_set</span></code>, where <code class=\"docutils literal notranslate\"><span class=\"pre\">FOO</span></code> is the\nsource model name, lowercased. This <a class=\"reference internal\" href=\"/ga/6.1/topics/db/managers/#django.db.models.Manager\" title=\"django.db.models.Manager\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Manager</span></code></a> returns\n<code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code> instances, which can be filtered and manipulated as described in\nthe &quot;Retrieving objects&quot; section above.</p>\n<p>Sampla:</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=\"n\">b</span> <span class=\"o\">=</span> <span class=\"n\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">b</span><span class=\"o\">.</span><span class=\"n\">entry_set</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()</span>  <span class=\"c1\"># Returns all Entry objects related to Blog.</span>\n\n<span class=\"go\"># b.entry_set is a Manager that returns QuerySets.</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">b</span><span class=\"o\">.</span><span class=\"n\">entry_set</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">headline__contains</span><span class=\"o\">=</span><span class=\"s2\">&quot;Lennon&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">b</span><span class=\"o\">.</span><span class=\"n\">entry_set</span><span class=\"o\">.</span><span class=\"n\">count</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>Is féidir leat an t-ainm foo_set` a shárú tríd an sainmhíniú:attr: ~Django.db.Models.ForeignKey.Related_Name a shocrú sa sainmhíniú: class: ~Django.db.Models.ForeignKey. Mar shampla, má athraíodh an tsamhail <code class=\"docutils literal notranslate\"><span class=\"pre\">Entry</span> <span class=\"pre\">``go</span> <span class=\"pre\">`blog</span> <span class=\"pre\">=</span> <span class=\"pre\">ForeignKey</span> <span class=\"pre\">(Blog,</span> <span class=\"pre\">on_delete=Models.Cascade,</span> <span class=\"pre\">related_name='entries')</span></code>, bheadh cuma seo ar an gcód sampla thuas:</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=\"n\">b</span> <span class=\"o\">=</span> <span class=\"n\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">b</span><span class=\"o\">.</span><span class=\"n\">entries</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()</span>  <span class=\"c1\"># Returns all Entry objects related to Blog.</span>\n\n<span class=\"go\"># b.entries is a Manager that returns ``QuerySet`` instances.</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">b</span><span class=\"o\">.</span><span class=\"n\">entries</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">headline__contains</span><span class=\"o\">=</span><span class=\"s2\">&quot;Lennon&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">b</span><span class=\"o\">.</span><span class=\"n\">entries</span><span class=\"o\">.</span><span class=\"n\">count</span><span class=\"p\">()</span>\n</code></pre></div>\n</section>\n<section id=\"using-a-custom-reverse-manager\">\n<span id=\"using-custom-reverse-manager\"></span><h4>Bainisteoir droim saincheaptha a úsáid<a class=\"heading-anchor\" href=\"#using-a-custom-reverse-manager\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>&lt;manager-names&gt;De réir réamhshocraithe an: class: ~django.db.Models.Fields.Related.RelatedManager a úsáidtear le haghaidh caidrimh droim ina fho-aicme den :ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>bainisteoir réamhshocraithe <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>don tsamhail sin. Más mian leat bainisteoir difriúil a shonrú le haghaidh ceist ar leith is féidir leat an comhréir seo a leanas a úsáid:</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.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Entry</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=\"c1\"># ...</span>\n    <span class=\"n\">objects</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Manager</span><span class=\"p\">()</span>  <span class=\"c1\"># Default Manager</span>\n    <span class=\"n\">entries</span> <span class=\"o\">=</span> <span class=\"n\">EntryManager</span><span class=\"p\">()</span>  <span class=\"c1\"># Custom Manager</span>\n\n\n<span class=\"n\">b</span> <span class=\"o\">=</span> <span class=\"n\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">)</span>\n<span class=\"n\">b</span><span class=\"o\">.</span><span class=\"n\">entry_set</span><span class=\"p\">(</span><span class=\"n\">manager</span><span class=\"o\">=</span><span class=\"s2\">&quot;entries&quot;</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>Má rinne <code class=\"docutils literal notranslate\"><span class=\"pre\">EntryManager</span></code> scagadh réamhshocraithe ina mhodh <code class=\"docutils literal notranslate\"><span class=\"pre\">get_queryset</span> <span class=\"pre\">()</span> <span class=\"pre\">``,</span> <span class=\"pre\">bheadh</span> <span class=\"pre\">feidhm</span> <span class=\"pre\">ag</span> <span class=\"pre\">an</span> <span class=\"pre\">scagadh</span> <span class=\"pre\">sin</span> <span class=\"pre\">leis</span> <span class=\"pre\">an</span> <span class=\"pre\">nglao</span> <span class=\"pre\">``all</span> <span class=\"pre\">()</span></code>.</p>\n<p>Cuireann bainisteoir droim saincheaptha a shonrú ar chumas tú a mhodhanna saincheaptha a ghlaoch freisin:</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\">b</span><span class=\"o\">.</span><span class=\"n\">entry_set</span><span class=\"p\">(</span><span class=\"n\">manager</span><span class=\"o\">=</span><span class=\"s2\">&quot;entries&quot;</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">is_published</span><span class=\"p\">()</span>\n</code></pre></div>\n<aside class=\"admonition-interaction-with-prefetching admonition\">\n<p class=\"admonition-title\">Idirghníomhaíocht le réamhghabháil</p>\n<p>Agus tú ag glaoch: meth: ~django.db.models.query.queryset.prefetch_related le gaol droim, úsáidfear an bainisteoir réamhshocraithe. &lt;django.db.models.Prefetch&gt;Más mian leat rudaí gaolmhara a réamh-fháil ag baint úsáide as bainisteoir droim saincheaptha, bain úsáid as: class: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>Prefetch () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>. 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.db.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Prefetch</span>\n\n<span class=\"n\">prefetch_manager</span> <span class=\"o\">=</span> <span class=\"n\">Prefetch</span><span class=\"p\">(</span><span class=\"s2\">&quot;entry_set&quot;</span><span class=\"p\">,</span> <span class=\"n\">queryset</span><span class=\"o\">=</span><span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">entries</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">())</span>\n<span class=\"n\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">prefetch_related</span><span class=\"p\">(</span><span class=\"n\">prefetch_manager</span><span class=\"p\">)</span>\n</code></pre></div>\n</aside>\n</section>\n<section id=\"additional-methods-to-handle-related-objects\">\n<h4>Modhanna breise chun rudaí gaolmhara a láim<a class=\"heading-anchor\" href=\"#additional-methods-to-handle-related-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Chomh maith leis na modhanna: :class: ~django.db.models.query.querySet atá sainmhínithe i “Aisghabháil rudaí” thuas, tá modhanna breise ag an:class: ~django.db.models.manager chun an tacar rudaí gaolmhara a láimhseáil. Tá achoimre ar gach ceann thíos, agus is féidir sonraí iomlána a fháil in:doc: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>tagairt rudaí gaolmhara '&lt;/ref/models/relations&gt;.</p>\n<dl class=\"simple\">\n<dt><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>add (obj1, obj2, ... ) ``</dt><dd><p>Cuireann sé na rudaí samhail sonraithe leis an tacar réad gaolmhar.</p>\n</dd>\n<dt><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>cruthaigh (<a href=\"#id3\"><span class=\"problematic\" id=\"id4\">**</span></a>kwargs) ``</dt><dd><p>Cruthaíonn sé réad nua, sábhálann sé agus cuireann sé sa tacar réad gaolmhar é. Tugann sé an réad nua-chruthaithe ar ais.</p>\n</dd>\n<dt><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>bhaint (obj1, obj2, ... ) ``</dt><dd><p>Baineann na rudaí samhail sonraithe as an tacar réad gaolmhar.</p>\n</dd>\n<dt><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>soiléir () ``</dt><dd><p>Baineann gach rud as an tacar réad gaolmhar.</p>\n</dd>\n<dt><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>set (objs) ``</dt><dd><p>Cuir an tacar rudaí gaolmhara in ionad.</p>\n</dd>\n</dl>\n<p>Chun baill tacar gaolmhar a shannadh, bain úsáid as an modh <code class=\"docutils literal notranslate\"><span class=\"pre\">set</span> <span class=\"pre\">()</span> <span class=\"pre\">``le</span> <span class=\"pre\">cásanna</span> <span class=\"pre\">réad</span> <span class=\"pre\">inathraithe.</span> <span class=\"pre\">Mar</span> <span class=\"pre\">shampla,</span> <span class=\"pre\">más</span> <span class=\"pre\">cásanna</span> <span class=\"pre\">```Iontrála</span></code> iad e1` agus <code class=\"docutils literal notranslate\"><span class=\"pre\">e2</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">b</span> <span class=\"o\">=</span> <span class=\"n\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">)</span>\n<span class=\"n\">b</span><span class=\"o\">.</span><span class=\"n\">entry_set</span><span class=\"o\">.</span><span class=\"n\">set</span><span class=\"p\">([</span><span class=\"n\">e1</span><span class=\"p\">,</span> <span class=\"n\">e2</span><span class=\"p\">])</span>\n</code></pre></div>\n<p>Má tá an modh <code class=\"docutils literal notranslate\"><span class=\"pre\">clear</span> <span class=\"pre\">()</span> <span class=\"pre\">``ar</span> <span class=\"pre\">fáil,</span> <span class=\"pre\">bainfear</span> <span class=\"pre\">aon</span> <span class=\"pre\">rudaí</span> <span class=\"pre\">atá</span> <span class=\"pre\">ann</span> <span class=\"pre\">cheana</span> <span class=\"pre\">ón</span> <span class=\"pre\">`entry_set</span></code> sula gcuirfear gach rud san athraitheach (sa chás seo, liosta) leis an tacar. Má tá an modh <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>clear () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a><em>níl</em> ar fáil, cuirfear gach rud san athraitheach leis gan aon eilimintí atá ann cheana a bhaint.</p>\n<p>Tá éifeacht láithreach ag gach oibríocht “droim” a thuairiscítear sa chuid seo ar an mbunachar sonraí. Sábháiltear gach breise, cruthú agus scriosadh láithreach agus go huathoibríoch sa bhunachar sonraí</p>\n</section>\n</section>\n<section id=\"many-to-many-relationships\">\n<span id=\"m2m-reverse-relationships\"></span><h3>Caidrimh go leor<a class=\"heading-anchor\" href=\"#many-to-many-relationships\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Faigheann an dá fhoirceann de chaidreamh go leor rochtain uathoibríoch API ar an gceann eile. Oibríonn an API cosúil le caidreamh duine le go leor “ar chúl”, thuas.</p>\n<p>Tá difríocht amháin san ainmniú tréithe: Úsáideann an tsamhail a shainmhíníonn an:class: ~django.db.models.manyToManyField ainm tréithe an réimse sin féin, ach úsáideann an tsamhail “droim” ainm samhail íseal an tsamhail bhunaidh, móide <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>'_set'` (díreach cosúil le caidrimh aon-go leor).</p>\n<p>Déanann sampla é seo níos éasca a thuiscint:</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\">e</span> <span class=\"o\">=</span> <span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"mi\">3</span><span class=\"p\">)</span>\n<span class=\"n\">e</span><span class=\"o\">.</span><span class=\"n\">authors</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()</span>  <span class=\"c1\"># Returns all Author objects for this Entry.</span>\n<span class=\"n\">e</span><span class=\"o\">.</span><span class=\"n\">authors</span><span class=\"o\">.</span><span class=\"n\">count</span><span class=\"p\">()</span>\n<span class=\"n\">e</span><span class=\"o\">.</span><span class=\"n\">authors</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">name__contains</span><span class=\"o\">=</span><span class=\"s2\">&quot;John&quot;</span><span class=\"p\">)</span>\n\n<span class=\"n\">a</span> <span class=\"o\">=</span> <span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"mi\">5</span><span class=\"p\">)</span>\n<span class=\"n\">a</span><span class=\"o\">.</span><span class=\"n\">entry_set</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()</span>  <span class=\"c1\"># Returns all Entry objects for this Author.</span>\n</code></pre></div>\n<p>Cosúil le: Class: ~Django.db.Models.ForeignKey, :class: ~django.db.models.manyToManyField is féidir le sonraithe:attr: ~django.db.models.manyToManyField.Related_Nam. Sa sampla thuas, má shonraíodh an:class: ~django.db.models.manyToManyField i Entry` <code class=\"docutils literal notranslate\"><span class=\"pre\">related_name='entries'`,</span> <span class=\"pre\">ansin</span> <span class=\"pre\">bheadh</span> <span class=\"pre\">tréith</span> <span class=\"pre\">``entries</span></code> ag gach <code class=\"docutils literal notranslate\"><span class=\"pre\">Author</span></code> tréith <code class=\"docutils literal notranslate\"><span class=\"pre\">entries</span></code> in ionad entry_set`.</p>\n<p>Difríocht eile ó chaidrimh duine le go leor ná go nglacann na modhanna <code class=\"docutils literal notranslate\"><span class=\"pre\">add</span> <span class=\"pre\">()</span> <span class=\"pre\">``,</span> <span class=\"pre\">`set</span> <span class=\"pre\">()</span></code>, agus <code class=\"docutils literal notranslate\"><span class=\"pre\">remove</span> <span class=\"pre\">()</span> <span class=\"pre\">``ar</span> <span class=\"pre\">chaidrimh</span> <span class=\"pre\">go</span> <span class=\"pre\">leor</span> <span class=\"pre\">príomhluachanna,</span> <span class=\"pre\">i</span> <span class=\"pre\">dteannta</span> <span class=\"pre\">le</span> <span class=\"pre\">cásanna</span> <span class=\"pre\">samhail.</span> <span class=\"pre\">Mar</span> <span class=\"pre\">shampla,</span> <span class=\"pre\">más</span> <span class=\"pre\">cásanna</span> <span class=\"pre\">``Entry</span></code> iad <code class=\"docutils literal notranslate\"><span class=\"pre\">e1</span></code> agus <code class=\"docutils literal notranslate\"><span class=\"pre\">e2</span></code>, ansin oibríonn na glaonna <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>set () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>seo go comhionann:</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\">a</span> <span class=\"o\">=</span> <span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"mi\">5</span><span class=\"p\">)</span>\n<span class=\"n\">a</span><span class=\"o\">.</span><span class=\"n\">entry_set</span><span class=\"o\">.</span><span class=\"n\">set</span><span class=\"p\">([</span><span class=\"n\">e1</span><span class=\"p\">,</span> <span class=\"n\">e2</span><span class=\"p\">])</span>\n<span class=\"n\">a</span><span class=\"o\">.</span><span class=\"n\">entry_set</span><span class=\"o\">.</span><span class=\"n\">set</span><span class=\"p\">([</span><span class=\"n\">e1</span><span class=\"o\">.</span><span class=\"n\">pk</span><span class=\"p\">,</span> <span class=\"n\">e2</span><span class=\"o\">.</span><span class=\"n\">pk</span><span class=\"p\">])</span>\n</code></pre></div>\n<section id=\"filtering-on-many-to-many-relationships\">\n<h4>Filtering on many-to-many relationships<a class=\"heading-anchor\" href=\"#filtering-on-many-to-many-relationships\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>When calling <code class=\"docutils literal notranslate\"><span class=\"pre\">filter()</span></code> on a many-to-many relationship, be aware that the\njoin between <code class=\"docutils literal notranslate\"><span class=\"pre\">Entry</span></code> and the intermediary model to <code class=\"docutils literal notranslate\"><span class=\"pre\">Author</span></code> is performed\nonly once, resulting in a restrictive, or &quot;sticky&quot;, filter. Consider the\nfollowing example:</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=\"w\"> </span><span class=\"nn\">datetime</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">date</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">batucada</span> <span class=\"o\">=</span> <span class=\"n\">Blog</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Batucada Blog&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">e</span> <span class=\"o\">=</span> <span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">blog</span><span class=\"o\">=</span><span class=\"n\">batucada</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">headline</span><span class=\"o\">=</span><span class=\"s2\">&quot;Supporting social movements with drums&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">pub_date</span><span class=\"o\">=</span><span class=\"n\">date</span><span class=\"p\">(</span><span class=\"mi\">2019</span><span class=\"p\">,</span> <span class=\"mi\">6</span><span class=\"p\">,</span> <span class=\"mi\">14</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">gloria</span> <span class=\"o\">=</span> <span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Gloria&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">anna</span> <span class=\"o\">=</span> <span class=\"n\">Author</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Anna&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">e</span><span class=\"o\">.</span><span class=\"n\">authors</span><span class=\"o\">.</span><span class=\"n\">add</span><span class=\"p\">(</span><span class=\"n\">gloria</span><span class=\"p\">,</span> <span class=\"n\">anna</span><span class=\"p\">)</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">anna</span><span class=\"o\">.</span><span class=\"n\">entry_set</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">authors__name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Gloria&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet []&gt;</span>\n</code></pre></div>\n<p>This filtered query is looking for blog entries that are co-authored by\n<code class=\"docutils literal notranslate\"><span class=\"pre\">anna</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">gloria</span></code>. You would expect it to return the entry <code class=\"docutils literal notranslate\"><span class=\"pre\">e</span></code>.\nHowever, the filter condition, which traverses the many-to-many\nrelationship between <code class=\"docutils literal notranslate\"><span class=\"pre\">Entry</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">Author</span></code>, yields an empty\n<code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code>.</p>\n<p>Since the join between <code class=\"docutils literal notranslate\"><span class=\"pre\">Entry</span></code> and the intermediary model to <code class=\"docutils literal notranslate\"><span class=\"pre\">Author</span></code>\nhappens only once, no single object of the joined models - i.e., a relation\nbetween one author and one entry - can fulfill the query condition (entries\nthat are co-authored by <code class=\"docutils literal notranslate\"><span class=\"pre\">anna</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">gloria</span></code>). You can circumvent this\nbehavior by chaining two consecutive <code class=\"docutils literal notranslate\"><span class=\"pre\">filter()</span></code> calls, resulting in two\nseparate joins and thus a more permissive filter:</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=\"n\">anna</span><span class=\"o\">.</span><span class=\"n\">entry_set</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">authors__name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Gloria&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet [&lt;Entry: Supporting social movements with drums&gt;]&gt;</span>\n</code></pre></div>\n<aside class=\"admonition-exclude-is-also-sticky admonition\">\n<p class=\"admonition-title\">exclude() is also sticky</p>\n<p>Please note that for this example,\n<a class=\"reference internal\" href=\"/ga/6.1/ref/models/querysets/#django.db.models.query.QuerySet.exclude\" title=\"django.db.models.query.QuerySet.exclude\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">exclude()</span></code></a> behaves similarly\nto <a class=\"reference internal\" href=\"/ga/6.1/ref/models/querysets/#django.db.models.query.QuerySet.filter\" title=\"django.db.models.query.QuerySet.filter\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">filter()</span></code></a> despite being\nimplemented differently. When traversing the many-to-many relationship,\nit does not exclude the entry <code class=\"docutils literal notranslate\"><span class=\"pre\">e</span></code> despite being co-authored by Gloria:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">anna</span><span class=\"o\">.</span><span class=\"n\">entry_set</span><span class=\"o\">.</span><span class=\"n\">exclude</span><span class=\"p\">(</span><span class=\"n\">authors__name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Gloria&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet [&lt;Entry: Supporting social movements with drums&gt;]&gt;</span>\n</code></pre></div>\n<p>When chaining a second <code class=\"docutils literal notranslate\"><span class=\"pre\">exclude()</span></code> call, an empty <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code> is\nreturned, as expected:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">anna</span><span class=\"o\">.</span><span class=\"n\">entry_set</span><span class=\"o\">.</span><span class=\"n\">exclude</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">exclude</span><span class=\"p\">(</span><span class=\"n\">authors__name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Gloria&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet []&gt;</span>\n</code></pre></div>\n<p>However, in other cases, <a class=\"reference internal\" href=\"/ga/6.1/ref/models/querysets/#django.db.models.query.QuerySet.exclude\" title=\"django.db.models.query.QuerySet.exclude\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">exclude()</span></code></a>\nbehaves differently from <a class=\"reference internal\" href=\"/ga/6.1/ref/models/querysets/#django.db.models.query.QuerySet.filter\" title=\"django.db.models.query.QuerySet.filter\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">filter()</span></code></a>.\nSee the <a class=\"reference internal\" href=\"#exclude-implementation\"><span class=\"std std-ref\">note</span></a> in the &quot;Spanning multi-valued\nrelationships&quot; section above.</p>\n</aside>\n</section>\n</section>\n<section id=\"one-to-one-relationships\">\n<h3>Caidrimh duine le duine<a class=\"heading-anchor\" href=\"#one-to-one-relationships\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Tá caidrimh duine le duine an-chosúil le caidrimh go leor. Má shainmhíníonn tú a:class: ~django.db.models.onetoonefield ar do mhúnla, beidh rochtain ag cásanna den tsamhail sin ar an réad gaolmhar trí thréith den tsamhail.</p>\n<p>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=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">EntryDetail</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\">entry</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">OneToOneField</span><span class=\"p\">(</span><span class=\"n\">Entry</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\">details</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">TextField</span><span class=\"p\">()</span>\n\n\n<span class=\"n\">ed</span> <span class=\"o\">=</span> <span class=\"n\">EntryDetail</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"mi\">2</span><span class=\"p\">)</span>\n<span class=\"n\">ed</span><span class=\"o\">.</span><span class=\"n\">entry</span>  <span class=\"c1\"># Returns the related Entry object.</span>\n</code></pre></div>\n<p>Tagann an difríocht i gceisteanna “droim”. Tá rochtain ag an tsamhail ghaolmhar i gcaidreamh duine le duine freisin ar réad a:class: ~django.db.Models.Manager, ach is ionann: class: ~django.db.Models.Manager réad amháin, seachas bailiúchán rudaí:</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\">e</span> <span class=\"o\">=</span> <span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"mi\">2</span><span class=\"p\">)</span>\n<span class=\"n\">e</span><span class=\"o\">.</span><span class=\"n\">entrydetail</span>  <span class=\"c1\"># returns the related EntryDetail object</span>\n</code></pre></div>\n<p>Mura sannadh aon réad don chaidreamh seo, ardóidh Django eisceacht DoesNotExist.</p>\n<p>Is féidir cásanna a shannadh don chaidreamh droim ar an mbealach céanna agus a shannófá an réamhchaidreamh:</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\">e</span><span class=\"o\">.</span><span class=\"n\">entrydetail</span> <span class=\"o\">=</span> <span class=\"n\">ed</span>\n</code></pre></div>\n</section>\n<section id=\"how-are-the-backward-relationships-possible\">\n<h3>Conas is féidir na caidrimh chúl indéanta?<a class=\"heading-anchor\" href=\"#how-are-the-backward-relationships-possible\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Éilíonn mapaitheoirí réad-ghaolmhara eile ort caidrimh a shainiú ar an dá thaobh. Creideann forbróirí Django gur sárú é seo ar phrionsabal DRY (Ná Déan Athdhéanamh Féin), mar sin ní éilíonn Django ach ort an caidreamh a shainiú ar cheann amháin.</p>\n<p>Ach conas is féidir é seo a dhéanamh, ós rud é nach bhfuil a fhios ag rang samhail cé na ranganna samhail eile a bhaineann leis go dtí go luchtaítear na ranganna samhail eile sin?</p>\n<p>The answer lies in the <a class=\"reference internal\" href=\"/ga/6.1/ref/applications/#django.apps.apps\" title=\"django.apps.apps\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">app</span> <span class=\"pre\">registry</span></code></a>. When Django\nstarts, it imports each application listed in <a class=\"reference internal\" href=\"/ga/6.1/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a>, and\nthen the <code class=\"docutils literal notranslate\"><span class=\"pre\">models</span></code> module inside each application. Whenever a new model class\nis created, Django adds backward-relationships to any related models. If the\nrelated models haven't been imported yet, Django keeps track of the\nrelationships and adds them when the related models eventually are imported.</p>\n<p>Ar an gcúis seo, tá sé tábhachtach go bhfuil na samhlacha go léir atá á úsáid agat a shainiú in iarratais atá liostaithe in:setting: INSTALLED_APPS. Seachas sin, b'fhéidir nach n-oibreoidh caidreamh cúil i gceart.</p>\n</section>\n<section id=\"queries-over-related-objects\">\n<h3>Fiosruithe ar rudaí gaolm<a class=\"heading-anchor\" href=\"#queries-over-related-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Leanann ceisteanna a bhaineann le rudaí gaolmhara na rialacha céanna le ceisteanna a bhaineann le réimsí Nuair a shonraítear an luach le haghaidh ceisteanna a mheaitseáil, féadfaidh tú sampla réada féin, nó an príomhluach don réad a úsáid.</p>\n<p>Mar shampla, má tá réad Blag <code class=\"docutils literal notranslate\"><span class=\"pre\">b</span></code> agat le id=5`, bheadh na trí cheist seo a leanas comhionann:</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\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">blog</span><span class=\"o\">=</span><span class=\"n\">b</span><span class=\"p\">)</span>  <span class=\"c1\"># Query using object instance</span>\n<span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">blog</span><span class=\"o\">=</span><span class=\"n\">b</span><span class=\"o\">.</span><span class=\"n\">id</span><span class=\"p\">)</span>  <span class=\"c1\"># Query using id from instance</span>\n<span class=\"n\">Entry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">blog</span><span class=\"o\">=</span><span class=\"mi\">5</span><span class=\"p\">)</span>  <span class=\"c1\"># Query using id directly</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"falling-back-to-raw-sql\">\n<h2>Ag titim ar ais go SQL amh<a class=\"heading-anchor\" href=\"#falling-back-to-raw-sql\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Má bhíonn gá duit fiosrúchán SQL a scríobh atá ró-chasta chun mapálaí bunachar sonraí Django a láimhseáil, is féidir leat titim siar ar SQL a scríobh de láimh. Tá cúpla rogha ag Django chun ceisteanna SQL amh a scríobh; féach: doc: /topics/db/sql.</p>\n<p>Faoi dheireadh, tá sé tábhachtach a thabhairt faoi deara nach bhfuil ciseal bunachar sonraí Django ach comhéadan le do bhunachar sonraí. Is féidir leat rochtain a fháil ar do bhunachar sonraí trí uirlisí eile, teangacha cláir nó creataí bunachar sonraí; níl aon rud Django-sonrach faoi do bhunachar sonraí.</p>\n</section>","rootId":"making-queries","toc":[{"title":"Cruthú rudaí","anchor":"creating-objects","children":[]},{"title":"Athruithe a shábháil ar rudaí","anchor":"saving-changes-to-objects","children":[{"title":"Réimsí ForeignKey agus ManyTomanyField a shábháil","anchor":"saving-foreignkey-and-manytomanyfield-fields","children":[]}]},{"title":"Rudaí a aisghabháil","anchor":"retrieving-objects","children":[{"title":"Aisghabháil gach rud","anchor":"retrieving-all-objects","children":[]},{"title":"Rudaí ar leith a aisghabháil le scagairí","anchor":"retrieving-specific-objects-with-filters","children":[{"title":"Scagairí slabhraithe","anchor":"chaining-filters","children":[]},{"title":"Tá scagtha QuerySet uathúil","anchor":"filtered-querysets-are-unique","children":[]},{"title":"Tá QuerySet leisciúil","anchor":"querysets-are-lazy","children":[]}]},{"title":"Aisghabháil réad amháin le ``get () ``","anchor":"retrieving-a-single-object-with-get","children":[]},{"title":"Modhanna eile ``QuerySet`","anchor":"other-queryset-methods","children":[]},{"title":"Teorannú ar QuerySets","anchor":"limiting-querysets","children":[]},{"title":"Cuardaigh allamuigh","anchor":"field-lookups","children":[]},{"title":"Cuardaigh a bhaineann le caidrimh","anchor":"lookups-that-span-relationships","children":[{"title":"Cuimsíonn caidrimh illuachmhar","anchor":"spanning-multi-valued-relationships","children":[]}]},{"title":"Is féidir le scagairí réimsí tagartha a dhéanamh ar an","anchor":"filters-can-reference-fields-on-the-model","children":[]},{"title":"Is féidir le nathanna tagairt a dhéanamh d'athrú","anchor":"expressions-can-reference-transforms","children":[]},{"title":"An aicearra cuardaigh pk","anchor":"the-pk-lookup-shortcut","children":[]},{"title":"Comharthaí agus béim faoin gcéad ag éalú i ráitis LIKE","anchor":"escaping-percent-signs-and-underscores-in-like-statements","children":[]},{"title":"Caching agus QuerySets","anchor":"caching-and-querysets","children":[{"title":"Nuair nach ndéantar QuerySet\\ s a chosc","anchor":"when-querysets-are-not-cached","children":[]}]}]},{"title":"Fiosrúcháin asincrónach","anchor":"asynchronous-queries","children":[{"title":"Athraitheadh ceisteanna","anchor":"query-iteration","children":[]},{"title":"``QuerySet ``agus modhanna bainisteora","anchor":"queryset-and-manager-methods","children":[]},{"title":"No deferred queries","anchor":"no-deferred-queries","children":[]},{"title":"Idirbhearta","anchor":"transactions","children":[]}]},{"title":"Ag fiosrú Jsonfield","anchor":"querying-jsonfield","children":[{"title":"Stóráil agus fiosrú ar None","anchor":"storing-and-querying-for-none","children":[]},{"title":"Athraíonn eochair, innéacs agus cosán","anchor":"key-index-and-path-transforms","children":[{"title":"Nathanna ``KT () ``","anchor":"module-django.db.models.fields.json","children":[]}]},{"title":"Cuardaigh coimeádta agus príomhfheidhmeanna","anchor":"containment-and-key-lookups","children":[{"title":"Coimeád","anchor":"contains","children":[]},{"title":"coinneáilteo_ag","anchor":"contained-by","children":[]},{"title":"a_eochair","anchor":"has-key","children":[]},{"title":"hais_eochair","anchor":"has-keys","children":[]},{"title":"`aon_eochair","anchor":"has-any-keys","children":[]}]}]},{"title":"Cuardaigh casta le rudaí Q","anchor":"complex-lookups-with-q-objects","children":[]},{"title":"Déan comparáid a dhéanamh","anchor":"comparing-objects","children":[]},{"title":"Rudaí a scriosadh","anchor":"deleting-objects","children":[]},{"title":"Cóipeáil cásanna samhail","anchor":"copying-model-instances","children":[]},{"title":"Nuashonrú iolrrudaí ag an am","anchor":"updating-multiple-objects-at-once","children":[]},{"title":"Rudaí gaolmhara","anchor":"related-objects","children":[{"title":"Caidrimh duine le go leor","anchor":"one-to-many-relationships","children":[{"title":"Ar aghaidh","anchor":"forward","children":[]},{"title":"Ag leanúint caidrimh “siar”","anchor":"following-relationships-backward","children":[]},{"title":"Bainisteoir droim saincheaptha a úsáid","anchor":"using-a-custom-reverse-manager","children":[]},{"title":"Modhanna breise chun rudaí gaolmhara a láim","anchor":"additional-methods-to-handle-related-objects","children":[]}]},{"title":"Caidrimh go leor","anchor":"many-to-many-relationships","children":[{"title":"Filtering on many-to-many relationships","anchor":"filtering-on-many-to-many-relationships","children":[]}]},{"title":"Caidrimh duine le duine","anchor":"one-to-one-relationships","children":[]},{"title":"Conas is féidir na caidrimh chúl indéanta?","anchor":"how-are-the-backward-relationships-possible","children":[]},{"title":"Fiosruithe ar rudaí gaolm","anchor":"queries-over-related-objects","children":[]}]},{"title":"Ag titim ar ais go SQL amh","anchor":"falling-back-to-raw-sql","children":[]}],"breadcrumbs":[{"docname":"topics/index","title":"Using Django","url":"/ga/6.1/topics/"},{"docname":"topics/db/index","title":"Samhlacha agus bunachair sonraí","url":"/ga/6.1/topics/db/"}],"prev":{"docname":"topics/db/models","title":"Samhla","url":"/ga/6.1/topics/db/models/"},"next":{"docname":"topics/db/fetch-modes","title":"Fetch modes","url":"/ga/6.1/topics/db/fetch-modes/"},"formats":{"html":"/ga/6.1/topics/db/queries/","markdown":"/ga/6.1/topics/db/queries.md","json":"/ga/6.1/topics/db/queries.json"},"source":"https://github.com/django/django/blob/stable/6.1.x/docs/topics/db/queries.txt","official":"https://docs.djangoproject.com/ga/6.1/topics/db/queries/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}