{"title":"Ceisteanna a dhéanamh","version":"6.0","locale":"ga","docname":"topics/db/queries","url":"/ga/6.0/topics/db/queries/","canonical":"https://djangodocs.dev/ga/6.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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>Oibríonn sé ar chúl, freisin. Cé gur féidir é: attr: a shaincheapadh &lt;.foreignKey.related_query_name&gt;, de réir réamhshocraithe tagraíonn tú do chaidreamh “droim” i gcuardach ag baint úsáide as ainm beaga an tsamhail.</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>Soláthraíonn Django: class: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>Abairtí F &lt;django.db.models.F&gt;`chun comparáidí den sórt sin a cheadú. Feidhmíonn cásanna <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>F () <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">``</span></a>mar thagairt do réimse samhail laistigh de cheist. Is féidir na tagairtí seo a úsáid ansin i scagairí fiosrúcháin chun luachanna dhá réimse éagsúla a chur i gcomparáid ar an samhail chéanna.</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, though read the notes on <code class=\"docutils literal notranslate\"><span class=\"pre\">defer()</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">only()</span></code> before you use\nthem.</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=\"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<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>Mar is amhlaidh le réimsí eile, stóráilfear <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> mar luach an réimse é mar SQL <code class=\"docutils literal notranslate\"><span class=\"pre\">NULL</span></code>. &lt;django.db.models.Value&gt;Cé nach mholtar, is féidir scalar JSON a stóráil <code class=\"docutils literal notranslate\"><span class=\"pre\">null</span></code> in ionad SQL <code class=\"docutils literal notranslate\"><span class=\"pre\">NULL</span></code> trí:class: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>Value (None, JSONField ()) <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>a úsáid.</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>Agus tú ag fiosrú, léirmhínítear luach <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span> <span class=\"pre\">``i</span> <span class=\"pre\">gcónaí</span> <span class=\"pre\">mar</span> <span class=\"pre\">JSON</span> <span class=\"pre\">``null</span></code>. Chun fiosrú a dhéanamh ar SQL <code class=\"docutils literal notranslate\"><span class=\"pre\">NULL</span></code>, bain úsáid:lookup: isnull:</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;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\">Value</span><span class=\"p\">(</span><span class=\"kc\">None</span><span class=\"p\">,</span> <span class=\"n\">JSONField</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\">&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\">Value</span><span class=\"p\">(</span><span class=\"kc\">None</span><span class=\"p\">,</span> <span class=\"n\">JSONField</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</section>\n<section id=\"key-index-and-path-transforms\">\n<span id=\"std-fieldlookup-jsonfield.key\"></span><span id=\"id10\"></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>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 admonition\">\n<p class=\"admonition-title\">MySQL, MariaDB, and Oracle</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<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=\"id11\"></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>Is iad ceisteanna argóint eochairfhocal -- in: meth: ~django.db.models.query.queryset.filter, srl. -- “agus&quot;ED le chéile. &lt;django.db.models.Q&gt;Más gá duit ceisteanna níos casta a fhorghníomhú (mar shampla, ceisteanna le ráitis OR`), is féidir leat:class: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>Q earraí <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>a úsáid.</p>\n<p>A: aicme: Is réad é Q &lt;django.db.models.Q&gt;'(`Django.db.Models.q`) réad a úsáidtear chun bailiúchán argóintí eochairfhocal a chumhdú. Sonraítear na hargóintí eochairfhocal seo mar atá i “Cuardaigh réimse” thuas.</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>Is féidir le glaonna chun nuashonrú a úsáid freisin: aicme: abairtí <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>F &lt;django.db.models.F&gt;`chun réimse amháin a nuashonrú bunaithe ar luach réimse eile sa tsamhail. Tá sé seo úsáideach go háirithe chun cuntair a mhéadú bunaithe ar a luach reatha. Mar shampla, chun an comhaireamh pingback a mhéadú do gach iontráil sa bhlag:</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>Nuair a shainmhíníonn tú caidreamh i samhail (ie: a:class: ~django.db.models.foreignKey, :class: ~django.db.models.onetoonefield, nó:class: ~django.db.models.manyToManyField), beidh API áisiúil ag cásanna den tsamhail sin chun rochtain a fháil ar an réad (í) gaolmhar.</p>\n<p>Ag baint úsáide as na samhlacha ag barr an leathanaigh seo, mar shampla, is féidir le réad <code class=\"docutils literal notranslate\"><span class=\"pre\">`Entry</span></code> a réad gaolmhar <code class=\"docutils literal notranslate\"><span class=\"pre\">Blog</span></code> a fháil trí rochtain a fháil ar an tréith <code class=\"docutils literal notranslate\"><span class=\"pre\">blog</span> <span class=\"pre\">``:</span> <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>Cruthaíonn Django rochtainí API freisin don taobh “eile” den chaidreamh - an nasc ón tsamhail ghaolmhar leis an tsamhail a shainmhíníonn an caidreamh. Mar shampla, tá rochtain ag réad <code class=\"docutils literal notranslate\"><span class=\"pre\">Blog</span></code> <code class=\"docutils literal notranslate\"><span class=\"pre\">b</span></code> ar liosta de na rudaí gaolmhara <code class=\"docutils literal notranslate\"><span class=\"pre\">Entry</span></code> tríd an tréith <code class=\"docutils literal notranslate\"><span class=\"pre\">entry_set</span></code>: b.entry_set.all () `.</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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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":"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.0/topics/"},{"docname":"topics/db/index","title":"Samhlacha agus bunachair sonraí","url":"/ga/6.0/topics/db/"}],"prev":{"docname":"topics/db/models","title":"Samhla","url":"/ga/6.0/topics/db/models/"},"next":{"docname":"topics/db/aggregation","title":"Comhiomlánú","url":"/ga/6.0/topics/db/aggregation/"},"formats":{"html":"/ga/6.0/topics/db/queries/","markdown":"/ga/6.0/topics/db/queries.md","json":"/ga/6.0/topics/db/queries.json"},"source":"https://github.com/django/django/blob/stable/6.0.x/docs/topics/db/queries.txt","official":"https://docs.djangoproject.com/ga/6.0/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"]}