{"title":"Bainisteoirí","version":"6.1","locale":"ga","docname":"topics/db/managers","url":"/ga/6.1/topics/db/managers/","canonical":"https://djangodocs.dev/ga/6.1/topics/db/managers/","summary":"Is é “Bainisteoir” an comhéadan trína gcuirtear oibríochtaí fiosrúcháin bunachar sonraí ar fáil do mhúnlaí Django.","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\">class</span> </em><span class=\"sig-name descname\">Manager</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\">Bainiste</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\">Bainiste</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\">Bainiste</code> leis an ainm <code class=\"docutils literal notranslate\">ruda</code> le gach rang samhail Django. Mar sin féin, más mian leat <code class=\"docutils literal notranslate\">ruda</code> a úsáid mar ainm réimse, nó más mian leat ainm seachas <code class=\"docutils literal notranslate\">ruda</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\">Bainiste</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=\"nn\">django.db</span> <span class=\"kn\">import</span> models\n\n\n<span class=\"k\">class</span> <span class=\"nc\">Person</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Model<span class=\"p\">):</span>\n    <span class=\"c1\"># ...</span>\n    people <span class=\"o\">=</span> models<span class=\"o\">.</span>Manager<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\">Person.Objects</code> eisceacht <code class=\"docutils literal notranslate\">AttributeError</code>, ach soláthróidh <code class=\"docutils literal notranslate\">Person.People.all () ``liosta de na rudaí ``Person</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\">Bainisteoir ``saincheaptha a úsáid i samhail áirithe tríd an rang bonn ``Bainiste</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\">Bainiste</code> a shaincheapadh: modhanna <code class=\"docutils literal notranslate\">Bainiste</code> breise a chur leis, agus/nó an QuerySet` tosaigh <code class=\"docutils literal notranslate\">Bainiste</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\">Bainiste</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\">Bainisteoir ``saincheaptha seo modh ``with_counts ()</code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.db</span> <span class=\"kn\">import</span> models\n<span class=\"kn\">from</span> <span class=\"nn\">django.db.models.functions</span> <span class=\"kn\">import</span> Coalesce\n\n\n<span class=\"k\">class</span> <span class=\"nc\">PollManager</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Manager<span class=\"p\">):</span>\n    <span class=\"k\">def</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>annotate<span class=\"p\">(</span>num_responses<span class=\"o\">=</span>Coalesce<span class=\"p\">(</span>models<span class=\"o\">.</span>Count<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=\"nc\">OpinionPoll</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Model<span class=\"p\">):</span>\n    question <span class=\"o\">=</span> models<span class=\"o\">.</span>CharField<span class=\"p\">(</span>max_length<span class=\"o\">=</span><span class=\"mi\">200</span><span class=\"p\">)</span>\n    objects <span class=\"o\">=</span> PollManager<span class=\"p\">()</span>\n\n\n<span class=\"k\">class</span> <span class=\"nc\">Response</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Model<span class=\"p\">):</span>\n    poll <span class=\"o\">=</span> models<span class=\"o\">.</span>ForeignKey<span class=\"p\">(</span>OpinionPoll<span class=\"p\">,</span> on_delete<span class=\"o\">=</span>models<span class=\"o\">.</span>CASCADE<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\">OpinionPoll.Objects.with_Counts () ``chun `QuerySet` de rudaí ``OpinionPoll</code> a fháil leis an tréith breise <code class=\"docutils literal notranslate\">num_responses</code> ceangailte.</p>\n<p>Is féidir le modh saincheaptha <code class=\"docutils literal notranslate\">Bainiste</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\">Bainiste</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\">Bainiste</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=\"nn\">django.db</span> <span class=\"kn\">import</span> models\n\n\n<span class=\"k\">class</span> <span class=\"nc\">Book</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Model<span class=\"p\">):</span>\n    title <span class=\"o\">=</span> models<span class=\"o\">.</span>CharField<span class=\"p\">(</span>max_length<span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n    author <span class=\"o\">=</span> models<span class=\"o\">.</span>CharField<span class=\"p\">(</span>max_length<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\">`Manager</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=\"nc\">DahlBookManager</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Manager<span class=\"p\">):</span>\n    <span class=\"k\">def</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>get_queryset<span class=\"p\">()</span><span class=\"o\">.</span>filter<span class=\"p\">(</span>author<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=\"nc\">Book</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Model<span class=\"p\">):</span>\n    title <span class=\"o\">=</span> models<span class=\"o\">.</span>CharField<span class=\"p\">(</span>max_length<span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n    author <span class=\"o\">=</span> models<span class=\"o\">.</span>CharField<span class=\"p\">(</span>max_length<span class=\"o\">=</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n\n    objects <span class=\"o\">=</span> models<span class=\"o\">.</span>Manager<span class=\"p\">()</span>  <span class=\"c1\"># The default manager.</span>\n    dahl_objects <span class=\"o\">=</span> DahlBookManager<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\">get_queryset () ``réad ``QuerySet</code>, is féidir leat <code class=\"docutils literal notranslate\">filter () ``,</code>, () <code class=\"docutils literal notranslate\">a úsáid agus na modhanna ``QuerySet</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>Book<span class=\"o\">.</span>dahl_objects<span class=\"o\">.</span>all<span class=\"p\">()</span>\nBook<span class=\"o\">.</span>dahl_objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>title<span class=\"o\">=</span><span class=\"s2\">&quot;Matilda&quot;</span><span class=\"p\">)</span>\nBook<span class=\"o\">.</span>dahl_objects<span class=\"o\">.</span>count<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=\"nc\">AuthorManager</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Manager<span class=\"p\">):</span>\n    <span class=\"k\">def</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>get_queryset<span class=\"p\">()</span><span class=\"o\">.</span>filter<span class=\"p\">(</span>role<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=\"nc\">EditorManager</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Manager<span class=\"p\">):</span>\n    <span class=\"k\">def</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>get_queryset<span class=\"p\">()</span><span class=\"o\">.</span>filter<span class=\"p\">(</span>role<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=\"nc\">Person</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Model<span class=\"p\">):</span>\n    first_name <span class=\"o\">=</span> models<span class=\"o\">.</span>CharField<span class=\"p\">(</span>max_length<span class=\"o\">=</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n    last_name <span class=\"o\">=</span> models<span class=\"o\">.</span>CharField<span class=\"p\">(</span>max_length<span class=\"o\">=</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n    role <span class=\"o\">=</span> models<span class=\"o\">.</span>CharField<span class=\"p\">(</span>max_length<span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">,</span> choices<span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;A&quot;</span><span class=\"p\">:</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=\"p\">(</span><span class=\"s2\">&quot;Editor&quot;</span><span class=\"p\">)})</span>\n    people <span class=\"o\">=</span> models<span class=\"o\">.</span>Manager<span class=\"p\">()</span>\n    authors <span class=\"o\">=</span> AuthorManager<span class=\"p\">()</span>\n    editors <span class=\"o\">=</span> EditorManager<span class=\"p\">()</span>\n</code></pre></div>\n<p>Ligeann an sampla seo duit <code class=\"docutils literal notranslate\">Person.Authors.all () ``, `Person.Editors.all ()</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\">Model.</span><span class=\"sig-name descname\">_default_manager</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\">Bainiste</code>, tabhair faoi deara go bhfuil stádas speisialta ag an gcéad <code class=\"docutils literal notranslate\">Bainisteoir ``Django (san ord ina sainmhínítear iad sa tsamhail). Léirmhíníonn Django an chéad ``Bainiste</code> a shainmhínítear i rang mar an “réamhshocraithe” <code class=\"docutils literal notranslate\">Bainiste</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\">ruda</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\">Model.</span><span class=\"sig-name descname\">_base_manager</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\">Model._base_manager</code> manager\nclass when accessing related objects (e.g. <code class=\"docutils literal notranslate\">choice.question</code>), not the\n<code class=\"docutils literal notranslate\">_default_manager</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\">deleted=true</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\">QuerySet` inrochtana go díreach ón ``Bainiste</code>, is amhlaidh amháin maidir leis na modhanna breise atá sainmhínithe ar <code class=\"docutils literal notranslate\">QuerySet</code> saincheaptha má chuireann tú i bhfeidhm iad ar an <code class=\"docutils literal notranslate\">Bainiste</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=\"nc\">PersonQuerySet</span><span class=\"p\">(</span>models<span class=\"o\">.</span>QuerySet<span class=\"p\">):</span>\n    <span class=\"k\">def</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>filter<span class=\"p\">(</span>role<span class=\"o\">=</span><span class=\"s2\">&quot;A&quot;</span><span class=\"p\">)</span>\n\n    <span class=\"k\">def</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>filter<span class=\"p\">(</span>role<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=\"nc\">PersonManager</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Manager<span class=\"p\">):</span>\n    <span class=\"k\">def</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> PersonQuerySet<span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"o\">.</span>model<span class=\"p\">,</span> using<span class=\"o\">=</span><span class=\"bp\">self</span><span class=\"o\">.</span>_db<span class=\"p\">)</span>\n\n    <span class=\"k\">def</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>get_queryset<span class=\"p\">()</span><span class=\"o\">.</span>authors<span class=\"p\">()</span>\n\n    <span class=\"k\">def</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>get_queryset<span class=\"p\">()</span><span class=\"o\">.</span>editors<span class=\"p\">()</span>\n\n\n<span class=\"k\">class</span> <span class=\"nc\">Person</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Model<span class=\"p\">):</span>\n    first_name <span class=\"o\">=</span> models<span class=\"o\">.</span>CharField<span class=\"p\">(</span>max_length<span class=\"o\">=</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n    last_name <span class=\"o\">=</span> models<span class=\"o\">.</span>CharField<span class=\"p\">(</span>max_length<span class=\"o\">=</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n    role <span class=\"o\">=</span> models<span class=\"o\">.</span>CharField<span class=\"p\">(</span>max_length<span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">,</span> choices<span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;A&quot;</span><span class=\"p\">:</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=\"p\">(</span><span class=\"s2\">&quot;Editor&quot;</span><span class=\"p\">)})</span>\n    people <span class=\"o\">=</span> PersonManager<span class=\"p\">()</span>\n</code></pre></div>\n<p>Ligeann an sampla seo duit glaoch ar <code class=\"docutils literal notranslate\">údair () ``agus `eagarthóirí ()</code> araon ón mbainisteoir <code class=\"docutils literal notranslate\">Person.People</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\">QuerySet</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=\"nc\">Person</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Model<span class=\"p\">):</span>\n    <span class=\"o\">...</span>\n    people <span class=\"o\">=</span> PersonQuerySet<span class=\"o\">.</span>as_manager<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\">Bainiste</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\">QuerySet` ag leibhéal ``Bainiste</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\">queryset_only</code> socraithe go <code class=\"docutils literal notranslate\">False</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\">queryset_only</code> atá socraithe go <code class=\"docutils literal notranslate\">True</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=\"nc\">CustomQuerySet</span><span class=\"p\">(</span>models<span class=\"o\">.</span>QuerySet<span class=\"p\">):</span>\n    <span class=\"c1\"># Available on both Manager and QuerySet.</span>\n    <span class=\"k\">def</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=\"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=\"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    opted_out_public_method<span class=\"o\">.</span>queryset_only <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=\"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    _opted_in_private_method<span class=\"o\">.</span>queryset_only <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\">classmethod</span> </em><span class=\"sig-name descname\">from_queryset</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">queryset_class</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\">Bainiste</code> saincheaptha agus <code class=\"docutils literal notranslate\">QuerySet` saincheaptha araon. Is féidir leat é sin a dhéanamh trí ghlaoch ar `Manager.from_querySet () ``a thugann seach*fo-aicme* de do bhonn ``Bainiste</code> le cóip de na modhanna saincheaptha <code class=\"docutils literal notranslate\">QuerySet</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=\"nc\">CustomManager</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Manager<span class=\"p\">):</span>\n    <span class=\"k\">def</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=\"nc\">CustomQuerySet</span><span class=\"p\">(</span>models<span class=\"o\">.</span>QuerySet<span class=\"p\">):</span>\n    <span class=\"k\">def</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=\"nc\">MyModel</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Model<span class=\"p\">):</span>\n    objects <span class=\"o\">=</span> CustomManager<span class=\"o\">.</span>from_queryset<span class=\"p\">(</span>CustomQuerySet<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>MyManager <span class=\"o\">=</span> CustomManager<span class=\"o\">.</span>from_queryset<span class=\"p\">(</span>CustomQuerySet<span class=\"p\">)</span>\n\n\n<span class=\"k\">class</span> <span class=\"nc\">MyModel</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Model<span class=\"p\">):</span>\n    objects <span class=\"o\">=</span> MyManager<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=\"nc\">AbstractBase</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Model<span class=\"p\">):</span>\n    <span class=\"c1\"># ...</span>\n    objects <span class=\"o\">=</span> CustomManager<span class=\"p\">()</span>\n\n    <span class=\"k\">class</span> <span class=\"nc\">Meta</span><span class=\"p\">:</span>\n        abstract <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=\"nc\">ChildA</span><span class=\"p\">(</span>AbstractBase<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=\"nc\">ChildB</span><span class=\"p\">(</span>AbstractBase<span class=\"p\">):</span>\n    <span class=\"c1\"># ...</span>\n    <span class=\"c1\"># An explicit default manager.</span>\n    default_manager <span class=\"o\">=</span> OtherManager<span class=\"p\">()</span>\n</code></pre></div>\n<p>Anseo, is é <code class=\"docutils literal notranslate\">default_manager</code> an réamhshocraithe. Tá an bainisteoir <code class=\"docutils literal notranslate\">ruda</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=\"nc\">ExtraManager</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Model<span class=\"p\">):</span>\n    extra_manager <span class=\"o\">=</span> OtherManager<span class=\"p\">()</span>\n\n    <span class=\"k\">class</span> <span class=\"nc\">Meta</span><span class=\"p\">:</span>\n        abstract <span class=\"o\">=</span> <span class=\"kc\">True</span>\n\n\n<span class=\"k\">class</span> <span class=\"nc\">ChildC</span><span class=\"p\">(</span>AbstractBase<span class=\"p\">,</span> ExtraManager<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>ClassA<span class=\"o\">.</span>objects<span class=\"o\">.</span>do_something<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>AbstractBase<span class=\"o\">.</span>objects<span class=\"o\">.</span>do_something<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\">Bainiste</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=\"nn\">copy</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>manager <span class=\"o\">=</span> MyManager<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>my_copy <span class=\"o\">=</span> copy<span class=\"o\">.</span>copy<span class=\"p\">(</span>manager<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\">Bainiste</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\">`Bainiste</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.1/topics/"},{"docname":"topics/db/index","title":"Samhlacha agus bunachair sonraí","url":"/ga/6.1/topics/db/"}],"prev":{"docname":"topics/db/search","title":"Cuardach","url":"/ga/6.1/topics/db/search/"},"next":{"docname":"topics/db/sql","title":"Fiosrúcháin SQL amh a dhéanamh","url":"/ga/6.1/topics/db/sql/"},"formats":{"html":"/ga/6.1/topics/db/managers/","markdown":"/ga/6.1/topics/db/managers.md","json":"/ga/6.1/topics/db/managers.json"},"source":"https://github.com/django/django/blob/stable/6.1.x/docs/topics/db/managers.txt","official":"https://docs.djangoproject.com/ga/6.1/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"]}