{"title":"Bainisteoirí","version":"6.0","locale":"ga","docname":"topics/db/managers","url":"/ga/6.0/topics/db/managers/","canonical":"https://djangodocs.dev/ga/6.0/topics/db/managers/","summary":"class Manager Link to this definition # Is é “Bainisteoir” an comhéadan trína gcuirtear oibríochtaí fiosrúcháin bunachar sonraí ar fáil do mhúnlaí Django. Tá ``…","html":"<h1>Bainisteoirí<a class=\"heading-anchor\" href=\"#managers\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Manager\">\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\">Manager</span></span><a class=\"heading-anchor\" href=\"#django.db.models.Manager\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Is é “Bainisteoir” an comhéadan trína gcuirtear oibríochtaí fiosrúcháin bunachar sonraí ar fáil do mhúnlaí Django. Tá <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Bainisteoir <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>amháin ar a laghad ann do gach samhail i bhfeidhmchlár Django.</p>\n<p>Déantar an bealach a oibríonn ranganna <code class=\"docutils literal notranslate\"><span class=\"pre\">Bainiste</span></code> doiciméadaithe in:doc: /topics/db/queries; baineann an doiciméad seo go sonrach le roghanna samhlacha a shaincheapann iompar <code class=\"docutils literal notranslate\"><span class=\"pre\">Bainiste</span></code>.</p>\n<section id=\"manager-names\">\n<span id=\"id1\"></span><h2>Ainmneacha bainisteora<a class=\"heading-anchor\" href=\"#manager-names\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>De réir réamhshocraithe, cuireann Django <code class=\"docutils literal notranslate\"><span class=\"pre\">Bainiste</span></code> leis an ainm <code class=\"docutils literal notranslate\"><span class=\"pre\">ruda</span></code> le gach rang samhail Django. Mar sin féin, más mian leat <code class=\"docutils literal notranslate\"><span class=\"pre\">ruda</span></code> a úsáid mar ainm réimse, nó más mian leat ainm seachas <code class=\"docutils literal notranslate\"><span class=\"pre\">ruda</span></code> a úsáid don Bainiste`, is féidir leat é a athainmniú ar bhonn in aghaidh an mhúnla. Chun an <code class=\"docutils literal notranslate\"><span class=\"pre\">Bainiste</span></code> a athainmniú do rang ar leith, sainmhínigh tréith aicme de chineál <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Models.manager () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>ar an tsamhail sin. 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</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\">Person</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\">people</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Manager</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>Ag baint úsáide as an tsamhail samplach seo, ginfidh <code class=\"docutils literal notranslate\"><span class=\"pre\">Person.Objects</span></code> eisceacht <code class=\"docutils literal notranslate\"><span class=\"pre\">AttributeError</span></code>, ach soláthróidh <code class=\"docutils literal notranslate\"><span class=\"pre\">Person.People.all</span> <span class=\"pre\">()</span> <span class=\"pre\">``liosta</span> <span class=\"pre\">de</span> <span class=\"pre\">na</span> <span class=\"pre\">rudaí</span> <span class=\"pre\">``Person</span></code> go léir.</p>\n</section>\n<section id=\"custom-managers\">\n<span id=\"id2\"></span><h2>Bainisteoirí saincheaptha<a class=\"heading-anchor\" href=\"#custom-managers\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Is féidir leat <code class=\"docutils literal notranslate\"><span class=\"pre\">Bainisteoir</span> <span class=\"pre\">``saincheaptha</span> <span class=\"pre\">a</span> <span class=\"pre\">úsáid</span> <span class=\"pre\">i</span> <span class=\"pre\">samhail</span> <span class=\"pre\">áirithe</span> <span class=\"pre\">tríd</span> <span class=\"pre\">an</span> <span class=\"pre\">rang</span> <span class=\"pre\">bonn</span> <span class=\"pre\">``Bainiste</span></code> a leathnú agus do Bainisteoir` saincheaptha a chur i do mhúnla.</p>\n<p>Tá dhá chúis ann b'fhéidir gur mhaith leat <code class=\"docutils literal notranslate\"><span class=\"pre\">Bainiste</span></code> a shaincheapadh: modhanna <code class=\"docutils literal notranslate\"><span class=\"pre\">Bainiste</span></code> breise a chur leis, agus/nó an QuerySet` tosaigh <code class=\"docutils literal notranslate\"><span class=\"pre\">Bainiste</span></code> a mhodhnú.</p>\n<section id=\"adding-extra-manager-methods\">\n<h3>Modhanna bainisteora breise a chur leis<a class=\"heading-anchor\" href=\"#adding-extra-manager-methods\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Is é modhanna breise <code class=\"docutils literal notranslate\"><span class=\"pre\">Bainiste</span></code> a chur leis an mbealach is fearr chun feidhmiúlacht “leibhéal tábla” a chur le do mhúnlaí. (Maidir le feidhmiúlacht “leibhéal sraithe” - ie, feidhmeanna a ghníomhaíonn ar shampla amháin de réad samhail - bain úsáid as: ref: Modhanna samhlacha `, &lt;model-methods&gt;ní modhanna saincheaptha ``Bainiste`.)</p>\n<p>Mar shampla, cuireann an <code class=\"docutils literal notranslate\"><span class=\"pre\">Bainisteoir</span> <span class=\"pre\">``saincheaptha</span> <span class=\"pre\">seo</span> <span class=\"pre\">modh</span> <span class=\"pre\">``with_counts</span> <span class=\"pre\">()</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=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Coalesce</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PollManager</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Manager</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">with_counts</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\">annotate</span><span class=\"p\">(</span><span class=\"n\">num_responses</span><span class=\"o\">=</span><span class=\"n\">Coalesce</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Count</span><span class=\"p\">(</span><span class=\"s2\">&quot;response&quot;</span><span class=\"p\">),</span> <span class=\"mi\">0</span><span class=\"p\">))</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">OpinionPoll</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\">question</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\">objects</span> <span class=\"o\">=</span> <span class=\"n\">PollManager</span><span class=\"p\">()</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Response</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\">poll</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\">OpinionPoll</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=\"c1\"># ...</span>\n</code></pre></div>\n<p>Leis an sampla seo, úsáidfeá <code class=\"docutils literal notranslate\"><span class=\"pre\">OpinionPoll.Objects.with_Counts</span> <span class=\"pre\">()</span> <span class=\"pre\">``chun</span> <span class=\"pre\">`QuerySet`</span> <span class=\"pre\">de</span> <span class=\"pre\">rudaí</span> <span class=\"pre\">``OpinionPoll</span></code> a fháil leis an tréith breise <code class=\"docutils literal notranslate\"><span class=\"pre\">num_responses</span></code> ceangailte.</p>\n<p>Is féidir le modh saincheaptha <code class=\"docutils literal notranslate\"><span class=\"pre\">Bainiste</span></code> aon rud a theastaíonn uait a thabhairt ar ais. Ní gá dó <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>QuerySet <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>a thabhairt ar ais.</p>\n<p>Rud eile le tabhairt faoi deara ná gur féidir le modhanna <code class=\"docutils literal notranslate\"><span class=\"pre\">Bainiste</span></code> rochtain a fháil ar <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>self.model <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>chun an rang samhail lena bhfuil siad ceangailte a fháil.</p>\n</section>\n<section id=\"modifying-a-manager-s-initial-queryset\">\n<h3>“QuerySet” tosaigh bainisteora a mhodhnú<a class=\"heading-anchor\" href=\"#modifying-a-manager-s-initial-queryset\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Tugann bonn <code class=\"docutils literal notranslate\"><span class=\"pre\">Bainiste</span></code> QuerySet` gach rud sa chóras ar ais. Mar shampla, ag baint úsáide as an tsamhail 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=\"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\">Book</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\">title</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\">author</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\">50</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>... cuirfidh an ráiteas <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Book.Objects.all () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>gach leabhar sa bhunachar sonraí ar ais.</p>\n<p>Is féidir leat bonn <code class=\"docutils literal notranslate\"><span class=\"pre\">`Manager</span></code> QuerySet` a shárú tríd an modh Manager.get_querySet () ``a shárú. Ba chóir go gcuirfeadh ``get_queryset () ``QuerySet` a thabhairt ar ais leis na hairíonna a theastaíonn uait.</p>\n<p>Mar shampla, tá <em>dha</em> <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Bainisteoir <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>s sa tsamhail seo a leanas - ceann a thugann gach rud ar ais, agus ceann nach dtugann ach na leabhair le Roald Dahl ar ais:</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\"># First, define the Manager subclass.</span>\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">DahlBookManager</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Manager</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_queryset</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">get_queryset</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">author</span><span class=\"o\">=</span><span class=\"s2\">&quot;Roald Dahl&quot;</span><span class=\"p\">)</span>\n\n\n<span class=\"c1\"># Then hook it into the Book model explicitly.</span>\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Book</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\">title</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\">author</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\">50</span><span class=\"p\">)</span>\n\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\"># The default manager.</span>\n    <span class=\"n\">dahl_objects</span> <span class=\"o\">=</span> <span class=\"n\">DahlBookManager</span><span class=\"p\">()</span>  <span class=\"c1\"># The Dahl-specific manager.</span>\n</code></pre></div>\n<p>Leis an tsamhail samplach seo, ní thabharfaidh Book.Objects.all () ``gach leabhar sa bhunachar sonraí ar ais, ach ní thabharfaidh `Book.dahl_objects.all ()` ach na cinn a scríobh Roald Dahl ar ais.</p>\n<p>Toisc go bhfilleann <code class=\"docutils literal notranslate\"><span class=\"pre\">get_queryset</span> <span class=\"pre\">()</span> <span class=\"pre\">``réad</span> <span class=\"pre\">``QuerySet</span></code>, is féidir leat <code class=\"docutils literal notranslate\"><span class=\"pre\">filter</span> <span class=\"pre\">()</span> <span class=\"pre\">``,</span></code>, () <code class=\"docutils literal notranslate\"><span class=\"pre\">a</span> <span class=\"pre\">úsáid</span> <span class=\"pre\">agus</span> <span class=\"pre\">na</span> <span class=\"pre\">modhanna</span> <span class=\"pre\">``QuerySet</span></code> eile air. Mar sin tá na ráitis seo go léir dlíthiúil:</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\">Book</span><span class=\"o\">.</span><span class=\"n\">dahl_objects</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()</span>\n<span class=\"n\">Book</span><span class=\"o\">.</span><span class=\"n\">dahl_objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">title</span><span class=\"o\">=</span><span class=\"s2\">&quot;Matilda&quot;</span><span class=\"p\">)</span>\n<span class=\"n\">Book</span><span class=\"o\">.</span><span class=\"n\">dahl_objects</span><span class=\"o\">.</span><span class=\"n\">count</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>Chuir an sampla seo in iúl teicníc spéisiúil eile freisin: bainisteoirí iolracha a úsáid ar an tsamhail chéanna. Is féidir leat an oiread cásanna <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Bainisteoir () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>a cheangal le samhail agus is mian leat. Is bealach neamh-athchleachtach é seo chun “scagairí” coitianta do do mhúnlaí a shainiú.</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\">AuthorManager</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Manager</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_queryset</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">get_queryset</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">role</span><span class=\"o\">=</span><span class=\"s2\">&quot;A&quot;</span><span class=\"p\">)</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">EditorManager</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Manager</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_queryset</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">get_queryset</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">role</span><span class=\"o\">=</span><span class=\"s2\">&quot;E&quot;</span><span class=\"p\">)</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Person</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\">first_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\">50</span><span class=\"p\">)</span>\n    <span class=\"n\">last_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\">50</span><span class=\"p\">)</span>\n    <span class=\"n\">role</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\">1</span><span class=\"p\">,</span> <span class=\"n\">choices</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;A&quot;</span><span class=\"p\">:</span> <span class=\"n\">_</span><span class=\"p\">(</span><span class=\"s2\">&quot;Author&quot;</span><span class=\"p\">),</span> <span class=\"s2\">&quot;E&quot;</span><span class=\"p\">:</span> <span class=\"n\">_</span><span class=\"p\">(</span><span class=\"s2\">&quot;Editor&quot;</span><span class=\"p\">)})</span>\n    <span class=\"n\">people</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Manager</span><span class=\"p\">()</span>\n    <span class=\"n\">authors</span> <span class=\"o\">=</span> <span class=\"n\">AuthorManager</span><span class=\"p\">()</span>\n    <span class=\"n\">editors</span> <span class=\"o\">=</span> <span class=\"n\">EditorManager</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>Ligeann an sampla seo duit <code class=\"docutils literal notranslate\"><span class=\"pre\">Person.Authors.all</span> <span class=\"pre\">()</span> <span class=\"pre\">``,</span> <span class=\"pre\">`Person.Editors.all</span> <span class=\"pre\">()</span></code>, agus <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Person.People.all () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>a iarraidh, ag tabhairt torthaí intuartha.</p>\n</section>\n<section id=\"default-managers\">\n<span id=\"id3\"></span><h3>Bainisteoirí réamhshoc<a class=\"heading-anchor\" href=\"#default-managers\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Model._default_manager\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Model.</span></span><span class=\"sig-name descname\"><span class=\"pre\">_default_manager</span></span><a class=\"heading-anchor\" href=\"#django.db.models.Model._default_manager\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Má úsáideann tú rudaí saincheaptha <code class=\"docutils literal notranslate\"><span class=\"pre\">Bainiste</span></code>, tabhair faoi deara go bhfuil stádas speisialta ag an gcéad <code class=\"docutils literal notranslate\"><span class=\"pre\">Bainisteoir</span> <span class=\"pre\">``Django</span> <span class=\"pre\">(san</span> <span class=\"pre\">ord</span> <span class=\"pre\">ina</span> <span class=\"pre\">sainmhínítear</span> <span class=\"pre\">iad</span> <span class=\"pre\">sa</span> <span class=\"pre\">tsamhail).</span> <span class=\"pre\">Léirmhíníonn</span> <span class=\"pre\">Django</span> <span class=\"pre\">an</span> <span class=\"pre\">chéad</span> <span class=\"pre\">``Bainiste</span></code> a shainmhínítear i rang mar an “réamhshocraithe” <code class=\"docutils literal notranslate\"><span class=\"pre\">Bainiste</span></code>, agus úsáidfidh roinnt codanna de Django (lena n-áirítear: djadmin: dumpdata) an <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>Bainisteoir <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>sin go heisiach don tsamhail sin. Mar thoradh air sin, is smaoineamh maith é a bheith cúramach i do rogha bainisteora réamhshocraithe d'fhonn cás a sheachaint ina mbíonn neamhábaltacht rudaí ar mhaith leat oibriú leo mar thoradh ar 'get_queryset ()' a shárú.</p>\n<p>&lt;django.db.models.Options.default_manager_name&gt;Is féidir leat bainisteoir réamhshocraithe saincheaptha a shonrú ag baint úsáidea:attr: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>meta.default_manager_name <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>.</p>\n<p>Má tá cód éigin á scríobh agat a chaithfidh samhail anaithnid a láimhseáil, mar shampla, in aip tríú páirtí a chuireann dearcadh cineálach i bhfeidhm, bain úsáid as an mbainisteoir seo (nó: attr: ~Model. _base_manager) seachas glacadh leis go bhfuil bainisteoir <code class=\"docutils literal notranslate\"><span class=\"pre\">ruda</span></code> ag an tsamhail.</p>\n</section>\n<section id=\"base-managers\">\n<h3>Bainisteoirí bonn<a class=\"heading-anchor\" href=\"#base-managers\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Model._base_manager\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Model.</span></span><span class=\"sig-name descname\"><span class=\"pre\">_base_manager</span></span><a class=\"heading-anchor\" href=\"#django.db.models.Model._base_manager\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<section id=\"using-managers-for-related-object-access\">\n<span id=\"managers-for-related-objects\"></span><h4>Bainisteoirí a úsáid le haghaidh rochtana gaolmhara<a class=\"heading-anchor\" href=\"#using-managers-for-related-object-access\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>By default, Django uses an instance of the <code class=\"docutils literal notranslate\"><span class=\"pre\">Model._base_manager</span></code> manager\nclass when accessing related objects (e.g. <code class=\"docutils literal notranslate\"><span class=\"pre\">choice.question</span></code>), not the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">_default_manager</span></code> on the related object. This is because Django needs to be\nable to retrieve the related object, even if it would otherwise be filtered out\n(and hence be inaccessible) by the default manager.</p>\n<p>&lt;django.db.models.Options.base_manager_name&gt;Mura bhfuil an gnáthrang bainisteora bonn (:class: Django.db.Models.Manager) oiriúnach do do chúinsí, is féidir leat a rá le Django cén rang atá le húsáid trí shocting:attr: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>Meta.base_Manager_name <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>.</p>\n<p>&lt;backwards-related-objects&gt;Ní úsáidtear bainisteoirí bonn agus iad ag fiosrú ar mhúnlaí gaolmhara, nó nuair: ref: <span class=\"xref std std-ref\">rochtain a fháil ar chaidreamh duine le go leor nó go leor '. Mar shampla, má bhí &lt;creating-models&gt;réimse ``scriostha ``agus bainisteoir bonn ag an tsamhail ``Cheiste</span> ón rang teagaisc` agus bainisteoir bonn a scagann amach cásanna le <code class=\"docutils literal notranslate\"><span class=\"pre\">deleted=true</span></code>, chuimsíodh roghanna a bhaineann le ceisteanna scriosta mar <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>choice.objects.filter (question__name__startswith='What') <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>.</p>\n</section>\n<section id=\"don-t-filter-away-any-results-in-this-type-of-manager-subclass\">\n<h4>Ná scagadh aon torthaí sa chineál seo fo-aicme bainisteora<a class=\"heading-anchor\" href=\"#don-t-filter-away-any-results-in-this-type-of-manager-subclass\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Úsáidtear an bainisteoir seo chun rochtain a fháil ar rudaí a bhaineann leo ó mhúnla éigin eile. Sna cásanna sin, caithfidh Django a bheith in ann na rudaí go léir don tsamhail atá á fháil aige a fheiceáil, ionas gur féidir <em>aon ruda</em> a dtagraítear dó a aisghabháil.</p>\n<p>Dá bhrí sin, níor cheart duit <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>get_queryset () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>a shárú chun aon sraitheanna a scagadh amach. Má dhéanann tú amhlaidh, cuirfidh Django torthaí neamhiomlán ar ais.</p>\n</section>\n</section>\n<section id=\"calling-custom-queryset-methods-from-the-manager\">\n<span id=\"calling-custom-queryset-methods-from-manager\"></span><h3>Ag glaoch ar mhodhanna saincheaptha <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>QuerySet` ón mbainisteoir<a class=\"heading-anchor\" href=\"#calling-custom-queryset-methods-from-the-manager\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Cé go bhfuil an chuid is mó de na modhanna ón gcaighdeán <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet`</span> <span class=\"pre\">inrochtana</span> <span class=\"pre\">go</span> <span class=\"pre\">díreach</span> <span class=\"pre\">ón</span> <span class=\"pre\">``Bainiste</span></code>, is amhlaidh amháin maidir leis na modhanna breise atá sainmhínithe ar <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code> saincheaptha má chuireann tú i bhfeidhm iad ar an <code class=\"docutils literal notranslate\"><span class=\"pre\">Bainiste</span></code> 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=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonQuerySet</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">QuerySet</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">authors</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\">filter</span><span class=\"p\">(</span><span class=\"n\">role</span><span class=\"o\">=</span><span class=\"s2\">&quot;A&quot;</span><span class=\"p\">)</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">editors</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\">filter</span><span class=\"p\">(</span><span class=\"n\">role</span><span class=\"o\">=</span><span class=\"s2\">&quot;E&quot;</span><span class=\"p\">)</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonManager</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Manager</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_queryset</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"n\">PersonQuerySet</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">model</span><span class=\"p\">,</span> <span class=\"n\">using</span><span class=\"o\">=</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">_db</span><span class=\"p\">)</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">authors</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\">get_queryset</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">authors</span><span class=\"p\">()</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">editors</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\">get_queryset</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">editors</span><span class=\"p\">()</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Person</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\">first_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\">50</span><span class=\"p\">)</span>\n    <span class=\"n\">last_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\">50</span><span class=\"p\">)</span>\n    <span class=\"n\">role</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\">1</span><span class=\"p\">,</span> <span class=\"n\">choices</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;A&quot;</span><span class=\"p\">:</span> <span class=\"n\">_</span><span class=\"p\">(</span><span class=\"s2\">&quot;Author&quot;</span><span class=\"p\">),</span> <span class=\"s2\">&quot;E&quot;</span><span class=\"p\">:</span> <span class=\"n\">_</span><span class=\"p\">(</span><span class=\"s2\">&quot;Editor&quot;</span><span class=\"p\">)})</span>\n    <span class=\"n\">people</span> <span class=\"o\">=</span> <span class=\"n\">PersonManager</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>Ligeann an sampla seo duit glaoch ar <code class=\"docutils literal notranslate\"><span class=\"pre\">údair</span> <span class=\"pre\">()</span> <span class=\"pre\">``agus</span> <span class=\"pre\">`eagarthóirí</span> <span class=\"pre\">()</span></code> araon ón mbainisteoir <code class=\"docutils literal notranslate\"><span class=\"pre\">Person.People</span></code>.</p>\n</section>\n<section id=\"creating-a-manager-with-queryset-methods\">\n<span id=\"create-manager-with-queryset-methods\"></span><h3>Bainisteoir a chruthú le modhanna <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>QuerySet`<a class=\"heading-anchor\" href=\"#creating-a-manager-with-queryset-methods\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>&lt;django.db.models.query.QuerySet.as_manager&gt;In ionad an chur chuige thuas a éilíonn modhanna dúbailte ar an <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code> agus an Bainiste` araon, is féidir :meth: QuerySet.as_Manager () `a úsáid chun sampla de `Bainisteoir ``a chruthú le cóip de mhodhanna saincheaptha ``QuerySet`:</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\">Person</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=\"o\">...</span>\n    <span class=\"n\">people</span> <span class=\"o\">=</span> <span class=\"n\">PersonQuerySet</span><span class=\"o\">.</span><span class=\"n\">as_manager</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>&lt;django.db.models.query.QuerySet.as_manager&gt;Beidh an t-áis <code class=\"docutils literal notranslate\"><span class=\"pre\">Bainiste</span></code> a chruthaí:meth: QuerySet.as_Manager () `beagnach comhionann leis an ``PersonManager` ón sampla roimhe seo.</p>\n<p>&lt;django.db.models.query.QuerySet.delete&gt;Ní bhíonn ciall ar gach modh <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet`</span> <span class=\"pre\">ag</span> <span class=\"pre\">leibhéal</span> <span class=\"pre\">``Bainiste</span></code>; mar shampla cuirimid cosc d'aon ghnó an modh:meth: QuerySet.delete () `ó chóipeáil chuig an rang ``Bainiste`.</p>\n<p>Déantar modhanna a chóipeáil de réir na rialacha seo a leanas:</p>\n<ul class=\"simple\">\n<li><p>Cóipeáltar modhanna poiblí de réir réamhshoc</p></li>\n<li><p>Ní chóipeáiltear modhanna príobháideacha (ag tosú le béim) de réir réamhshocraithe.</p></li>\n<li><p>Déantar modhanna a bhfuil tréith <code class=\"docutils literal notranslate\"><span class=\"pre\">queryset_only</span></code> socraithe go <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> cóipeáil i gcónaí.</p></li>\n<li><p>Ní chóipeáiltear modhanna le tréith <code class=\"docutils literal notranslate\"><span class=\"pre\">queryset_only</span></code> atá socraithe go <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> riamh.</p></li>\n</ul>\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\">CustomQuerySet</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">QuerySet</span><span class=\"p\">):</span>\n    <span class=\"c1\"># Available on both Manager and QuerySet.</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">public_method</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span>\n\n    <span class=\"c1\"># Available only on QuerySet.</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">_private_method</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span>\n\n    <span class=\"c1\"># Available only on QuerySet.</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">opted_out_public_method</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span>\n\n    <span class=\"n\">opted_out_public_method</span><span class=\"o\">.</span><span class=\"n\">queryset_only</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>\n\n    <span class=\"c1\"># Available on both Manager and QuerySet.</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">_opted_in_private_method</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span>\n\n    <span class=\"n\">_opted_in_private_method</span><span class=\"o\">.</span><span class=\"n\">queryset_only</span> <span class=\"o\">=</span> <span class=\"kc\">False</span>\n</code></pre></div>\n<section id=\"from-queryset\">\n<h4><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>from_queryset () `<a class=\"heading-anchor\" href=\"#from-queryset\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.from_queryset\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">classmethod</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">from_queryset</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">queryset_class</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.from_queryset\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Le haghaidh ardúsáide b'fhéidir gur mhaith leat <code class=\"docutils literal notranslate\"><span class=\"pre\">Bainiste</span></code> saincheaptha agus <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet`</span> <span class=\"pre\">saincheaptha</span> <span class=\"pre\">araon.</span> <span class=\"pre\">Is</span> <span class=\"pre\">féidir</span> <span class=\"pre\">leat</span> <span class=\"pre\">é</span> <span class=\"pre\">sin</span> <span class=\"pre\">a</span> <span class=\"pre\">dhéanamh</span> <span class=\"pre\">trí</span> <span class=\"pre\">ghlaoch</span> <span class=\"pre\">ar</span> <span class=\"pre\">`Manager.from_querySet</span> <span class=\"pre\">()</span> <span class=\"pre\">``a</span> <span class=\"pre\">thugann</span> <span class=\"pre\">seach*fo-aicme*</span> <span class=\"pre\">de</span> <span class=\"pre\">do</span> <span class=\"pre\">bhonn</span> <span class=\"pre\">``Bainiste</span></code> le cóip de na modhanna saincheaptha <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</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\">CustomManager</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Manager</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">manager_only_method</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">CustomQuerySet</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">QuerySet</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">manager_and_queryset_method</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModel</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\">objects</span> <span class=\"o\">=</span> <span class=\"n\">CustomManager</span><span class=\"o\">.</span><span class=\"n\">from_queryset</span><span class=\"p\">(</span><span class=\"n\">CustomQuerySet</span><span class=\"p\">)()</span>\n</code></pre></div>\n<p>Féadfaidh tú an rang a ghintear a stóráil in athróg 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\">MyManager</span> <span class=\"o\">=</span> <span class=\"n\">CustomManager</span><span class=\"o\">.</span><span class=\"n\">from_queryset</span><span class=\"p\">(</span><span class=\"n\">CustomQuerySet</span><span class=\"p\">)</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModel</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\">objects</span> <span class=\"o\">=</span> <span class=\"n\">MyManager</span><span class=\"p\">()</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"custom-managers-and-model-inheritance\">\n<span id=\"custom-managers-and-inheritance\"></span><h3>Bainisteoirí saincheaptha agus oidhreacht samhail<a class=\"heading-anchor\" href=\"#custom-managers-and-model-inheritance\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>&lt;model-inheritance&gt;Seo mar a láimhseálann Django bainisteoirí saincheaptha agus:ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>oidhreacht mhúnla <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>:</p>\n<ol class=\"arabic simple\">\n<li><p>Déanann an rang leanaí oidhreacht bainisteoirí ó ranganna bonn i gcónaí, ag baint úsáide as gnáthordú réitigh ainmneacha Python (athraíonn ainmneacha ar an rang linbh gach duine eile; ansin tagann ainmneacha ar an gcéad rang tuismitheora, agus mar sin de).</p></li>\n<li><p>Mura dhearbhaítear aon bhainisteoirí ar mhúnla agus/nó a thuismitheoirí, cruthaíonn Django an bainisteoir <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>rudaí <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>go huathoibríoch.</p></li>\n<li><p>Is é an bainisteoir réamhshocraithe ar rang an ceann a roghnaíodh le:attr: meta.default_manager_name &lt;django.db.models.Options.default_manager_name&gt;, nó an chéad bhainisteoir a dhearbhaigh ar an tsamhail, nó bainisteoir réamhshocraithe an chéad mhúmhúnla tuismitheora.</p></li>\n</ol>\n<p>Soláthraíonn na rialacha seo an tsolúbthacht riachtanach más mian leat bailiúchán bainisteoirí saincheaptha a shuiteáil ar ghrúpa samhlacha, trí rang bonn teibí, ach an bainisteoir réamhshocraithe a shaincheapadh fós. Mar shampla, cuir leis go bhfuil an bunaicme seo agat:</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\">AbstractBase</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\">CustomManager</span><span class=\"p\">()</span>\n\n    <span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Meta</span><span class=\"p\">:</span>\n        <span class=\"n\">abstract</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>\n</code></pre></div>\n<p>Má úsáideann tú é seo go díreach i rang leanaí, is é <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>rudaí <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>an bainisteoir réamhshocraithe mura ndearbhaíonn tú aon bhainisteoirí sa rang linbh:</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\">ChildA</span><span class=\"p\">(</span><span class=\"n\">AbstractBase</span><span class=\"p\">):</span>\n    <span class=\"c1\"># ...</span>\n    <span class=\"c1\"># This class has CustomManager as the default manager.</span>\n    <span class=\"k\">pass</span>\n</code></pre></div>\n<p>Más mian leat oidhreacht a dhéanamh ó AbstractBase `, ach bainisteoir réamhshocraithe difriúil a sholáthar, is féidir leat an bainisteoir réamhshocraithe a sholáthar ar rang an linbh:</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\">ChildB</span><span class=\"p\">(</span><span class=\"n\">AbstractBase</span><span class=\"p\">):</span>\n    <span class=\"c1\"># ...</span>\n    <span class=\"c1\"># An explicit default manager.</span>\n    <span class=\"n\">default_manager</span> <span class=\"o\">=</span> <span class=\"n\">OtherManager</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>Anseo, is é <code class=\"docutils literal notranslate\"><span class=\"pre\">default_manager</span></code> an réamhshocraithe. Tá an bainisteoir <code class=\"docutils literal notranslate\"><span class=\"pre\">ruda</span></code> ar fáil fós, ós rud é go bhfuil sé oidhreachta, ach ní úsáidtear é mar réamhshocraithe.</p>\n<p>Faoi dheireadh don sampla seo, cuir i gcás gur mhaith leat bainisteoirí breise a chur le rang an linbh, ach bain úsáid as an réamhshocrú ó <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>AbstractBase <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>fós. Ní féidir leat an bainisteoir nua a chur go díreach i rang an linbh, mar go ndéanfadh sé sin an réamhshocrú agus bheadh ort na bainisteoirí go léir ón rang bonn teibí a áireamh go sainráite freisin. Is é an réiteach ná na bainisteoirí breise a chur i mbunaicme eile agus iad a thabhairt isteach san ordlathas oidhreacht* tar éis * na réamhshocruithe:</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\">ExtraManager</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\">extra_manager</span> <span class=\"o\">=</span> <span class=\"n\">OtherManager</span><span class=\"p\">()</span>\n\n    <span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Meta</span><span class=\"p\">:</span>\n        <span class=\"n\">abstract</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ChildC</span><span class=\"p\">(</span><span class=\"n\">AbstractBase</span><span class=\"p\">,</span> <span class=\"n\">ExtraManager</span><span class=\"p\">):</span>\n    <span class=\"c1\"># ...</span>\n    <span class=\"c1\"># Default manager is CustomManager, but OtherManager is</span>\n    <span class=\"c1\"># also available via the &quot;extra_manager&quot; attribute.</span>\n    <span class=\"k\">pass</span>\n</code></pre></div>\n<p>Tabhair faoi deara cé gur féidir leat* bainisteoir saincheaptha a shainiú ar an tsamhail teibí, ní féidir leat* aon mhodhanna a úsáid ag baint úsáide as an tsamhail teibí. Is é 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\">ClassA</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">do_something</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>tá sé dlíthiúil, 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=\"n\">AbstractBase</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">do_something</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>ardóidh sé eisceacht. Tá sé seo toisc go bhfuil sé i gceist le bainisteoirí loighic a chumhdú chun bailiúcháin rudaí a bhainistiú. Ós rud é nach féidir leat bailiúchán rudaí teibí a bheith agat, níl sé ciall a bheith ag bainistiú iad. Má tá feidhmiúlacht agat a bhaineann leis an tsamhail teibí, ba cheart duit an fheidhmiúlacht sin a chur i “modh statach” nó i “modh ranga” ar an tsamhail teibí.</p>\n</section>\n<section id=\"implementation-concerns\">\n<h3>Imeachtaí cur chun feidhme<a class=\"heading-anchor\" href=\"#implementation-concerns\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Cibé gnéithe a chuireann tú le do “Bainisteoir” saincheaptha, caithfidh sé a bheith indéanta cóip éadrom a dhéanamh de shampla <code class=\"docutils literal notranslate\"><span class=\"pre\">Bainiste</span></code>; ie, caithfidh an cód seo a leanas oibriú:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">import</span><span class=\"w\"> </span><span class=\"nn\">copy</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">manager</span> <span class=\"o\">=</span> <span class=\"n\">MyManager</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">my_copy</span> <span class=\"o\">=</span> <span class=\"n\">copy</span><span class=\"o\">.</span><span class=\"n\">copy</span><span class=\"p\">(</span><span class=\"n\">manager</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Déanann Django cóipeanna éadmhara de rudaí bainisteora le linn fiosruithe áirithe; mura féidir do Bhainisteoir a chóipeáil, teipeann ar</p>\n<p>Ní cheist é seo don chuid is mó de na bainisteoirí saincheaptha. Mura bhfuil tú ach modhanna simplí ag cur le do <code class=\"docutils literal notranslate\"><span class=\"pre\">Bainiste</span></code>, ní dócha go ndéanfaidh tú cásanna de do Bainisteoir ``gan chóipeáil gan aon ghnó. Mar sin féin, má tá tú ag dul i bhfeidhm ar ``__getattr__` nó modh príobháideach éigin eile de do réad <code class=\"docutils literal notranslate\"><span class=\"pre\">`Bainiste</span></code> a rialaíonn staid réada, ba cheart duit a chinntiú nach ndéanann tú difear do chumas do <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Bainisteoir <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>a chóipeáil.</p>\n</section>\n</section>","rootId":"managers","toc":[{"title":"Ainmneacha bainisteora","anchor":"manager-names","children":[]},{"title":"Bainisteoirí saincheaptha","anchor":"custom-managers","children":[{"title":"Modhanna bainisteora breise a chur leis","anchor":"adding-extra-manager-methods","children":[]},{"title":"“QuerySet” tosaigh bainisteora a mhodhnú","anchor":"modifying-a-manager-s-initial-queryset","children":[]},{"title":"Bainisteoirí réamhshoc","anchor":"default-managers","children":[]},{"title":"Bainisteoirí bonn","anchor":"base-managers","children":[{"title":"Bainisteoirí a úsáid le haghaidh rochtana gaolmhara","anchor":"using-managers-for-related-object-access","children":[]},{"title":"Ná scagadh aon torthaí sa chineál seo fo-aicme bainisteora","anchor":"don-t-filter-away-any-results-in-this-type-of-manager-subclass","children":[]}]},{"title":"Ag glaoch ar mhodhanna saincheaptha ``QuerySet` ón mbainisteoir","anchor":"calling-custom-queryset-methods-from-the-manager","children":[]},{"title":"Bainisteoir a chruthú le modhanna ``QuerySet`","anchor":"creating-a-manager-with-queryset-methods","children":[{"title":"``from_queryset () `","anchor":"from-queryset","children":[]}]},{"title":"Bainisteoirí saincheaptha agus oidhreacht samhail","anchor":"custom-managers-and-model-inheritance","children":[]},{"title":"Imeachtaí cur chun feidhme","anchor":"implementation-concerns","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/search","title":"Cuardach","url":"/ga/6.0/topics/db/search/"},"next":{"docname":"topics/db/sql","title":"Fiosrúcháin SQL amh a dhéanamh","url":"/ga/6.0/topics/db/sql/"},"formats":{"html":"/ga/6.0/topics/db/managers/","markdown":"/ga/6.0/topics/db/managers.md","json":"/ga/6.0/topics/db/managers.json"},"source":"https://github.com/django/django/blob/stable/6.0.x/docs/topics/db/managers.txt","official":"https://docs.djangoproject.com/ga/6.0/topics/db/managers/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}