{"title":"Samhla","version":"6.0","locale":"ga","docname":"topics/db/models","url":"/ga/6.0/topics/db/models/","canonical":"https://djangodocs.dev/ga/6.0/topics/db/models/","summary":"Is é samhail an fhoinse aonair, cinntitheach faisnéise faoi do shonraí. Tá réimsí agus iompraíochtaí riachtanacha ann na sonraí atá á stóráil agat. Go ginearálta,…","html":"<span id=\"models\"></span><h1>Samhla<a class=\"heading-anchor\" href=\"#module-django.db.models\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Is é samhail an fhoinse aonair, cinntitheach faisnéise faoi do shonraí. Tá réimsí agus iompraíochtaí riachtanacha ann na sonraí atá á stóráil agat. Go ginearálta, déanann gach samhail mapáil chuig tábla bunachar sonraí amháin.</p>\n<p>Na buneilimintí:</p>\n<ul class=\"simple\">\n<li><p>Is aicme Python é gach samhail a fho-aicmi:class: Django.db.Models.Model.</p></li>\n<li><p>Léiríonn gach tréith den tsamhail réimse bunachar sonraí.</p></li>\n<li><p>Leis seo go léir, tugann Django API rochtana bunachar sonraí a ghintear go huathoibríoch duit; féach: doc: /topics/db/queries.</p></li>\n</ul>\n<section id=\"quick-example\">\n<h2>Sampla tapa<a class=\"heading-anchor\" href=\"#quick-example\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Sainmhíníonn an tsamhail sampla seo <code class=\"docutils literal notranslate\"><span class=\"pre\">Person</span></code>, a bhfuil <code class=\"docutils literal notranslate\"><span class=\"pre\">chéad_ainm</span></code> agus <code class=\"docutils literal notranslate\"><span class=\"pre\">ainm_deiride</span></code> aige:</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=\"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\">30</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\">30</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Is réimsí den tsamhail iad <code class=\"docutils literal notranslate\"><span class=\"pre\">chéad_ainm</span></code> agus <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>ainm_deiridh <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>. Sonraítear gach réimse mar thréith aicme, agus léarscálann gach tréith chuig colún bunachar sonraí.</p>\n<p>Chruthódh an tsamhail “Duine” thuas tábla bunachar sonraí mar seo:</p>\n<div class=\"code-block\" data-language=\"sql\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">SQL</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"SQL code\"><code><span class=\"k\">CREATE</span><span class=\"w\"> </span><span class=\"k\">TABLE</span><span class=\"w\"> </span><span class=\"n\">myapp_person</span><span class=\"w\"> </span><span class=\"p\">(</span>\n<span class=\"w\">    </span><span class=\"ss\">&quot;id&quot;</span><span class=\"w\"> </span><span class=\"nb\">bigint</span><span class=\"w\"> </span><span class=\"k\">NOT</span><span class=\"w\"> </span><span class=\"k\">NULL</span><span class=\"w\"> </span><span class=\"k\">PRIMARY</span><span class=\"w\"> </span><span class=\"k\">KEY</span><span class=\"w\"> </span><span class=\"k\">GENERATED</span><span class=\"w\"> </span><span class=\"k\">BY</span><span class=\"w\"> </span><span class=\"k\">DEFAULT</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"k\">IDENTITY</span><span class=\"p\">,</span>\n<span class=\"w\">    </span><span class=\"ss\">&quot;first_name&quot;</span><span class=\"w\"> </span><span class=\"nb\">varchar</span><span class=\"p\">(</span><span class=\"mi\">30</span><span class=\"p\">)</span><span class=\"w\"> </span><span class=\"k\">NOT</span><span class=\"w\"> </span><span class=\"k\">NULL</span><span class=\"p\">,</span>\n<span class=\"w\">    </span><span class=\"ss\">&quot;last_name&quot;</span><span class=\"w\"> </span><span class=\"nb\">varchar</span><span class=\"p\">(</span><span class=\"mi\">30</span><span class=\"p\">)</span><span class=\"w\"> </span><span class=\"k\">NOT</span><span class=\"w\"> </span><span class=\"k\">NULL</span>\n<span class=\"p\">);</span>\n</code></pre></div>\n<p>Roinnt nótaí teicniúla:</p>\n<ul class=\"simple\">\n<li><p>Díorthaítear ainm an tábla, myapp_person`, go huathoibríoch ó roinnt meiteashonraí samhail ach is féidir é a shárú. Féach: Ref: table-names le haghaidh tuilleadh sonraí.</p></li>\n<li><p>Cuirtear réimse <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>id <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>leis go huathoibríoch, ach is féidir an t-iompar seo a shárú. Féach: tagairt: <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">`</span></a>uathoibrí-phríomh-eochair-réimsí <a href=\"#id7\"><span class=\"problematic\" id=\"id8\">`</span></a>.</p></li>\n<li><p>Tá an SQL CREATE TABLE` sa sampla seo formáidithe ag baint úsáide as comhréiteach PostgreSQL, ach is fiú a thabhairt faoi deara go n-úsáideann Django SQL atá curtha in oiriúint don chúlcheann bunachar sonraí a shonraítear i do: doc: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>comhad &lt;/topics/settings&gt; socruithe <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>.</p></li>\n</ul>\n</section>\n<section id=\"using-models\">\n<h2>Múnlaí a úsáid<a class=\"heading-anchor\" href=\"#using-models\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Nuair a bheidh do mhúnlaí sainmhínithe agat, ní mór duit a rá le Django go bhfuil tú chun * úsáid* na samhlacha sin. Déan é seo trí do chomhad socruithe a chur in eagar agus an socrú:setting: INSTALLED_APPS a athrú chun ainm an mhodúil ina bhfuil do models.py` a chur leis.</p>\n<p>&lt;startapp&gt;Mar shampla, má tá na samhlacha d'iarratais ina gcónaí sa mhodúl <code class=\"docutils literal notranslate\"><span class=\"pre\">myapp.models</span></code> (struchtúr an phacáiste a chruthaítear d'iarratas leis an scripte:djadmin: manage.py startapp `), ba chóir :setting: `INSTALLED_APPS léamh, go páirteach:</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\">INSTALLED_APPS</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"c1\"># ...</span>\n    <span class=\"s2\">&quot;myapp&quot;</span><span class=\"p\">,</span>\n    <span class=\"c1\"># ...</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>&lt;migrate&gt;&lt;makemigrations&gt;Nuair a chuireann tú aipeanna nua chuig: setting: INSTALLED_APPS, bí cinnte rith: djadmin: manage.py migration `, ag déanamh imirce dóibh go roghnach le: djadmin: `manage.py makemigrations.</p>\n</section>\n<section id=\"fields\">\n<h2>Réimsí<a class=\"heading-anchor\" href=\"#fields\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Is é an chuid is tábhachtaí de mhúnla - agus an t-aon chuid riachtanach de mhúnla - liosta na réimsí bunachar sonraí a shainmhíníonn sé. Sonraítear réimsí de réir tréithe ranga. Bí cúramach gan ainmneacha réimse a roghnú atá ag teacht ar choinníoll leis na:doc: models API cosúil le <code class=\"docutils literal notranslate\"><span class=\"pre\">glan</span> <span class=\"pre\">``,</span> <span class=\"pre\">`shábháil</span></code> &lt;/ref/models/instances&gt;, nó <code class=\"docutils literal notranslate\"><span class=\"pre\">scrios</span></code>.</p>\n<p>Sampla:</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\">Musician</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\">instrument</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\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Album</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\">artist</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\">Musician</span><span class=\"p\">,</span> <span class=\"n\">on_delete</span><span class=\"o\">=</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CASCADE</span><span class=\"p\">)</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n    <span class=\"n\">release_date</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">DateField</span><span class=\"p\">()</span>\n    <span class=\"n\">num_stars</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">IntegerField</span><span class=\"p\">()</span>\n</code></pre></div>\n<section id=\"field-types\">\n<h3>Cineálacha réimse<a class=\"heading-anchor\" href=\"#field-types\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Ba chóir go mbeadh gach réimse i do mhúnla mar shampla den rang oiriúna:class: ~Django.db.Models.Field. Úsáideann Django na cineálacha ranga allamuigh chun cúpla rud a chinneadh:</p>\n<ul class=\"simple\">\n<li><p>An cineál colún, a insíonn don bhunachar sonraí cén cineál sonraí atá le stóráil (m.sh. <code class=\"docutils literal notranslate\"><span class=\"pre\">INTEGER</span></code>, VARCHAR`, TEXT`).</p></li>\n<li><p>&lt;/ref/forms/widgets&gt; &lt;input type=&quot;text&quot;&gt;&lt;select&gt;An réamhshocraithe HTML:doc: giuirléid le húsáid agus réimse foirme á rindreáil (m.sh. <code class=\"docutils literal notranslate\"><span class=\"pre\">,</span></code> , <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>).</p></li>\n<li><p>Na ceanglais bailíochtaithe íosta, a úsáidtear i riarachán Django agus i bhfoirmeacha a ghintear go huathoibríoch.</p></li>\n</ul>\n<p>&lt;model-field-types&gt;Loingíonn Django le mórán cineálacha réimse ionsuite; is féidir leat an liosta iomlán a fháil in:ref: tagairt réimse samhail `. Is féidir leat do réimsí féin a scríobh go héasca mura ndéanann cinn ionsuite Django an cleas; féach: doc: `/howto/custom-model-fields.</p>\n</section>\n<section id=\"field-options\">\n<h3>Roghanna réimse<a class=\"heading-anchor\" href=\"#field-options\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>&lt;model-field-types&gt;Glacann gach réimse sraith áirithe d'argóintí réimsiúnacha (doiciméadaithe in:ref: tagairt réimse samhail `). Mar shampla, éilíonn :class: `~django.db.models.charfield (agus a fho-aicmí) a:attr: ~django.db.models.charfield.max_Length argóint a shonraíonn méid an réimse bunachar sonraí <code class=\"docutils literal notranslate\"><span class=\"pre\">VARCHAR</span></code> a úsáidtear chun na sonraí a stóráil.</p>\n<p>Tá sraith argóintí coitianta ar fáil do gach cineál réimse freisin. Tá gach ceann roghnach. Mínítear iad go hiomlán in:ref: tagairt &lt;common-model-field-options&gt;, ach seo achoimre tapa ar na cinn is minice a úsáidtear:</p>\n<dl>\n<dt><a class=\"reference internal\" href=\"/ga/6.0/ref/models/fields/#django.db.models.Field.null\" title=\"django.db.models.Field.null\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">null</span></code></a></dt><dd><p>Má tá <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, stóráilfidh Django luachanna folmha mar <code class=\"docutils literal notranslate\"><span class=\"pre\">NULL</span></code> sa bhunachar sonraí. Is é “False” réamhshocraithe.</p>\n</dd>\n<dt><a class=\"reference internal\" href=\"/ga/6.0/ref/models/fields/#django.db.models.Field.blank\" title=\"django.db.models.Field.blank\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">blank</span></code></a></dt><dd><p>Má tá “Fíor”, ceadaítear don réimse a bheith bán. Is é “False” réamhshocraithe.</p>\n<p>Tabhair faoi deara go bhfuil sé seo difriúil ná: attr: ~Field.null. :attr: ~Field.null a bhaineann le bunachar sonraí amháin, áit a bhaineann le bailíochtú: attr: ~Field.blank. Má tá réimse ag: attr: Blank=true &lt;Field.blank&gt;, ceadóidh bailíochtú foirm luach folamh a iontráil. Má tá réimse ag: attr: Blank=false &lt;Field.blank&gt;, beidh an réimse ag teastáil.</p>\n</dd>\n<dt><a class=\"reference internal\" href=\"/ga/6.0/ref/models/fields/#django.db.models.Field.choices\" title=\"django.db.models.Field.choices\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">choices</span></code></a></dt><dd><p>A: Téarma: seicheamh de thúpaí 2-luach, a: term: maping, an:ref: cineál áireamha, nó inghlaonta (nach bhfuil súil ag aon argóintí agus a thugann &lt;field-choices-enum-types&gt;aon cheann de na formáidí roimhe seo ar ais), le húsáid mar roghanna don réimse seo. Má thugtar é seo, is bosca roghnaithe é an giuirléid fhoirme réamhshocraithe in ionad an réimse téacs caighdeánach agus teorannfaidh sé roghanna leis na roghanna a thugtar.</p>\n<p>Breathnaíonn liosta roghanna mar seo:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">YEAR_IN_SCHOOL_CHOICES</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"p\">(</span><span class=\"s2\">&quot;FR&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Freshman&quot;</span><span class=\"p\">),</span>\n    <span class=\"p\">(</span><span class=\"s2\">&quot;SO&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Sophomore&quot;</span><span class=\"p\">),</span>\n    <span class=\"p\">(</span><span class=\"s2\">&quot;JR&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Junior&quot;</span><span class=\"p\">),</span>\n    <span class=\"p\">(</span><span class=\"s2\">&quot;SR&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Senior&quot;</span><span class=\"p\">),</span>\n    <span class=\"p\">(</span><span class=\"s2\">&quot;GR&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Graduate&quot;</span><span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Cruthaítear imirce nua gach uair a athraíonn ord na “roghanna”.</p>\n</aside>\n<p>Is é an chéad ghné i ngach tuple an luach a stóráilfear sa bhunachar sonraí. Taispeántar an dara gné ag giuirléid fhoirme an réimse.</p>\n<p>Mar gheall ar shampla samhail, is féidir rochtain a fháil ar an luach taispeána do réimse le <code class=\"docutils literal notranslate\"><span class=\"pre\">roghnaí</span></code> ag baint úsáide as an modh: meth: ~django.db.models.model.get_foo_display. 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=\"n\">SHIRT_SIZES</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n        <span class=\"s2\">&quot;S&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Small&quot;</span><span class=\"p\">,</span>\n        <span class=\"s2\">&quot;M&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Medium&quot;</span><span class=\"p\">,</span>\n        <span class=\"s2\">&quot;L&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Large&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">}</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">60</span><span class=\"p\">)</span>\n    <span class=\"n\">shirt_size</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=\"n\">SHIRT_SIZES</span><span class=\"p\">)</span>\n</code></pre></div>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">p</span> <span class=\"o\">=</span> <span class=\"n\">Person</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Fred Flintstone&quot;</span><span class=\"p\">,</span> <span class=\"n\">shirt_size</span><span class=\"o\">=</span><span class=\"s2\">&quot;L&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">p</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">p</span><span class=\"o\">.</span><span class=\"n\">shirt_size</span>\n<span class=\"go\">&#39;L&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">p</span><span class=\"o\">.</span><span class=\"n\">get_shirt_size_display</span><span class=\"p\">()</span>\n<span class=\"go\">&#39;Large&#39;</span>\n</code></pre></div>\n<p>Is féidir leat ranganna áireamh a úsáid freisin chun “roghanna” a shainiú ar bhealach gonta:</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\">Runner</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\">MedalType</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">TextChoices</span><span class=\"p\">(</span><span class=\"s2\">&quot;MedalType&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;GOLD SILVER BRONZE&quot;</span><span class=\"p\">)</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">60</span><span class=\"p\">)</span>\n    <span class=\"n\">medal</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\">blank</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span> <span class=\"n\">choices</span><span class=\"o\">=</span><span class=\"n\">MedalType</span><span class=\"p\">,</span> <span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">10</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>&lt;field-choices&gt;Tá samplaí breise ar fáil in:ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>tagairt réimse samhail <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>.</p>\n</dd>\n<dt><a class=\"reference internal\" href=\"/ga/6.0/ref/models/fields/#django.db.models.Field.default\" title=\"django.db.models.Field.default\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">default</span></code></a></dt><dd><p>An luach réamhshocraithe don réimse. Is féidir leis seo a bheith ina luach nó ina réad inghlaonta. Má tá sé inghlaoch, glaofar air gach uair a chruthaítear réad nua.</p>\n</dd>\n<dt><a class=\"reference internal\" href=\"/ga/6.0/ref/models/fields/#django.db.models.Field.db_default\" title=\"django.db.models.Field.db_default\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">db_default</span></code></a></dt><dd><p>An luach réamhshocraithe ríofa bunachar sonraí don réimse. Is féidir leis seo a bheith ina luach litriúil nó ina fheidhm bunachar sonraí.</p>\n<p>Má tá db_default` agus:attr: Field.default araon socraithe, tabharfaidh <code class=\"docutils literal notranslate\"><span class=\"pre\">default</span></code> tosaíocht agus cásanna á chruthú i gcód Python. Socrófar <code class=\"docutils literal notranslate\"><span class=\"pre\">db_default</span></code> fós ag leibhéal an bhunachar sonraí agus úsáidfear é agus sraitheanna á chur isteach lasmuigh den ORM nó nuair a chuirtear réimse nua i imirce.</p>\n</dd>\n<dt><a class=\"reference internal\" href=\"/ga/6.0/ref/models/fields/#django.db.models.Field.help_text\" title=\"django.db.models.Field.help_text\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">help_text</span></code></a></dt><dd><p>Téacs breise “cabhrach” le taispeáint leis an ngiuirléid fhoirme. Tá sé úsáideach le haghaidh doiciméadú fiú mura n-úsáidtear do réimse ar fhoirm.</p>\n</dd>\n<dt><a class=\"reference internal\" href=\"/ga/6.0/ref/models/fields/#django.db.models.Field.primary_key\" title=\"django.db.models.Field.primary_key\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">primary_key</span></code></a></dt><dd><p>Má tá <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, is é an réimse seo an príomh-eochair don tsamhail.</p>\n<p>If you don't specify <a class=\"reference internal\" href=\"/ga/6.0/ref/models/fields/#django.db.models.Field.primary_key\" title=\"django.db.models.Field.primary_key\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">primary_key=True</span></code></a> for\nany fields in your model, Django will automatically add a field to hold\nthe primary key, so you don't need to set\n<a class=\"reference internal\" href=\"/ga/6.0/ref/models/fields/#django.db.models.Field.primary_key\" title=\"django.db.models.Field.primary_key\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">primary_key=True</span></code></a> on any of your fields\nunless you want to override the default primary-key behavior. For more,\nsee <a class=\"reference internal\" href=\"#automatic-primary-key-fields\"><span class=\"std std-ref\">Príomhréimsí uathoibríoch</span></a>.</p>\n<p>Tá an príomhréimse léite amháin. Má athraíonn tú luach an phríomh-eochair ar réad atá ann cheana agus ansin é a shábháil, cruthófar réad nua in éineacht leis an seancheann. 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\">Fruit</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">,</span> <span class=\"n\">primary_key</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n</code></pre></div>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">fruit</span> <span class=\"o\">=</span> <span class=\"n\">Fruit</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Apple&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">fruit</span><span class=\"o\">.</span><span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;Pear&quot;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">fruit</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Fruit</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">values_list</span><span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">,</span> <span class=\"n\">flat</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet [&#39;Apple&#39;, &#39;Pear&#39;]&gt;</span>\n</code></pre></div>\n</dd>\n<dt><a class=\"reference internal\" href=\"/ga/6.0/ref/models/fields/#django.db.models.Field.unique\" title=\"django.db.models.Field.unique\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">unique</span></code></a></dt><dd><p>Má tá “Fíor”, caithfidh an réimse seo a bheith uathúil ar fud an tábla.</p>\n</dd>\n</dl>\n<p>Arís, níl iad seo ach tuairiscí gairid ar na roghanna réimse is coitianta. &lt;common-model-field-options&gt;Is féidir sonraí iomlána a fháil in:ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>tagairt rogha réimse samhail choiteann <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>.</p>\n</section>\n<section id=\"automatic-primary-key-fields\">\n<span id=\"id1\"></span><h3>Príomhréimsí uathoibríoch<a class=\"heading-anchor\" href=\"#automatic-primary-key-fields\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>&lt;django.apps.AppConfig.default_auto_field&gt;De réir réamhshocraithe, tugann Django eochair phríomh-mhéadaithe uathoibríoch do gach samhail leis an gcineál a shonraítear in aghaidh an aip in:attr: appconfig.default_AUTO_FIELD nó ar fud an domhain sa socrú:: DEFAULT_AUTO_FIELD. 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=\"nb\">id</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">BigAutoField</span><span class=\"p\">(</span><span class=\"n\">primary_key</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>&lt;Field.primary_key&gt;Más mian leat eochair phríomhúil saincheaptha a shonrú, sonraigh: attr: primary_key=True `ar cheann de do réimsí. Má fheiceann Django go bhfuil tú socraithe go sainráite: attr: `Field.primary_key, ní chuirfidh sé an colún id` uathoibríoch leis.</p>\n<p>Éilíonn gach samhail réimse amháin go díreach: attr: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>primary_key=True &lt;Field.primary_key&gt;`(dearbhaithe go sainráite nó cuireadh leis go huathoibríoch).</p>\n</section>\n<section id=\"verbose-field-names\">\n<span id=\"id2\"></span><h3>Ainmneacha réimse Verbose<a class=\"heading-anchor\" href=\"#verbose-field-names\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Glacann gach cineál réimse, ach amháin dó:class: ~django.db.models.foreignKey, :class: ~django.db.models.manyToManyField agus:class: ~django.db.models.onetoonefield, argóint roghnach an chéad phoist - ainm fhíorúil. Mura dtugtar an t-ainm fhíorúil, cruthóidh Django é go huathoibríoch ag baint úsáide as ainm tréith an réimse, ag athrú béim go spásanna.</p>\n<p>Sa sampla seo, is é <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>&quot;céadainm an duine” <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>an t-ainm fhíoróideach:</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\">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=\"s2\">&quot;person&#39;s first name&quot;</span><span class=\"p\">,</span> <span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">30</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Sa sampla seo, is é <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;céadainm&quot;</span></code> an t-ainm eolach:</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\">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\">30</span><span class=\"p\">)</span>\n</code></pre></div>\n<p><a class=\"reference internal\" href=\"/ga/6.0/ref/models/fields/#django.db.models.ForeignKey\" title=\"django.db.models.ForeignKey\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code></a>,\n<a class=\"reference internal\" href=\"/ga/6.0/ref/models/fields/#django.db.models.ManyToManyField\" title=\"django.db.models.ManyToManyField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code></a> and\n<a class=\"reference internal\" href=\"/ga/6.0/ref/models/fields/#django.db.models.OneToOneField\" title=\"django.db.models.OneToOneField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">OneToOneField</span></code></a> require the first argument to be a\nmodel class, so use the <a class=\"reference internal\" href=\"/ga/6.0/ref/models/fields/#django.db.models.Field.verbose_name\" title=\"django.db.models.Field.verbose_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">verbose_name</span></code></a> keyword argument:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">poll</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ForeignKey</span><span class=\"p\">(</span>\n    <span class=\"n\">Poll</span><span class=\"p\">,</span>\n    <span class=\"n\">on_delete</span><span class=\"o\">=</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CASCADE</span><span class=\"p\">,</span>\n    <span class=\"n\">verbose_name</span><span class=\"o\">=</span><span class=\"s2\">&quot;the related poll&quot;</span><span class=\"p\">,</span>\n<span class=\"p\">)</span>\n<span class=\"n\">sites</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ManyToManyField</span><span class=\"p\">(</span><span class=\"n\">Site</span><span class=\"p\">,</span> <span class=\"n\">verbose_name</span><span class=\"o\">=</span><span class=\"s2\">&quot;list of sites&quot;</span><span class=\"p\">)</span>\n<span class=\"n\">place</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">OneToOneField</span><span class=\"p\">(</span>\n    <span class=\"n\">Place</span><span class=\"p\">,</span>\n    <span class=\"n\">on_delete</span><span class=\"o\">=</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CASCADE</span><span class=\"p\">,</span>\n    <span class=\"n\">verbose_name</span><span class=\"o\">=</span><span class=\"s2\">&quot;related place&quot;</span><span class=\"p\">,</span>\n<span class=\"p\">)</span>\n</code></pre></div>\n<p>Ní hé an coinbhinsiún chun an chéad litir den: attr: ~field.verbose_name a chaipitliú. Déanfaidh Django caipitliú go huathoibríoch an chéad litir nuair is gá dó.</p>\n</section>\n<section id=\"relationships\">\n<h3>Caidrimh<a class=\"heading-anchor\" href=\"#relationships\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Is léir go bhfuil cumhacht na mbunachar sonraí coibhneasta ná táblaí a bhaineann lena chéile. Cuireann Django bealaí ar fáil chun na trí chineál caidrimh bunachar sonraí is coitianta a shainiú: go leor le duine, go leor agus duine le duine.</p>\n<section id=\"many-to-one-relationships\">\n<h4>Caidrimh go leor le duine<a class=\"heading-anchor\" href=\"#many-to-one-relationships\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Chun caidreamh go leor le duine a shainiú, bain úsáid as: class: Django.db.Models.ForeignKey. Úsáideann tú é díreach cosúil le haon chineál eile: class: ~django.db.models.field: tríd é a áireamh mar thréith aicme de do mhúnla.</p>\n<p><a class=\"reference internal\" href=\"/ga/6.0/ref/models/fields/#django.db.models.ForeignKey\" title=\"django.db.models.ForeignKey\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code></a> requires a positional argument: the class\nto which the model is related.</p>\n<p>Mar shampla, má tá “Monaróir” ag samhail <code class=\"docutils literal notranslate\"><span class=\"pre\">Carr`</span> <span class=\"pre\">-</span> <span class=\"pre\">is</span> <span class=\"pre\">é</span> <span class=\"pre\">sin,</span> <span class=\"pre\">déanann</span> <span class=\"pre\">``Monaróir</span> <span class=\"pre\">``gluaisteáin</span> <span class=\"pre\">iolracha</span> <span class=\"pre\">ach</span> <span class=\"pre\">níl</span> <span class=\"pre\">ach</span> <span class=\"pre\">``Monaróir</span></code> amháin ag gach <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Carr` - bain úsáid as na sainmhínithe seo a leanas:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Manufacturer</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=\"k\">pass</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Car</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\">manufacturer</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\">Manufacturer</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>&lt;ref-foreignkey&gt;Is féidir leat freisin: ref: caidrimh athshlánacha &lt;recursive-relationships&gt;`a chruthú (réad a bhfuil caidreamh go leor le duine leis féin) agus:ref: `caidrimh le samhlacha nach bhfuil sainmhínithe fós; féach:ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>tagairt réimse an tsamhail &lt;lazy-relationships&gt;`le haghaidh sonraí.</p>\n<p>Moltar, ach ní gá, go mbeidh ainm a: class: ~Django.db.Models.ForeignKey réimse (<a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>monaróir` sa sampla thuas) ainm an tsamhail, litreacha beaga. Is féidir leat glaoch ar an réimse cibé rud is mian leat. 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\">Car</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\">company_that_makes_it</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ForeignKey</span><span class=\"p\">(</span>\n        <span class=\"n\">Manufacturer</span><span class=\"p\">,</span>\n        <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=\"p\">)</span>\n    <span class=\"c1\"># ...</span>\n</code></pre></div>\n<aside class=\"admonition admonition-seealso\">\n<p class=\"admonition-title\">See also</p>\n<p>&lt;foreign-key-arguments&gt;Glacann réimsí: Class: ~Django.db.Models.ForeignKey le roinnt argóintí breise a mhínítear in:ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>tagairt réimse an tsamhail <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>. Cuidíonn na roghanna seo le sainmhíniú conas ba chóir don chaidreamh a bheith ag obair; tá gach</p>\n<p>&lt;backwards-related-objects&gt;Le haghaidh sonraí maidir le rochtain a fháil ar rudaí a bhaineann le cúltaca, féach an:ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>Sampla caidrimh ar chúl a leanúint <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>.</p>\n<p>Le haghaidh cód samplach, féach an:doc: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>Sampla samhail caidrimh go duine '. &lt;/topics/db/examples/many_to_one&gt;</p>\n</aside>\n</section>\n<section id=\"many-to-many-relationships\">\n<h4>Caidrimh go leor<a class=\"heading-anchor\" href=\"#many-to-many-relationships\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Chun caidreamh go leor a shainiú, bain úsáid as: class: ~django.db.models.manyToManyField. Úsáideann tú é díreach cosúil le haon chineál eile: class: ~django.db.models.field: tríd é a áireamh mar thréith aicme de do mhúnla.</p>\n<p><a class=\"reference internal\" href=\"/ga/6.0/ref/models/fields/#django.db.models.ManyToManyField\" title=\"django.db.models.ManyToManyField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code></a> requires a positional argument: the\nclass to which the model is related.</p>\n<p>Mar shampla, má tá rudaí iolracha <code class=\"docutils literal notranslate\"><span class=\"pre\">`Topping</span></code> ag Pizza` - is é sin, is féidir le <code class=\"docutils literal notranslate\"><span class=\"pre\">Topping</span></code> a bheith ar phíosaí iolracha agus go bhfuil iolracha barrachtaí ag gach <code class=\"docutils literal notranslate\"><span class=\"pre\">Pizza</span></code> - seo an chaoi a d'fhéadfá a léiriú 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=\"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\">Topping</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=\"k\">pass</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Pizza</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\">toppings</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ManyToManyField</span><span class=\"p\">(</span><span class=\"n\">Topping</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>&lt;lazy-relationships&gt;Mar atá le: class: ~django.db.Models.ForeignKey, is féidir leat a chruthú freisin: ref: caidrimh athshlánacha `(réad a bhfuil gaol go leor acu leis féin) agus:ref: `caidrimh le samhlacha nach bhfuil sainmhínithe fós&lt;recursive-relationships&gt;.</p>\n<p>Moltar, ach ní gá, go mbeadh ainm a: class: ~django.db.models.manyToManyField (<code class=\"docutils literal notranslate\"><span class=\"pre\">toppings</span></code> sa sampla thuas) ina iolra ag cur síos ar an tsraith rudaí samhail gaolmhara.</p>\n<p>Is cuma cén tsamhail aige: aicme: ~django.db.models.manyTomanyField, ach níor cheart duit é a chur ach i gceann de na samhlacha - ní an dá cheann.</p>\n<p>Go ginearálta, ba chóir go rachaidh cásanna :class: ~django.db.models.manyToManyField isteach sa réad atá le cur in eagar ar fhoirm. Sa sampla thuas, tá <code class=\"docutils literal notranslate\"><span class=\"pre\">toppings</span></code> i Pizza` (seachas <code class=\"docutils literal notranslate\"><span class=\"pre\">Topping</span></code> a bhfuil pizzas``: class: ~django.db.Models.manyTomanyField) toisc go bhfuil sé níos nádúrtha smaoineamh ar pizza a bhfuil barráidí ann ná barráitigh a bheith ar phizza iolracha. An bealach a chuirtear ar bun thuas, ligfeadh an fhoirm <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Pizza <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>d'úsáideoirí na toppings a roghnú.</p>\n<aside class=\"admonition admonition-seealso\">\n<p class=\"admonition-title\">See also</p>\n<p>Féach an:doc: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>Sampla samhail caidrimh go mór' le haghaidh sampla iomlán &lt;/topics/db/examples/many_to_many&gt;.</p>\n</aside>\n<p>&lt;manytomany-arguments&gt;Glacann réimsí: class: ~django.db.models.manyTomanyField le roinnt argóintí breise freisin a mhínítear in:ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>tagairt réimse an tsamhail <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>. Cuidíonn na roghanna seo le sainmhíniú conas ba chóir don chaidreamh a bheith ag obair; tá gach</p>\n</section>\n<section id=\"extra-fields-on-many-to-many-relationships\">\n<span id=\"intermediary-manytomany\"></span><h4>Réimsí breise ar chaidrimh go leor<a class=\"heading-anchor\" href=\"#extra-fields-on-many-to-many-relationships\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Nuair nach bhfuil tú ag déileáil ach le caidrimh go leor cosúil le pizzí agus topping a mheascadh agus a mheaitseáil, is é caighdeán:class: ~django.db.models.manyTomanyField gach a theastaíonn uait. Mar sin féin, uaireanta b'fhéidir go mbeidh ort sonraí a cheangal leis an ngaol idir dhá mhúnla.</p>\n<p>Mar shampla, smaoinigh ar chás feidhmchláir a rianú na grúpaí ceoil a mbaineann ceoltóirí leo. Tá caidreamh go leor idir duine agus na grúpaí a bhfuil siad ina bhall díobh, mar sin d'fhéadfá a:class: ~django.db.models.manyToManyField a úsáid chun an caidreamh seo a léiriú. Mar sin féin, tá go leor mionsonraí faoin bhballraíocht a d'fhéadfá a bhailiú, mar shampla an dáta ar tháinig an duine isteach sa ghrúpa.</p>\n<p>Maidir leis na cásanna seo, tugann Django deis duit an tsamhail a úsáidfear a shonrú chun an caidreamh go leor a rialú. Ansin is féidir leat réimsí breise a chur ar an tsamhail idirmheánach. &lt;ManyToManyField.through&gt;Tá baint ag an tsamhail idirmheánach leis an:class: ~django.db.models.manyToManyField ag baint úsáide as an argóint:attr: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>trí <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>chun cur in iúl don tsamhail a ghníomhóidh mar idirghabhálaí. Maidir lenár sampla ceoltóra, bheadh cuma mar seo ar an gcód:</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=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">128</span><span class=\"p\">)</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"fm\">__str__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">name</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Group</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">128</span><span class=\"p\">)</span>\n    <span class=\"n\">members</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ManyToManyField</span><span class=\"p\">(</span><span class=\"n\">Person</span><span class=\"p\">,</span> <span class=\"n\">through</span><span class=\"o\">=</span><span class=\"s2\">&quot;Membership&quot;</span><span class=\"p\">)</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"fm\">__str__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">name</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Membership</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\">person</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\">Person</span><span class=\"p\">,</span> <span class=\"n\">on_delete</span><span class=\"o\">=</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CASCADE</span><span class=\"p\">)</span>\n    <span class=\"n\">group</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\">Group</span><span class=\"p\">,</span> <span class=\"n\">on_delete</span><span class=\"o\">=</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CASCADE</span><span class=\"p\">)</span>\n    <span class=\"n\">date_joined</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">DateField</span><span class=\"p\">()</span>\n    <span class=\"n\">invite_reason</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\">64</span><span class=\"p\">)</span>\n\n    <span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Meta</span><span class=\"p\">:</span>\n        <span class=\"n\">constraints</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n            <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">UniqueConstraint</span><span class=\"p\">(</span>\n                <span class=\"n\">fields</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s2\">&quot;person&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;group&quot;</span><span class=\"p\">],</span> <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;unique_person_group&quot;</span>\n            <span class=\"p\">)</span>\n        <span class=\"p\">]</span>\n</code></pre></div>\n<p>Nuair a bhunaíonn tú an tsamhail idirghabhálaí, sonraíonn tú eochracha eachtracha go sainráite do na samhlacha a bhfuil baint acu leis an gcaidreamh go leor. Sainmhíníonn an dearbhú sainráite seo conas a bhaineann an dá mhúnla.</p>\n<p>If you don't want multiple associations between the same instances, add a\n<a class=\"reference internal\" href=\"/ga/6.0/ref/models/constraints/#django.db.models.UniqueConstraint\" title=\"django.db.models.UniqueConstraint\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">UniqueConstraint</span></code></a> including the <code class=\"docutils literal notranslate\"><span class=\"pre\">from</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">to</span></code>\nfields. Django's automatically generated many-to-many tables include such a\nconstraint.</p>\n<p>Tá cúpla srianta ar an tsamhail idirmheánach:</p>\n<ul class=\"simple\">\n<li><p>&lt;ManyToManyField.through_fields&gt;Caithfidh eochair eachtrach amháin - agus * amháin - a bheith i do mhúnla idirmheánach don tsamhail fhoinse (“Grúpa” a bheadh seo inár sampla), nó ní mór duit na heochracha eachtracha ba chóir do Django a úsáid don chaidreamh a shonrú go sainráite ag baint úsáidea:attr: ManyTomanyField.through_fields `. Má tá níos mó ná eochair eachtrach amháin agat agus mura ndéantar `through_fields` a shonrú, ardófar earráid bailíochtaithe. Baineann srian den chineál céanna leis an eochair eachtrach don spriocmhúnla (ba é seo <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Duine <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>inár sampla).</p></li>\n<li><p>For a model which has a many-to-many relationship to itself through an\nintermediary model, two foreign keys to the same model are permitted, but\nthey will be treated as the two (different) sides of the many-to-many\nrelationship. If <a class=\"reference internal\" href=\"/ga/6.0/ref/models/fields/#django.db.models.ManyToManyField.through_fields\" title=\"django.db.models.ManyToManyField.through_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">through_fields</span></code></a> is not specified,\nthe first foreign key will be taken to represent the source side of the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code>, while the second will be taken to represent the target\nside. If there are <em>more</em> than two foreign keys though, you must specify\n<a class=\"reference internal\" href=\"/ga/6.0/ref/models/fields/#django.db.models.ManyToManyField.through_fields\" title=\"django.db.models.ManyToManyField.through_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">through_fields</span></code></a> to explicitly indicate which foreign\nkeys to use, otherwise a validation error will be raised.</p></li>\n</ul>\n<p>Anois go bhfuil do: class: ~django.db.models.manyToManyField curtha ar bun agat chun do mhúnla idirghabhálaí a úsáid (<a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Ballraíocht <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>, sa chás seo), tá tú réidh chun roinnt caidrimh go leor a chruthú. Déanann tú é seo trí chásanna den tsamhail idirmheánach a chruthú:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">ringo</span> <span class=\"o\">=</span> <span class=\"n\">Person</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Ringo Starr&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">paul</span> <span class=\"o\">=</span> <span class=\"n\">Person</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Paul McCartney&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">beatles</span> <span class=\"o\">=</span> <span class=\"n\">Group</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;The Beatles&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">m1</span> <span class=\"o\">=</span> <span class=\"n\">Membership</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">person</span><span class=\"o\">=</span><span class=\"n\">ringo</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">group</span><span class=\"o\">=</span><span class=\"n\">beatles</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">date_joined</span><span class=\"o\">=</span><span class=\"n\">date</span><span class=\"p\">(</span><span class=\"mi\">1962</span><span class=\"p\">,</span> <span class=\"mi\">8</span><span class=\"p\">,</span> <span class=\"mi\">16</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    <span class=\"n\">invite_reason</span><span class=\"o\">=</span><span class=\"s2\">&quot;Needed a new drummer.&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">m1</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">beatles</span><span class=\"o\">.</span><span class=\"n\">members</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()</span>\n<span class=\"go\">&lt;QuerySet [&lt;Person: Ringo Starr&gt;]&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">ringo</span><span class=\"o\">.</span><span class=\"n\">group_set</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()</span>\n<span class=\"go\">&lt;QuerySet [&lt;Group: The Beatles&gt;]&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">m2</span> <span class=\"o\">=</span> <span class=\"n\">Membership</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">person</span><span class=\"o\">=</span><span class=\"n\">paul</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">group</span><span class=\"o\">=</span><span class=\"n\">beatles</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">date_joined</span><span class=\"o\">=</span><span class=\"n\">date</span><span class=\"p\">(</span><span class=\"mi\">1960</span><span class=\"p\">,</span> <span class=\"mi\">8</span><span class=\"p\">,</span> <span class=\"mi\">1</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    <span class=\"n\">invite_reason</span><span class=\"o\">=</span><span class=\"s2\">&quot;Wanted to form a band.&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">beatles</span><span class=\"o\">.</span><span class=\"n\">members</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()</span>\n<span class=\"go\">&lt;QuerySet [&lt;Person: Ringo Starr&gt;, &lt;Person: Paul McCartney&gt;]&gt;</span>\n</code></pre></div>\n<p>Is féidir leat úsáid freisin:: ~Django.db.Models.Fields.Related.RelatedManager.Add, :meth: ~Django.db.Models.Fields.Related.RelatedManager.Create, nó:meth: ~Django.db.Models.Fields.Related.RelatedManager.set chun caidrimh a chruthú, chomh fada agus a shonraíonn tú <code class=\"docutils literal notranslate\"><span class=\"pre\">`through_defaults</span></code> le haghaidh aon réimsí riachtanacha:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">beatles</span><span class=\"o\">.</span><span class=\"n\">members</span><span class=\"o\">.</span><span class=\"n\">add</span><span class=\"p\">(</span><span class=\"n\">john</span><span class=\"p\">,</span> <span class=\"n\">through_defaults</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;date_joined&quot;</span><span class=\"p\">:</span> <span class=\"n\">date</span><span class=\"p\">(</span><span class=\"mi\">1960</span><span class=\"p\">,</span> <span class=\"mi\">8</span><span class=\"p\">,</span> <span class=\"mi\">1</span><span class=\"p\">)})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">beatles</span><span class=\"o\">.</span><span class=\"n\">members</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;George Harrison&quot;</span><span class=\"p\">,</span> <span class=\"n\">through_defaults</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;date_joined&quot;</span><span class=\"p\">:</span> <span class=\"n\">date</span><span class=\"p\">(</span><span class=\"mi\">1960</span><span class=\"p\">,</span> <span class=\"mi\">8</span><span class=\"p\">,</span> <span class=\"mi\">1</span><span class=\"p\">)}</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">beatles</span><span class=\"o\">.</span><span class=\"n\">members</span><span class=\"o\">.</span><span class=\"n\">set</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"p\">[</span><span class=\"n\">john</span><span class=\"p\">,</span> <span class=\"n\">paul</span><span class=\"p\">,</span> <span class=\"n\">ringo</span><span class=\"p\">,</span> <span class=\"n\">george</span><span class=\"p\">],</span> <span class=\"n\">through_defaults</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;date_joined&quot;</span><span class=\"p\">:</span> <span class=\"n\">date</span><span class=\"p\">(</span><span class=\"mi\">1960</span><span class=\"p\">,</span> <span class=\"mi\">8</span><span class=\"p\">,</span> <span class=\"mi\">1</span><span class=\"p\">)}</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n</code></pre></div>\n<p>B'fhéidir gur fearr leat cásanna den tsamhail idirmheánach a chruthú go díreach.</p>\n<p>Mura gcuireann an tábla saincheaptha a shainmhíníonn an tsamhail idirmheánach uathúlacht i bhfeidhm ar an bpéire <code class=\"docutils literal notranslate\"><span class=\"pre\">(samhail1,</span> <span class=\"pre\">samhail2)</span></code>, ag ceadú illuachanna, bainfidh an glao:meth: ~django.db.Models.Fields.Related.RelatedManager.Remove gach cásanna samhail idirmheánach:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Membership</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">person</span><span class=\"o\">=</span><span class=\"n\">ringo</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">group</span><span class=\"o\">=</span><span class=\"n\">beatles</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">date_joined</span><span class=\"o\">=</span><span class=\"n\">date</span><span class=\"p\">(</span><span class=\"mi\">1968</span><span class=\"p\">,</span> <span class=\"mi\">9</span><span class=\"p\">,</span> <span class=\"mi\">4</span><span class=\"p\">),</span>\n<span class=\"gp\">... </span>    <span class=\"n\">invite_reason</span><span class=\"o\">=</span><span class=\"s2\">&quot;You&#39;ve been gone for a month and we miss you.&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">beatles</span><span class=\"o\">.</span><span class=\"n\">members</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()</span>\n<span class=\"go\">&lt;QuerySet [&lt;Person: Ringo Starr&gt;, &lt;Person: Paul McCartney&gt;, &lt;Person: Ringo Starr&gt;]&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># This deletes both of the intermediate model instances for Ringo Starr</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">beatles</span><span class=\"o\">.</span><span class=\"n\">members</span><span class=\"o\">.</span><span class=\"n\">remove</span><span class=\"p\">(</span><span class=\"n\">ringo</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">beatles</span><span class=\"o\">.</span><span class=\"n\">members</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()</span>\n<span class=\"go\">&lt;QuerySet [&lt;Person: Paul McCartney&gt;]&gt;</span>\n</code></pre></div>\n<p>Is féidir an modh: Meth: ~Django.db.Models.Fields.Related.RelatedManager.Clear a úsáid chun gach caidreamh go leor a bhaint mar shampla:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># Beatles have broken up</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">beatles</span><span class=\"o\">.</span><span class=\"n\">members</span><span class=\"o\">.</span><span class=\"n\">clear</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># Note that this deletes the intermediate model instances</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Membership</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()</span>\n<span class=\"go\">&lt;QuerySet []&gt;</span>\n</code></pre></div>\n<p>Nuair a bheidh na caidrimh go leor bunaithe agat, is féidir leat ceisteanna a eisiúint. Díreach mar a bhaineann le gnáthchaidrimh go leor, is féidir leat fiosrú a dhéanamh ag baint úsáide as tréithe an tsamhail a bhaineann le go leor:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"go\"># Find all the groups with a member whose name starts with &#39;Paul&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Group</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">members__name__startswith</span><span class=\"o\">=</span><span class=\"s2\">&quot;Paul&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet [&lt;Group: The Beatles&gt;]&gt;</span>\n</code></pre></div>\n<p>Toisc go bhfuil samhail idirmheánach á úsáid agat, is féidir leat fiosrú a dhéanamh ar a thréithe freisin:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"go\"># Find all the members of the Beatles that joined after 1 Jan 1961</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Person</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">group__name</span><span class=\"o\">=</span><span class=\"s2\">&quot;The Beatles&quot;</span><span class=\"p\">,</span> <span class=\"n\">membership__date_joined__gt</span><span class=\"o\">=</span><span class=\"n\">date</span><span class=\"p\">(</span><span class=\"mi\">1961</span><span class=\"p\">,</span> <span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"mi\">1</span><span class=\"p\">)</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QuerySet [&lt;Person: Ringo Starr]&gt;</span>\n</code></pre></div>\n<p>Más gá duit rochtain a fháil ar fhaisnéis ballraíochta féadfaidh tú é sin a dhéanamh trí cheist a dhéanamh go díreach ar an tsamhail <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Ballraíocht <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">ringos_membership</span> <span class=\"o\">=</span> <span class=\"n\">Membership</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"n\">group</span><span class=\"o\">=</span><span class=\"n\">beatles</span><span class=\"p\">,</span> <span class=\"n\">person</span><span class=\"o\">=</span><span class=\"n\">ringo</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">ringos_membership</span><span class=\"o\">.</span><span class=\"n\">date_joined</span>\n<span class=\"go\">datetime.date(1962, 8, 16)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">ringos_membership</span><span class=\"o\">.</span><span class=\"n\">invite_reason</span>\n<span class=\"go\">&#39;Needed a new drummer.&#39;</span>\n</code></pre></div>\n<p>&lt;m2m-reverse-relationships&gt;Bealach eile chun rochtain a fháil ar an bhfaisnéis chéanna ná trí:ref: caidreamh droch-go mór' a cheistiú ó réad ``Duine `:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">ringos_membership</span> <span class=\"o\">=</span> <span class=\"n\">ringo</span><span class=\"o\">.</span><span class=\"n\">membership_set</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"n\">group</span><span class=\"o\">=</span><span class=\"n\">beatles</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">ringos_membership</span><span class=\"o\">.</span><span class=\"n\">date_joined</span>\n<span class=\"go\">datetime.date(1962, 8, 16)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">ringos_membership</span><span class=\"o\">.</span><span class=\"n\">invite_reason</span>\n<span class=\"go\">&#39;Needed a new drummer.&#39;</span>\n</code></pre></div>\n</section>\n<section id=\"one-to-one-relationships\">\n<h4>Caidrimh duine le duine<a class=\"heading-anchor\" href=\"#one-to-one-relationships\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Chun caidreamh duine le duine a shainiú, bain úsáid as: class: ~Django.db.Models.OneToOneField. Úsáideann tú é díreach cosúil le haon chineál <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Field` eile: tríd é a áireamh mar thréith aicme de do mhúnla.</p>\n<p>Tá sé seo is úsáideach ar phríomh-eochair réada nuair a “leathnaíonn” an réad sin réad eile ar bhealach éigin.</p>\n<p><a class=\"reference internal\" href=\"/ga/6.0/ref/models/fields/#django.db.models.OneToOneField\" title=\"django.db.models.OneToOneField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">OneToOneField</span></code></a> requires a positional argument: the\nclass to which the model is related.</p>\n<p>Mar shampla, dá mbeadh bunachar sonraí de “áiteanna” á tógáil agat, tógfá rudaí deas caighdeánach mar sheoladh, uimhir theileafóin, srl sa bhunachar sonraí. &lt;model-inheritance&gt;Ansin, dá dteastaíonn uait bunachar sonraí bialanna a thógáil ar bharr na n-áiteanna, in ionad tú féin a athdhéanamh agus na réimsí sin a mhacasamhlú sa tsamhail <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Bialain`, d'fhéadfá a chur ar <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>Bialann <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">``</span></a>áit; i ndáiríre, chun é seo a láimhseáil bheadh úsáide:ref: “oidhreacht”, lena mbaineann caidreamh intuigthe duine le duine).</p>\n<p>&lt;recursive-relationships&gt;&lt;lazy-relationships&gt;Mar atá le: class: ~django.db.Models.ForeignKey, is féidir a:ref: caidreamh athshlánach `a shainiú agus is féidir: ref: `tagairtí do mhúnlaí neamhshainithe fós a dhéanamh.</p>\n<aside class=\"admonition admonition-seealso\">\n<p class=\"admonition-title\">See also</p>\n<p>Féach an:doc: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>Sampla samhail caidrimh duine le Duain' le haghaidh sampla iomlán. &lt;/topics/db/examples/one_to_one&gt;</p>\n</aside>\n<p>Glacann réimsí: class: ~django.db.models.onetoonefield le argóint roghnaí:attr: ~django.db.models.onetoonefield.parent_link freisin.</p>\n<p><a class=\"reference internal\" href=\"/ga/6.0/ref/models/fields/#django.db.models.OneToOneField\" title=\"django.db.models.OneToOneField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">OneToOneField</span></code></a> classes used to automatically become\nthe primary key on a model. This is no longer true (although you can manually\npass in the <a class=\"reference internal\" href=\"/ga/6.0/ref/models/fields/#django.db.models.Field.primary_key\" title=\"django.db.models.Field.primary_key\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">primary_key</span></code></a> argument if you like).\nThus, it's now possible to have multiple fields of type\n<a class=\"reference internal\" href=\"/ga/6.0/ref/models/fields/#django.db.models.OneToOneField\" title=\"django.db.models.OneToOneField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">OneToOneField</span></code></a> on a single model.</p>\n</section>\n</section>\n<section id=\"models-across-files\">\n<h3>Múnlaí ar fud comhaid<a class=\"heading-anchor\" href=\"#models-across-files\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Tá sé go hiomlán ceart go leor samhail a cheangal le ceann amháin ó aip eile. Chun seo a dhéanamh, iompórtáil an tsamhail ghaolmhar ag barr an chomhaid ina bhfuil do mhúnla sainmhínithe. Ansin, déan tagairt don rang samhail eile cibé áit is gá. 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<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">geography.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">ZipCode</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Restaurant</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\">zip_code</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ForeignKey</span><span class=\"p\">(</span>\n        <span class=\"n\">ZipCode</span><span class=\"p\">,</span>\n        <span class=\"n\">on_delete</span><span class=\"o\">=</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">SET_NULL</span><span class=\"p\">,</span>\n        <span class=\"n\">blank</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span>\n        <span class=\"n\">null</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span>\n    <span class=\"p\">)</span>\n</code></pre></div>\n<p>Alternatively, you can use a lazy reference to the related model, specified as\na string in the format <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;app_label.ModelName&quot;</span></code>. This does not require the\nrelated model to be imported. For example:</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\">Restaurant</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\">zip_code</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ForeignKey</span><span class=\"p\">(</span>\n        <span class=\"s2\">&quot;geography.ZipCode&quot;</span><span class=\"p\">,</span>\n        <span class=\"n\">on_delete</span><span class=\"o\">=</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">SET_NULL</span><span class=\"p\">,</span>\n        <span class=\"n\">blank</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span>\n        <span class=\"n\">null</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span>\n    <span class=\"p\">)</span>\n</code></pre></div>\n<p>See <a class=\"reference internal\" href=\"/ga/6.0/ref/models/fields/#lazy-relationships\"><span class=\"std std-ref\">lazy relationships</span></a> for more details.</p>\n</section>\n<section id=\"field-name-restrictions\">\n<h3>Srianta ainm réimse<a class=\"heading-anchor\" href=\"#field-name-restrictions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Cuireann Django roinnt srianta ar ainmneacha réimse samhail:</p>\n<ol class=\"arabic\">\n<li><p>Ní féidir ainm réimse a bheith ina fhocal áirithe Python, toisc go mbeadh earráid comhréireachta Python mar thoradh air sin. Mar shampla:</p>\n<div class=\"code-block\" data-language=\"text\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Text</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Text code\"><code>class Example(models.Model):\n    pass = models.IntegerField() # &#39;pass&#39; is a reserved word!\n</code></pre></div>\n</li>\n<li><p>Ní féidir níos mó ná béim amháin i ndiaidh a chéile i ainm réimse, mar gheall ar an mbealach a oibríonn comhréir cuardaigh ceisteanna Django. 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\">Example</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\">foo__bar</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">IntegerField</span><span class=\"p\">()</span>  <span class=\"c1\"># &#39;foo__bar&#39; has two underscores!</span>\n</code></pre></div>\n</li>\n<li><p>Ní féidir le hainm réimse deireadh a chur le béim, ar chúiseanna comhchosúla.</p></li>\n<li><p>A field name cannot be <code class=\"docutils literal notranslate\"><span class=\"pre\">check</span></code>, as this would override the check\nframework's <code class=\"docutils literal notranslate\"><span class=\"pre\">Model.check()</span></code> method.</p></li>\n</ol>\n<p>Is féidir na teorainneacha seo a oibriú timpeall, áfach, toisc nach gá go gcaithfidh d'ainm réimse d'ainm colún bunachar sonraí a mheaitseáil. Féach an roghna:attr: ~Field.db_Column.</p>\n<p>Ceadaítear focail fhorchoimeádta SQL, mar shampla <code class=\"docutils literal notranslate\"><span class=\"pre\">join`,</span> <span class=\"pre\">``,</span> <span class=\"pre\">```nó</span> <span class=\"pre\">``roghnaigh</span></code>, ** mar ainmneacha réimse samhail, toisc go n-éalaíonn Django gach ainm tábla bunachar sonraí agus ainmneacha colún i ngach ceist bhunúsach SQL. Úsáideann sé comhréir luachana d'inneall bunachar sonraí áirithe.</p>\n</section>\n<section id=\"custom-field-types\">\n<h3>cineálacha réimse saincheaptha<a class=\"heading-anchor\" href=\"#custom-field-types\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Mura féidir ceann de na réimsí samhlacha atá ann cheana a úsáid chun do chuspóirí a fheistiú, nó más mian leat leas a bhaint as roinnt cineálacha colún bunachar sonraí nach bhfuil chomh coitianta, is féidir leat do rang réimse féin a chruthú. Cuirtear clúdach iomlán ar do réimsí féin a chruthú ar fáil in:doc: /howto/custom-model-fields.</p>\n</section>\n</section>\n<section id=\"meta-options\">\n<span id=\"id3\"></span><h2>Roghanna <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta</span></code><a class=\"heading-anchor\" href=\"#meta-options\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Tabhair meiteashonraí do mhúnla trí <code class=\"docutils literal notranslate\"><span class=\"pre\">aicme</span> <span class=\"pre\">Meta</span></code> istigh a úsáid, mar sin:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"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\">Ox</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\">horn_length</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">IntegerField</span><span class=\"p\">()</span>\n\n    <span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Meta</span><span class=\"p\">:</span>\n        <span class=\"n\">ordering</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;horn_length&quot;</span><span class=\"p\">]</span>\n        <span class=\"n\">verbose_name_plural</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;oxen&quot;</span>\n</code></pre></div>\n<p>Is é meiteashonraí samhail “aon rud nach réimse”, mar shampla roghanna ordaithe (:attr: ~Options.Ordering), ainm tábla bunachar sonraí (:attr: ~Options.db_table), nó ainmneacha uaineacha agus iolra inléite don duine (:attr: ~Options.verbose_name_plural). Níl aon cheann de dhíth, agus tá sé go hiomlán roghnach <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>aicme Meta <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>a chur le samhail.</p>\n<p>Is féidir liosta iomlán de na roghanna Meta` féideartha go léir a fháil in:doc: tagairt rogha samhail. &lt;/ref/models/options&gt;</p>\n</section>\n<section id=\"model-attributes\">\n<span id=\"id4\"></span><h2>Tréithe samhail<a class=\"heading-anchor\" href=\"#model-attributes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"simple\">\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">`ruda</span></code></dt><dd><p>Is é an tréith is tábhachtaí de mhúnla ná: aicme: ~django.db.models.manager. Is é an comhéadan trína gcuirtear oibríochtaí fiosrúcháin bunachar sonraí ar fáil do mhúnlaí Django agus úsáidtear é chun: ref: na cásanna a aisghabháil ón mbunachar son &lt;retrieving-objects&gt;raí. Mura sainmhínítear ``Bainiste` saincheaptha, is é an t-ainm réamhshocraithe:attr: ~Django.db.Models.Model.Objects. Ní féidir bainisteoirí inrochtana ach trí ranganna samhail, ní na cásanna samhail.</p>\n</dd>\n</dl>\n</section>\n<section id=\"model-methods\">\n<span id=\"id5\"></span><h2>Modhanna múnla<a class=\"heading-anchor\" href=\"#model-methods\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Sainmhínigh modhanna saincheaptha ar mhúnla chun feidhmiúlacht saincheaptha “leibhéal sraithe” a chur le do chuid rudaí. Cá bhfuil: Class: ~Django.db.Models.Manager i gceist le modhanna rudaí “ar fud an tábla” a dhéanamh, ba cheart do mhodhanna samhail gníomhú ar shampla samhail áirithe.</p>\n<p>Is teicníc luachmhar é seo chun loighic ghnó a choinneáil in aon áit amháin - an tsamhail.</p>\n<p>Mar shampla, tá cúpla modh saincheaptha ag 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\">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\">birth_date</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">DateField</span><span class=\"p\">()</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">baby_boomer_status</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"s2\">&quot;Returns the person&#39;s baby-boomer status.&quot;</span>\n        <span class=\"kn\">import</span><span class=\"w\"> </span><span class=\"nn\">datetime</span>\n\n        <span class=\"k\">if</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">birth_date</span> <span class=\"o\">&lt;</span> <span class=\"n\">datetime</span><span class=\"o\">.</span><span class=\"n\">date</span><span class=\"p\">(</span><span class=\"mi\">1945</span><span class=\"p\">,</span> <span class=\"mi\">8</span><span class=\"p\">,</span> <span class=\"mi\">1</span><span class=\"p\">):</span>\n            <span class=\"k\">return</span> <span class=\"s2\">&quot;Pre-boomer&quot;</span>\n        <span class=\"k\">elif</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">birth_date</span> <span class=\"o\">&lt;</span> <span class=\"n\">datetime</span><span class=\"o\">.</span><span class=\"n\">date</span><span class=\"p\">(</span><span class=\"mi\">1965</span><span class=\"p\">,</span> <span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"mi\">1</span><span class=\"p\">):</span>\n            <span class=\"k\">return</span> <span class=\"s2\">&quot;Baby boomer&quot;</span>\n        <span class=\"k\">else</span><span class=\"p\">:</span>\n            <span class=\"k\">return</span> <span class=\"s2\">&quot;Post-boomer&quot;</span>\n\n    <span class=\"nd\">@property</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">full_name</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"s2\">&quot;Returns the person&#39;s full name.&quot;</span>\n        <span class=\"k\">return</span> <span class=\"sa\">f</span><span class=\"s2\">&quot;</span><span class=\"si\">{</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">first_name</span><span class=\"si\">}</span><span class=\"s2\"> </span><span class=\"si\">{</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">last_name</span><span class=\"si\">}</span><span class=\"s2\">&quot;</span>\n</code></pre></div>\n<p>Is é an modh deireanach sa sampla seo a: téarma: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>maoin <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>.</p>\n<p>&lt;/ref/models/instances&gt; &lt;model-instance-methods&gt;Tá liosta iomlán de:ref: modhanna a thugtar go huathoibríoch do gach samhail `sa tagairt samhail: Doc: `samhail tagair. Is féidir leat an chuid is mó díobh seo a shárú - féach <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>modhanna samhail réamhshainithe a shárú <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>_, thíos - ach tá lánúin ann a mbeidh tú ag iarraidh a shainiú beagnach i gcónaí:</p>\n<dl>\n<dt>: meth: ~ Múnla. __str__</dt><dd><p>“Modh draíochta” Python a thugann léiriú teaghrán ar aon rud ar ais. Seo a úsáidfidh Python agus Django aon uair is gá samhail samhail a iallú agus a thaispeáint mar shreang simplí. Go háirithe, tarlaíonn sé seo nuair a thaispeánann tú réad i gconsól idirghníomhach nó sa riarachán.</p>\n<p>Beidh tú ag iarraidh an modh seo a shainiú i gcónaí; ní bhíonn an réamhshocrú an-chabhrach ar chor ar</p>\n</dd>\n<dt><a class=\"reference internal\" href=\"/ga/6.0/ref/models/instances/#django.db.models.Model.get_absolute_url\" title=\"django.db.models.Model.get_absolute_url\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_absolute_url()</span></code></a></dt><dd><p>Insíonn sé seo do Django conas an URL do réad a ríomh. Úsáideann Django é seo ina chomhéadan riaracháin, agus am ar bith ní mór dó URL a fháil amach le haghaidh réad.</p>\n<p>Ba cheart d'aon rud a bhfuil URL aige a aithníonn go uathúil é an modh seo a shainiú.</p>\n</dd>\n</dl>\n<section id=\"overriding-predefined-model-methods\">\n<span id=\"overriding-model-methods\"></span><h3>Modhanna samhail réamhshainithe a shárú<a class=\"heading-anchor\" href=\"#overriding-predefined-model-methods\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Tá sraith eile de:ref: modhanna samhail &lt;model-instance-methods&gt;`a chuimsíonn dornán iompar bunachar sonraí a bheidh uait a shaincheapadh. Go háirithe is minic a bheidh tú ag iarraidh an bealach a athrú: meth: `~Model.save agus:meth: ~Model.delete obair.</p>\n<p>Tá saor ort na modhanna seo (agus aon mhodh samhail eile) a shárú chun iompar a athrú.</p>\n<p>Cás úsáide clasaiceach chun na modhanna ionsuite a shárú ná más mian leat rud éigin a tharlóidh aon uair a shábhálann tú réad. Mar shampla (féach: meth: ~Model.save le haghaidh doiciméadú ar na paraiméadair a ghlacann sé leis):</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\">Blog</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n    <span class=\"n\">tagline</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">TextField</span><span class=\"p\">()</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">save</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"n\">do_something</span><span class=\"p\">()</span>\n        <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">(</span><span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">)</span>  <span class=\"c1\"># Call the &quot;real&quot; save() method.</span>\n        <span class=\"n\">do_something_else</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>Is féidir leat cosc a chur ar shábháil 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=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Blog</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n    <span class=\"n\">tagline</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">TextField</span><span class=\"p\">()</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">save</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"k\">if</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">name</span> <span class=\"o\">==</span> <span class=\"s2\">&quot;Yoko Ono&#39;s blog&quot;</span><span class=\"p\">:</span>\n            <span class=\"k\">return</span>  <span class=\"c1\"># Yoko shall never have her own blog!</span>\n        <span class=\"k\">else</span><span class=\"p\">:</span>\n            <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">(</span><span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">)</span>  <span class=\"c1\"># Call the &quot;real&quot; save() method.</span>\n</code></pre></div>\n<p>Tá sé tábhachtach cuimhneamh ar an modh sáraicme a ghlaoch - sin an gnó sin <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>super () .save (** kwargs) <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>- chun a chinntiú go sábhálfar an réad sa bhunachar sonraí fós. Má dhéanann tú dearmad glaoch ar an modh sáraicme, ní tharlóidh an t-iompar réamhshocraithe agus ní dhéanfar teagmháil leis an mbunachar sonraí.</p>\n<p>Tá sé tábhachtach freisin go dtéann tú tríd na hargóintí is féidir a chur ar aghaidh chuig an modh samhail - sin an rud a dhéanann an giotán **kwargs `. Leathnóidh Django, ó am go ham, cumais modhanna samhail ionsuite, ag cur argóintí eochairfhocal nua leis. Má úsáideann tú <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a><a href=\"#id3\"><span class=\"problematic\" id=\"id4\">**</span></a>kwargs <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">``</span></a>i do shainmhínithe ar mhodh, ráthaítear duit go dtacóidh do chód leis na hargóintí sin go huathoibríoch nuair a chuirtear iad leis.</p>\n<p>Más mian leat luach réimse a nuashonrú sa modh:meth: ~Model.save, b'fhéidir gur mhaith leat an réimse seo a chur leis an argóint eochairfhocal <code class=\"docutils literal notranslate\"><span class=\"pre\">update_fields</span></code>. Cinnteoidh sé seo go sábhálfar an réimse nuair a shonraítear <code class=\"docutils literal notranslate\"><span class=\"pre\">update_fields</span></code>. Mar shampla:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.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.utils.text</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">slugify</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Blog</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n    <span class=\"n\">slug</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">TextField</span><span class=\"p\">()</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">save</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">slug</span> <span class=\"o\">=</span> <span class=\"n\">slugify</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">name</span><span class=\"p\">)</span>\n        <span class=\"k\">if</span> <span class=\"p\">(</span>\n            <span class=\"n\">update_fields</span> <span class=\"o\">:=</span> <span class=\"n\">kwargs</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"s2\">&quot;update_fields&quot;</span><span class=\"p\">)</span>\n        <span class=\"p\">)</span> <span class=\"ow\">is</span> <span class=\"ow\">not</span> <span class=\"kc\">None</span> <span class=\"ow\">and</span> <span class=\"s2\">&quot;name&quot;</span> <span class=\"ow\">in</span> <span class=\"n\">update_fields</span><span class=\"p\">:</span>\n            <span class=\"n\">kwargs</span><span class=\"p\">[</span><span class=\"s2\">&quot;update_fields&quot;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">&quot;slug&quot;</span><span class=\"p\">}</span><span class=\"o\">.</span><span class=\"n\">union</span><span class=\"p\">(</span><span class=\"n\">update_fields</span><span class=\"p\">)</span>\n        <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">(</span><span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Féach: ref: ref-models-update-fields le haghaidh tuilleadh sonraí.</p>\n<aside class=\"admonition-overridden-model-methods-are-not-called-on-bulk-operations admonition\">\n<p class=\"admonition-title\">Ní ghlaítear ar mhodhanna samhlacha athsháraithe ar mhór-oibríochtaí</p>\n<p>Note that the <a class=\"reference internal\" href=\"/ga/6.0/ref/models/instances/#django.db.models.Model.delete\" title=\"django.db.models.Model.delete\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">delete()</span></code></a> method for an object is not\nnecessarily called when <a class=\"reference internal\" href=\"/ga/6.0/topics/db/queries/#topics-db-queries-delete\"><span class=\"std std-ref\">deleting objects in bulk using a\nQuerySet</span></a> or as a result of a <a class=\"reference internal\" href=\"/ga/6.0/ref/models/fields/#django.db.models.ForeignKey.on_delete\" title=\"django.db.models.ForeignKey.on_delete\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">cascading</span>\n<span class=\"pre\">delete</span></code></a>. To ensure customized\ndelete logic gets executed, you can use\n<a class=\"reference internal\" href=\"/ga/6.0/ref/signals/#django.db.models.signals.pre_delete\" title=\"django.db.models.signals.pre_delete\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">pre_delete</span></code></a> and/or\n<a class=\"reference internal\" href=\"/ga/6.0/ref/signals/#django.db.models.signals.post_delete\" title=\"django.db.models.signals.post_delete\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">post_delete</span></code></a> signals.</p>\n<p>Unfortunately, there isn't a workaround when\n<a class=\"reference internal\" href=\"/ga/6.0/ref/models/querysets/#django.db.models.query.QuerySet.bulk_create\" title=\"django.db.models.query.QuerySet.bulk_create\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">creating</span></code></a> or\n<a class=\"reference internal\" href=\"/ga/6.0/ref/models/querysets/#django.db.models.query.QuerySet.update\" title=\"django.db.models.query.QuerySet.update\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">updating</span></code></a> objects in bulk,\nsince none of <a class=\"reference internal\" href=\"/ga/6.0/ref/models/instances/#django.db.models.Model.save\" title=\"django.db.models.Model.save\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">save()</span></code></a>,\n<a class=\"reference internal\" href=\"/ga/6.0/ref/signals/#django.db.models.signals.pre_save\" title=\"django.db.models.signals.pre_save\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">pre_save</span></code></a>, and\n<a class=\"reference internal\" href=\"/ga/6.0/ref/signals/#django.db.models.signals.post_save\" title=\"django.db.models.signals.post_save\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">post_save</span></code></a> are called.</p>\n</aside>\n</section>\n<section id=\"executing-custom-sql\">\n<h3>SQL saincheaptha a fheidhmiú<a class=\"heading-anchor\" href=\"#executing-custom-sql\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Patrún coitianta eile is ea ráitis SQL saincheaptha a scríobh i modhanna samhail agus modhanna leibhéal modúl. Le haghaidh tuilleadh sonraí maidir le SQL amh a úsáid, féach an doiciméadú ar:doc: using&lt;/topics/db/sql&gt; raw SQL.</p>\n</section>\n</section>\n<section id=\"model-inheritance\">\n<span id=\"id6\"></span><h2>Oidhreacht múnla<a class=\"heading-anchor\" href=\"#model-inheritance\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Oibríonn oidhreacht mhúnla i Django beagnach cosúil leis an mbealach a oibríonn gnáthoidhreacht aicme i Python, ach ba cheart na buneilimintí ag tús an leathanaigh a leanúint fós. Ciallaíonn sé sin gur chóir don rang bonn fo-aicme: class: Django.db.Models.Model.</p>\n<p>Is é an t-aon chinneadh a chaithfidh tú a dhéanamh ná an dteastaíonn uait go mbeadh na samhlacha tuismitheoirí ina samhlacha ina gceart féin (lena dtáblaí bunachar sonraí féin), nó mura bhfuil na tuismitheoirí ach sealbhóirí faisnéise coiteann nach mbeidh le feiceáil ach trí na samhlacha leanaí.</p>\n<p>Tá trí stíl oidhreachta ann atá indéanta i Django.</p>\n<ol class=\"arabic simple\">\n<li><p>Go minic, ní bheidh tú ag iarraidh ach an rang tuismitheoirí a úsáid chun faisnéis a shealbhú nach dteastaíonn uait a chlóscríobh do gach samhail linbh. Ní úsáidfear an rang seo ina n-aonar riamh, mar sin: ref: Is iad abstract-base-classes an rud atá ina dhiaidh leat.</p></li>\n<li><p>Má tá tú ag fo-aicmiú samhail atá ann cheana (rud éigin ó fheidhmchlár eile go hiomlán b'fhéidir) agus má theastaíonn uait go mbeadh a tábla bunachar sonraí féin ag gach samhail, :ref: is é <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>il-tábla-oidhreacht <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>an bealach le dul.</p></li>\n<li><p>Faoi dheireadh, mura dteastaíonn uait ach iompar samhail ar leibhéal Python a mhodhnú, gan réimsí na samhlacha a athrú ar bhealach ar bith, is féidir leat:ref: proxy-models a úsáid.</p></li>\n</ol>\n<section id=\"abstract-base-classes\">\n<span id=\"id7\"></span><h3>Aicmí bonn teibí<a class=\"heading-anchor\" href=\"#abstract-base-classes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Tá ranganna bonn teibí úsáideach nuair is mian leat roinnt faisnéise coitianta a chur i roinnt samhlacha eile. &lt;meta-options&gt;Scríobhann tú do rang bonn agus cuireann tú <code class=\"docutils literal notranslate\"><span class=\"pre\">abstract=True</span></code> sa rang:ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>Meta <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>. Ní úsáidfear an tsamhail seo ansin chun aon tábla bunachar sonraí a chruthú. Ina áit sin, nuair a úsáidtear é mar bhunrang do mhúnlaí eile, cuirfear a réimsí le réimsí ranga an linbh.</p>\n<p>Sampla:</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\">CommonInfo</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n    <span class=\"n\">age</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">PositiveIntegerField</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\">Student</span><span class=\"p\">(</span><span class=\"n\">CommonInfo</span><span class=\"p\">):</span>\n    <span class=\"n\">home_group</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\">5</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Beidh trí réimse ag an tsamhail <code class=\"docutils literal notranslate\"><span class=\"pre\">Mac</span> <span class=\"pre\">Léinn</span> <span class=\"pre\">``:</span> <span class=\"pre\">`ainm</span></code>, aois ``agus ``grúpa_baile`. Ní féidir an tsamhail <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>CommonInfo <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>a úsáid mar ghnáthmhúnla Django, ós rud é gur aicme bonn teibí é. Ní ghineann sé tábla bunachar sonraí ná ní bhfuil bainisteoir aige, agus ní féidir é a thionscnamh nó a shábháil go díreach.</p>\n<p>Is féidir réimsí oidhreachta ó ranganna bonn teibí a shárú le réimse nó luach eile, nó iad a bhaint le <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>.</p>\n<p>Maidir le go leor úsáidí, beidh an cineál seo oidhreachta samhail go díreach mar a theastaíonn uait. Soláthraíonn sé bealach chun faisnéis choiteann a bhaint amach ag leibhéal Python, agus ní chruthaíonn sé ach tábla bunachar sonraí amháin in aghaidh an tsamhail linbh ag leibhéal an bhunachar sonraí.</p>\n<section id=\"meta-inheritance\">\n<h4>Oidhreacht <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta</span></code><a class=\"heading-anchor\" href=\"#meta-inheritance\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Nuair a chruthaítear rang bonn teib &lt;meta-options&gt;í, déanann Django aon aicme istigh: ref: Meta `a dhearbhaigh tú sa rang bonn atá ar fáil mar thréith. &lt;meta-options&gt;Mura dhearbhóidh rang linbh a rang féin:ref: `Meta &lt;meta-options&gt;, beidh sé oidhreacht ar an tuismitheoirí:ref: Meta. Más mian leis an leanbh rang an tuismitheora: ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>Meta &lt;meta-options&gt;`a leathnú, is féidir leis é a fho-aicmiú. 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\">CommonInfo</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=\"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        <span class=\"n\">ordering</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">]</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Student</span><span class=\"p\">(</span><span class=\"n\">CommonInfo</span><span class=\"p\">):</span>\n    <span class=\"c1\"># ...</span>\n    <span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Meta</span><span class=\"p\">(</span><span class=\"n\">CommonInfo</span><span class=\"o\">.</span><span class=\"n\">Meta</span><span class=\"p\">):</span>\n        <span class=\"n\">db_table</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;student_info&quot;</span>\n</code></pre></div>\n<p>&lt;meta-options&gt;Déanann Django coigeartú amháin ar &lt;meta-options&gt;aicme: ref: Meta `de bhonn teibí: sula ndéantar an tréith: ref: `Meta a shuiteáil, leagann sé <code class=\"docutils literal notranslate\"><span class=\"pre\">abstract</span> <span class=\"pre\">=</span> <span class=\"pre\">false</span> <span class=\"pre\">``.</span> <span class=\"pre\">Ciallaíonn</span> <span class=\"pre\">sé</span> <span class=\"pre\">seo</span> <span class=\"pre\">nach</span> <span class=\"pre\">n-éiríonn</span> <span class=\"pre\">leanaí</span> <span class=\"pre\">bunranganna</span> <span class=\"pre\">teibí</span> <span class=\"pre\">ina</span> <span class=\"pre\">ranganna</span> <span class=\"pre\">teibí</span> <span class=\"pre\">go</span> <span class=\"pre\">huathoibríoch</span> <span class=\"pre\">iad</span> <span class=\"pre\">féin.</span> <span class=\"pre\">Chun</span> <span class=\"pre\">rang</span> <span class=\"pre\">bonn</span> <span class=\"pre\">teibí</span> <span class=\"pre\">a</span> <span class=\"pre\">dhéanamh</span> <span class=\"pre\">a</span> <span class=\"pre\">thagann</span> <span class=\"pre\">oidhreacht</span> <span class=\"pre\">ó</span> <span class=\"pre\">rang</span> <span class=\"pre\">bonn</span> <span class=\"pre\">teibí</span> <span class=\"pre\">eile,</span> <span class=\"pre\">ní</span> <span class=\"pre\">mór</span> <span class=\"pre\">duit</span> <span class=\"pre\">``abstract=True</span></code> a shocrú go sainráite ar an leanbh.</p>\n<p>Ní bheidh ciall ar roinnt tréithe a chur san áireamh san aicme:ref: Meta &lt;meta-options&gt;`de rang bonn teibí. Mar shampla, lena n-áirítear ``db_table` chiallódh go n- &lt;meta-options&gt;úsáidfeadh na ranganna uile leanaí (na cinn nach sonraíonn a gcuid féin: ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>Meta <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>) an tábla bunachar sonraí céanna, rud beagnach cinnte nach bhfuil an rud a theastaíonn uait.</p>\n<p>Mar gheall ar an mbealach a oibríonn oidhreacht Python, má fhaigheann rang linbh oidhreacht ó iliomad bunaicmí teibí, ní bhe &lt;meta-options&gt;idh ach na roghanna: ref: Meta `ón gcéad rang liostaithe oidhreacht de réir réamhshocraithe. &lt;meta-options&gt;Chun roghanna oidhreacht:ref: `Meta &lt;meta-options&gt;`ó iliomad bunaicmí teibí, ní mór duit an oidhreacht: ref: `Meta a dhearbhú go sainráite. 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\">CommonInfo</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n    <span class=\"n\">age</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">PositiveIntegerField</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        <span class=\"n\">ordering</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">]</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Unmanaged</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=\"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        <span class=\"n\">managed</span> <span class=\"o\">=</span> <span class=\"kc\">False</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Student</span><span class=\"p\">(</span><span class=\"n\">CommonInfo</span><span class=\"p\">,</span> <span class=\"n\">Unmanaged</span><span class=\"p\">):</span>\n    <span class=\"n\">home_group</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\">5</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><span class=\"n\">CommonInfo</span><span class=\"o\">.</span><span class=\"n\">Meta</span><span class=\"p\">,</span> <span class=\"n\">Unmanaged</span><span class=\"o\">.</span><span class=\"n\">Meta</span><span class=\"p\">):</span>\n        <span class=\"k\">pass</span>\n</code></pre></div>\n</section>\n<section id=\"be-careful-with-related-name-and-related-query-name\">\n<span id=\"abstract-related-name\"></span><h4>Bí cúramach le <code class=\"docutils literal notranslate\"><span class=\"pre\">ainm_gaolmhar</span> <span class=\"pre\">``agus</span> <span class=\"pre\">``ainm_ceisteanna</span> <span class=\"pre\">gaolaitheach</span></code><a class=\"heading-anchor\" href=\"#be-careful-with-related-name-and-related-query-name\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Má tá tú ag baint úsáide:attr: ~django.db.models.foreignkey.related_name nó:attr: ~django.db.models.foreignkey.related_query_name ar ForeignKey` nó <code class=\"docutils literal notranslate\"><span class=\"pre\">ManyTomanyField</span></code>, ní mór duit ainm aisiom*unique* a shonrú don réimse i gcónaí. De ghnáth bheadh fadhb ann i ranganna bonn teibí, ós rud é go gcuirtear na réimsí ar an rang seo san áireamh i ngach ceann de na ranganna leanaí, leis na luachanna céanna do na tréithe (lena n-áirítear: attr: ~django.db.models.~db.models.~django.related_query_name) gach uair.</p>\n<p>Chun oibriú timpeall ar an bhfadhb seo, nuair a bhíonn tú ag baint úsáide:attr: ~django.db.models.foreignkey.related_name nó:attr: ~django.db.models.foreignkey.related_query_name i rang bonn teibí (amháin), ba chóir go mbeadh <code class=\"docutils literal notranslate\"><span class=\"pre\">%</span> <span class=\"pre\">(app_label)</span></code> agus <code class=\"docutils literal notranslate\"><span class=\"pre\">%</span> <span class=\"pre\">(rang)</span> <span class=\"pre\">s'</span></code>.</p>\n<ul class=\"simple\">\n<li><p>Cuirtear ainm íseal an aicme linbh ina n-úsáidtear an réimse in ionad '% (class) s'`.</p></li>\n<li><p>Cuirtear ainm íseal an aip atá an rang linbh ann in ionad '% (app_label) s'`. Caithfidh gach ainm feidhmchláir suiteáilte a bheith uathúil agus caithfidh ainmneacha aicme samhail laistigh de gach aip a bheith uathúil freisin, mar sin beidh an t-ainm mar thoradh air sin difriúil.</p></li>\n</ul>\n<p>Mar shampla, ag tabhairt faoi aip common/models.py`:</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\">Base</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\">m2m</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ManyToManyField</span><span class=\"p\">(</span>\n        <span class=\"n\">OtherModel</span><span class=\"p\">,</span>\n        <span class=\"n\">related_name</span><span class=\"o\">=</span><span class=\"s2\">&quot;</span><span class=\"si\">%(app_label)s</span><span class=\"s2\">_</span><span class=\"si\">%(class)s</span><span class=\"s2\">_related&quot;</span><span class=\"p\">,</span>\n        <span class=\"n\">related_query_name</span><span class=\"o\">=</span><span class=\"s2\">&quot;</span><span class=\"si\">%(app_label)s</span><span class=\"s2\">_</span><span class=\"si\">%(class)s</span><span class=\"s2\">s&quot;</span><span class=\"p\">,</span>\n    <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\">ChildA</span><span class=\"p\">(</span><span class=\"n\">Base</span><span class=\"p\">):</span>\n    <span class=\"k\">pass</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ChildB</span><span class=\"p\">(</span><span class=\"n\">Base</span><span class=\"p\">):</span>\n    <span class=\"k\">pass</span>\n</code></pre></div>\n<p>In éineacht le aip eile <code class=\"docutils literal notranslate\"><span class=\"pre\">rare/models.py</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\">common.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Base</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ChildB</span><span class=\"p\">(</span><span class=\"n\">Base</span><span class=\"p\">):</span>\n    <span class=\"k\">pass</span>\n</code></pre></div>\n<p>Is é common_childa_related` ainm droim an réimse <code class=\"docutils literal notranslate\"><span class=\"pre\">common.childa.m2m</span></code> agus common_childas` is é common_childas` an t-ainm fiosrúcháin droim. Is é common_childb_related` ainm droim an réimse <code class=\"docutils literal notranslate\"><span class=\"pre\">common.childb.m2m</span></code> agus is é common_childbs` an t-ainm fiosrúcháin droim. Faoi dheireadh, is é <code class=\"docutils literal notranslate\"><span class=\"pre\">rare_childb_related</span></code> ainm droim an réimse <code class=\"docutils literal notranslate\"><span class=\"pre\">rare.childb.m2m</span></code> agus is é rare_childbs` an t-ainm fiosrúcháin droim. Is fútsa atá sé conas a úsáideann tú an chuid <code class=\"docutils literal notranslate\"><span class=\"pre\">'%</span> <span class=\"pre\">(class)</span> <span class=\"pre\">s'</span></code> agus <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>% (app_label) s' chun d'ainm gaolmhar nó d'ainm ceisteanna gaolmhar a thógáil ach má dhéanann tú dearmad é a úsáid, ardóidh Django earráidí nuair a dhéanann tú seiceálacha córais (nó run:djadmin: migrate).</p>\n<p>Mura sonraíonn tú a: attr: ~django.db.models.foreignkey.related_name tréith do réimse i rang bonn teibí, is é an t-ainm cúil réamhshocraithe ainm ranga an linbh ina dhiaidh sin <code class=\"docutils literal notranslate\"><span class=\"pre\">'_set'</span></code>, díreach mar a bheadh sé de ghnáth dá dhearbhaigh tú an réimse go díreach ar an rang linbh. Mar shampla, sa chód thuas, má fhágfaí tréith an:attr: ~django.db.models.foreignkey.related_name, an t-ainm droim don réimse <code class=\"docutils literal notranslate\"><span class=\"pre\">m2m</span></code> ná childa_set` sa chás <code class=\"docutils literal notranslate\"><span class=\"pre\">Childa</span></code> agus <code class=\"docutils literal notranslate\"><span class=\"pre\">childb_set</span></code> don réimse <code class=\"docutils literal notranslate\"><span class=\"pre\">Childb</span></code>.</p>\n</section>\n</section>\n<section id=\"multi-table-inheritance\">\n<span id=\"id8\"></span><h3>Oidhreacht il-tábla<a class=\"heading-anchor\" href=\"#multi-table-inheritance\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Is é an dara cineál oidhreachta samhail a thacaíonn Django ná nuair a bhíonn gach samhail san ordlathas ina samhail leis féin. Freagraíonn gach samhail dá tábla bunachar sonraí féin agus is féidir é a fhiosrú agus a chruthú ina n-aonar. Tugann an caidreamh oidhreachta naisc isteach idir samhail an linbh agus gach ceann dá thuismitheoirí (trí:class: ~django.db.models.onetoonefield) a chruthaítear go huathoibríoch. 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\">Place</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n    <span class=\"n\">address</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\">80</span><span class=\"p\">)</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Restaurant</span><span class=\"p\">(</span><span class=\"n\">Place</span><span class=\"p\">):</span>\n    <span class=\"n\">serves_hot_dogs</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">BooleanField</span><span class=\"p\">(</span><span class=\"n\">default</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n    <span class=\"n\">serves_pizza</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">BooleanField</span><span class=\"p\">(</span><span class=\"n\">default</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Beidh na réimsí go léir de <code class=\"docutils literal notranslate\"><span class=\"pre\">Áite</span></code> ar fáil i <code class=\"docutils literal notranslate\"><span class=\"pre\">Bialain</span></code> freisin, cé go mbeidh na sonraí ina gcónaí i dtábla bunachar sonraí difriúil. Mar sin is féidir iad seo a dhéanamh:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Place</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Bob&#39;s Cafe&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">Restaurant</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Bob&#39;s Cafe&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Má tá <code class=\"docutils literal notranslate\"><span class=\"pre\">Áite</span></code> agat atá ina <code class=\"docutils literal notranslate\"><span class=\"pre\">Bialain</span></code> freisin, is féidir leat teacht ón réad <code class=\"docutils literal notranslate\"><span class=\"pre\">Áite</span></code> go dtí an réad <code class=\"docutils literal notranslate\"><span class=\"pre\">Bialainne</span></code> tríd an leagan beaga den ainm samhail a úsáid:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">p</span> <span class=\"o\">=</span> <span class=\"n\">Place</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"mi\">12</span><span class=\"p\">)</span>\n<span class=\"go\"># If p is a Restaurant object, this will give the child class:</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">p</span><span class=\"o\">.</span><span class=\"n\">restaurant</span>\n<span class=\"go\">&lt;Restaurant: ...&gt;</span>\n</code></pre></div>\n<p>Mar sin féin, mura raibh p` sa sampla thuas*ní* ina Bialann ``(cruthaíodh é go díreach mar réad ``Plac` nó gur tuismitheoir aicme éigin eile é), d'ardódh tagairt do p.restaurant` eisceacht <code class=\"docutils literal notranslate\"><span class=\"pre\">Restaurant.doesNotExist</span></code>.</p>\n<p>Breathnaítear go huathoibríoch: class: ~django.db.models.onetoonefield ar <code class=\"docutils literal notranslate\"><span class=\"pre\">Restaurant</span></code> a nascann é le <code class=\"docutils literal notranslate\"><span class=\"pre\">Plac</span></code> mar seo:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">place_ptr</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">OneToOneField</span><span class=\"p\">(</span>\n    <span class=\"n\">Place</span><span class=\"p\">,</span>\n    <span class=\"n\">on_delete</span><span class=\"o\">=</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CASCADE</span><span class=\"p\">,</span>\n    <span class=\"n\">parent_link</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span>\n    <span class=\"n\">primary_key</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span>\n<span class=\"p\">)</span>\n</code></pre></div>\n<p>&lt;django.db.models.OneToOneField.parent_link&gt;Is féidir leat an réimse sin a shárú trí do chuid féin a dhearbhú:: ~django.db.models.onetoonefield le: attr: Parent_link=True `ar ``Restaurant`.</p>\n<section id=\"meta-and-multi-table-inheritance\">\n<span id=\"id9\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">Meta</span></code> agus oidhreacht il-tábla<a class=\"heading-anchor\" href=\"#meta-and-multi-table-inheritance\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>&lt;meta-options&gt;Sa staid oidhreachta iltábla, níl sé ciall do rang linbh oidhreacht a thabhairt dá thuismitheoirí:ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>Meta <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>. Cuireadh na &lt;meta-options&gt;roghanna uile: ref: <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">`</span></a>Meta <a href=\"#id7\"><span class=\"problematic\" id=\"id8\">`</span></a>i bhfeidhm cheana féin ar an rang tuismitheoirí agus de ghnáth ní bheadh iompar contrártha mar thoradh orthu a chur i bhfeidhm arís (tá sé seo i gcodarsnacht leis an gcás bunaicme teibí, i gcás nach bhfuil an bunaicme ann féin).</p>\n<p>&lt;meta-options&gt;Mar sin níl rochtain ag samhail leanbh ar rang a thuismitheoir:ref: Meta `. Mar sin féin, tá cúpla cás teoranta ann ina n-oidhreann an leanbh iompar ón tuismitheoir: mura sonraíonn an leanbh tréith: `~django.db.models.options.ordering nó a:attr: ~django.db.models.options.get_latest_by tréith, oidhreoidh sé iad seo óna thuismitheoir.</p>\n<p>Má tá ordú ag an tuismitheoir agus mura dteastaíonn uait go mbeadh aon ordú nádúrtha ag an leanbh, is féidir leat é a dhíchumasú go sainráite:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ChildModel</span><span class=\"p\">(</span><span class=\"n\">ParentModel</span><span class=\"p\">):</span>\n    <span class=\"c1\"># ...</span>\n    <span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Meta</span><span class=\"p\">:</span>\n        <span class=\"c1\"># Remove parent&#39;s ordering effect</span>\n        <span class=\"n\">ordering</span> <span class=\"o\">=</span> <span class=\"p\">[]</span>\n</code></pre></div>\n</section>\n<section id=\"inheritance-and-reverse-relations\">\n<h4>Caidreamh oidhreachta agus droim ar ais<a class=\"heading-anchor\" href=\"#inheritance-and-reverse-relations\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Because multi-table inheritance uses an implicit\n<a class=\"reference internal\" href=\"/ga/6.0/ref/models/fields/#django.db.models.OneToOneField\" title=\"django.db.models.OneToOneField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">OneToOneField</span></code></a> to link the child and\nthe parent, it's possible to move from the parent down to the child,\nas in the above example. However, this uses up the name that is the\ndefault <a class=\"reference internal\" href=\"/ga/6.0/ref/models/fields/#django.db.models.ForeignKey.related_name\" title=\"django.db.models.ForeignKey.related_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">related_name</span></code></a> value for\n<a class=\"reference internal\" href=\"/ga/6.0/ref/models/fields/#django.db.models.ForeignKey\" title=\"django.db.models.ForeignKey\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code></a> and\n<a class=\"reference internal\" href=\"/ga/6.0/ref/models/fields/#django.db.models.ManyToManyField\" title=\"django.db.models.ManyToManyField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code></a> relations. If you\nare putting those types of relations on a subclass of the parent model, you\n<strong>must</strong> specify the <a class=\"reference internal\" href=\"/ga/6.0/ref/models/fields/#django.db.models.ForeignKey.related_name\" title=\"django.db.models.ForeignKey.related_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">related_name</span></code></a>\nattribute on each such field. If you forget, Django will raise a validation\nerror.</p>\n<p>Mar shampla, ag baint úsáide as an rang <code class=\"docutils literal notranslate\"><span class=\"pre\">Place</span></code> thuas arís, cruthaímid fo-aicme eile le a:class: ~django.db.models.manyToManyField:</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\">Supplier</span><span class=\"p\">(</span><span class=\"n\">Place</span><span class=\"p\">):</span>\n    <span class=\"n\">customers</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ManyToManyField</span><span class=\"p\">(</span><span class=\"n\">Place</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Mar thoradh air seo tá an earráid:</p>\n<div class=\"code-block\" data-language=\"pytb\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Pytb</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Pytb code\"><code><span class=\"x\">Reverse query name for &#39;Supplier.customers&#39; clashes with reverse query</span>\n<span class=\"x\">name for &#39;Supplier.place_ptr&#39;.</span>\n\n<span class=\"x\">HINT: Add or change a related_name argument to the definition for</span>\n<span class=\"x\">&#39;Supplier.customers&#39; or &#39;Supplier.place_ptr&#39;.</span>\n</code></pre></div>\n<p>Ag cur <code class=\"docutils literal notranslate\"><span class=\"pre\">related_name</span></code> leis an réimse <code class=\"docutils literal notranslate\"><span class=\"pre\">custaiméirí</span> <span class=\"pre\">``mar</span> <span class=\"pre\">seo</span> <span class=\"pre\">a</span> <span class=\"pre\">leanas</span> <span class=\"pre\">réitfeadh</span> <span class=\"pre\">an</span> <span class=\"pre\">earráid:</span> <span class=\"pre\">``Models.manyTomanyField</span> <span class=\"pre\">(Place,</span> <span class=\"pre\">related_name='provider')</span></code>.</p>\n</section>\n<section id=\"specifying-the-parent-link-field\">\n<h4>An réimse nasc tuismitheoireachta<a class=\"heading-anchor\" href=\"#specifying-the-parent-link-field\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Mar a luadh, cruthóidh Django a:class: ~django.db.models.onetoonefield go huathoibríoch a nascann rang do pháiste ar ais le haon samhlacha tuismitheoirí neamh-teibí. &lt;django.db.models.OneToOneField.parent_link&gt;Más mian leat ainm na tréithe a nascann ar ais leis an tuismitheoir a rialú, is féidir leat do chuid féin a chruthú: class: ~django.db.models.onetoonefield agus set:attr: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>Parent_link=True <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>chun a léiriú gurb é do réimse an nasc ar ais chuig an rang tuismitheora.</p>\n</section>\n</section>\n<section id=\"proxy-models\">\n<span id=\"id10\"></span><h3>Múnlaí proxy<a class=\"heading-anchor\" href=\"#proxy-models\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Nuair a úsáidtear: ref: oidhreacht il-tábla &lt;multi-table-inheritance&gt;, cruthaítear tábla bunachar sonraí nua do gach fo-aicme de mhúnla. Is é seo de ghnáth an t-iompar atá ag teastáil, ós rud é go dteastaíonn áit ón bhfo-rang chun aon réimsí sonraí breise nach bhfuil i láthair ar an rang bonn a stóráil. Uaireanta, áfach, ní theastaíonn uait ach iompar Python samhail a athrú - b'fhéidir an bainisteoir réamhshocraithe a athrú, nó modh nua a chur leis.</p>\n<p>Seo a bhfuil oidhreacht samhail seachfhreastalaí ann: * proxy* a chruthú don tsamhail bhunaidh. Is féidir leat cásanna den tsamhail seachfhreastalaí a chruthú, a scriosadh agus a nuashonrú agus sábhálfar na sonraí go léir amhail is dá mbeadh an tsamhail bhunaidh (neamh-sheachadaithe) á úsáid agat. Is í an difríocht ná gur féidir leat rudaí mar ordú an tsamhail réamhshocraithe nó an bainisteoir réamhshocraithe sa seachfhreastalaí a athrú, gan an bunaidh a athrú.</p>\n<p>Fógraítear samhlacha seachfhreastalaí cosúil le gn Deir tú le Django gur samhail seachfhreastalaí é trí:attr: ~django.db.models.options.proxy tréith an aicme <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta</span></code> a shocrú go <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>.</p>\n<p>Mar shampla, cuir i gcás gur mhaith leat modh a chur leis an tsamhail <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Person`. Is féidir leat é a dhéanamh mar 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\">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\">30</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\">30</span><span class=\"p\">)</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyPerson</span><span class=\"p\">(</span><span class=\"n\">Person</span><span class=\"p\">):</span>\n    <span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Meta</span><span class=\"p\">:</span>\n        <span class=\"n\">proxy</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">do_something</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"c1\"># ...</span>\n        <span class=\"k\">pass</span>\n</code></pre></div>\n<p>Feidhmíonn an rang MyPerson` ar an tábla bunachar sonraí céanna leis an rang <code class=\"docutils literal notranslate\"><span class=\"pre\">Person</span></code> a thuismitheoir. Go háirithe, beidh aon chásanna nua de <code class=\"docutils literal notranslate\"><span class=\"pre\">Person</span></code> inrochtana freisin trí <code class=\"docutils literal notranslate\"><span class=\"pre\">My</span> <span class=\"pre\">Person</span></code>, agus a mhalairt:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">p</span> <span class=\"o\">=</span> <span class=\"n\">Person</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">first_name</span><span class=\"o\">=</span><span class=\"s2\">&quot;foobar&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">MyPerson</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"n\">first_name</span><span class=\"o\">=</span><span class=\"s2\">&quot;foobar&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;MyPerson: foobar&gt;</span>\n</code></pre></div>\n<p>D'fhéadfá samhail seachfhreastalaí a úsáid freisin chun ordú réamhshocraithe difriúil ar mhúnla a shainiú. B'fhéidir nach mbeadh tú ag iarraidh an tsamhail <code class=\"docutils literal notranslate\"><span class=\"pre\">Person`</span> <span class=\"pre\">a</span> <span class=\"pre\">ordú</span> <span class=\"pre\">i</span> <span class=\"pre\">gcónaí,</span> <span class=\"pre\">ach</span> <span class=\"pre\">ordú</span> <span class=\"pre\">go</span> <span class=\"pre\">rialta</span> <span class=\"pre\">de</span> <span class=\"pre\">réir</span> <span class=\"pre\">an</span> <span class=\"pre\">tréith</span> <span class=\"pre\">``last_name</span></code> nuair a úsáideann tú an seachfhreastalaí:</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\">OrderedPerson</span><span class=\"p\">(</span><span class=\"n\">Person</span><span class=\"p\">):</span>\n    <span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Meta</span><span class=\"p\">:</span>\n        <span class=\"n\">ordering</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;last_name&quot;</span><span class=\"p\">]</span>\n        <span class=\"n\">proxy</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>\n</code></pre></div>\n<p>Anois ní bheidh gnáth-cheisteanna <code class=\"docutils literal notranslate\"><span class=\"pre\">Person`</span> <span class=\"pre\">neamh-ordaithe</span> <span class=\"pre\">agus</span> <span class=\"pre\">ordófar</span> <span class=\"pre\">ceisteanna</span> <span class=\"pre\">``OrderedPerson</span></code> ag <code class=\"docutils literal notranslate\"><span class=\"pre\">last_name</span></code>.</p>\n<p>&lt;meta-and-multi-table-inheritance&gt;Oifreann samhlacha seachfhreastalaí tréithe <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta</span></code>: ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>ar an mbealach céanna le samhlacha rialta <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>.</p>\n<section id=\"querysets-still-return-the-model-that-was-requested\">\n<h4>Tugann <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code> fós an tsamhail a iarradh ar ais<a class=\"heading-anchor\" href=\"#querysets-still-return-the-model-that-was-requested\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Níl aon bhealach ann chun réad <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>MyPerson` a thabhairt ar Django a thabhairt ar ais, abair, aon uair a fhiosraíonn tú ar rudaí <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>Person`. Tabharfaidh tacar fiosrúcháin do rudaí <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">``</span></a>Person` ar ais na cineálacha rudaí sin. Is é pointe iomlán na rudaí seachfhreastalaí ná go n-úsáidfidh cód ag brath ar an <a href=\"#id7\"><span class=\"problematic\" id=\"id8\">``</span></a>Person` bunaidh iad siúd agus is féidir le do chód féin na síntí a chuir tú san áireamh a úsáid (nach bhfuil aon chód eile ag brath air ar aon nós). Ní bealach é chun rud éigin de do chruthú féin a chur in ionad an tsamhail <a href=\"#id9\"><span class=\"problematic\" id=\"id10\">``</span></a>Person` (nó aon rud eile) i ngach áit.</p>\n</section>\n<section id=\"base-class-restrictions\">\n<h4>Srianta aicme bonn<a class=\"heading-anchor\" href=\"#base-class-restrictions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Caithfidh samhail seachfhreastalaí oidhreacht ó rang samhail neamh-teibí amháin go díreach Ní féidir leat oidhreacht a dhéanamh ó iolracha samhlacha neamh-teibí toisc nach soláthraíonn an tsamhail seachfhreastalaí aon nasc idir na sraitheanna sna táblaí bunachar sonraí Is féidir le samhail seachfhreastalaí oidhreacht ó aon líon ranganna samhail teibí, ar an gcoinníoll nach sainmhíníonn siad aon réimsí samhlacha. Féadfaidh samhail seachfhreastalaí oidhreacht freisin ó aon líon samhlacha seachfhreastalaí a roinneann rang tuismitheoirí coiteann neamh</p>\n</section>\n<section id=\"proxy-model-managers\">\n<h4>Bainisteoirí samhail seachf<a class=\"heading-anchor\" href=\"#proxy-model-managers\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Mura sonraíonn tú aon bhainisteoirí samhlacha ar mhúnla seachfhreastalaí, faigheann sé na bainisteoirí oidhreachta óna thuismitheoirí samhlacha. Má shainmhíníonn tú bainisteoir ar an tsamhail seachfhreastalaí, beidh sé mar réamhshocrú, cé go mbeidh aon bhainisteoirí a shainmhínítear ar na tuismitheoirí ranganna ar fáil fós.</p>\n<p>Ag leanúint lenár sampla ó thuas, d'fhéadfá an bainisteoir réamhshocraithe a úsáidtear a athrú nuair a fhiosraíonn tú an tsamhail <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Person` mar 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\">NewManager</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=\"c1\"># ...</span>\n    <span class=\"k\">pass</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyPerson</span><span class=\"p\">(</span><span class=\"n\">Person</span><span class=\"p\">):</span>\n    <span class=\"n\">objects</span> <span class=\"o\">=</span> <span class=\"n\">NewManager</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\">proxy</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>\n</code></pre></div>\n<p>Más mian leat bainisteoir nua a chur leis an Seachfhreastalaí, gan an réamhshocrú atá ann cheana a athsholáthar, is féidir leat na te &lt;custom-managers-and-inheritance&gt;icnící a thuairiscítear sa dhoiciméadúiséireacht: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>bainisteoir saincheapaithe' a úsáid: bunaicme a chruthú ina bhfuil na bainisteoirí nua agus é sin a oidhreacht tar éis an bunaicme:</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\"># Create an abstract class for the new manager.</span>\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ExtraManagers</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\">secondary</span> <span class=\"o\">=</span> <span class=\"n\">NewManager</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\">MyPerson</span><span class=\"p\">(</span><span class=\"n\">Person</span><span class=\"p\">,</span> <span class=\"n\">ExtraManagers</span><span class=\"p\">):</span>\n    <span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Meta</span><span class=\"p\">:</span>\n        <span class=\"n\">proxy</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>\n</code></pre></div>\n<p>Is dócha nach mbeidh ort é seo a dhéanamh go minic, ach, nuair a dhéanann tú, is féidir é a dhéanamh.</p>\n</section>\n<section id=\"differences-between-proxy-inheritance-and-unmanaged-models\">\n<span id=\"proxy-vs-unmanaged-models\"></span><h4>Difríochtaí idir oidhreacht seachfhreastalaí agus samhlacha ne<a class=\"heading-anchor\" href=\"#differences-between-proxy-inheritance-and-unmanaged-models\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>D'fhéadfadh go mbeadh cuma an-chosúil ar oidhreacht samhail seachfhreastalaí le samhail neamh-bhainistithe a chruthú, ag baint úsáide as tréith: attr: ~django.db.models.options.managed ar aicme <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta</span></code> samhail.</p>\n<p>Le socrú cúramach de: attr: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>Meta.db_table &lt;django.db.models.Options.db_table&gt;`d'fhéadfá samhail neamh-bhainistithe a chruthú a dhéanann scáth ar mhúnla atá ann cheana agus a chuireann modhanna Python leis. Mar sin féin, bheadh sé sin an-athchleachtach agus leochaileach mar ní mór duit an dá chóip a choinneáil sioncronaithe má dhéanann tú aon athruithe.</p>\n<p>Ar an láimh eile, tá sé i gceist le samhlacha seachfhreastalaí iompar díreach cosúil leis an tsamhail atá siad ag seachfhreastalaí dó. Bíonn siad i gcónaí i gcomhréir leis an tsamhail tuismitheora ós rud é go ndéanann siad a réimsí agus a bhainisteoirí</p>\n<p>Is iad na rialacha ginearálta:</p>\n<ol class=\"arabic simple\">\n<li><p>Má tá tú ag scáthú samhail nó tábla bunachar sonraí atá ann cheana agus mura dteastaíonn na colúin bunaidh tábla bunachar sonraí uile uait, bain úsáid as Meta.Managed=False`. De ghnáth bíonn an rogha sin úsáideach chun tuairimí bunachar sonraí agus táblaí nach bhfuil faoi smacht Django a shamhaltú.</p></li>\n<li><p>Más mian leat iompar samhail Python amháin a athrú, ach na réimsí céanna go léir a choinneáil mar atá sa bhunaidh, bain úsáid as Meta.proxy=True`. Socraíonn sé seo rudaí suas ionas gur cóip cruinn é an tsamhail seachfhreastalaí de struchtúr stórála an tsamhail bhunaidh nuair a shábháiltear sonraí</p></li>\n</ol>\n</section>\n</section>\n<section id=\"multiple-inheritance\">\n<span id=\"model-multiple-inheritance-topic\"></span><h3>Oidhreacht iolrach<a class=\"heading-anchor\" href=\"#multiple-inheritance\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Díreach mar atá le fo-aicmiú Python, is féidir go mhúnla Django oidhreacht ó mhúnlaí ilthuismitheoirí. Coinnigh i gcuimhne go bhfuil feidhm ag gnáthrialacha réitigh ainm Python. Is é an ché &lt;meta-options&gt;ad rang bonn a bhfuil ainm áirithe (e.g.:ref: Meta `) le feiceáil ann an ceann a úsá &lt;meta-options&gt;idtear; mar shampla, ciallaíonn sé seo má tá aicme a:ref: `Meta i iliomad tuismitheoirí, ní bheidh ach an chéad cheann le húsáid, agus déanfar neamhaird ar gach duine eile.</p>\n<p>Go ginearálta, ní bheidh ort oidhreacht a dhéanamh ó iliomad tuismitheoirí. Is é an príomhchás úsáide ina bhfuil sé seo úsáideach ná do ranganna “measctha isteach”: réimse nó modh breise ar leith a chur le gach rang a thugann an meascán in oidhreacht. Déan iarracht d'ordlathais oidhreachta a choinneáil chomh simplí agus chomh simplí agus is féidir ionas nach mbeidh ort streachailt a dhéanamh chun oibriú amach cá as a bhfuil píosa faisnéise áirithe ag teacht.</p>\n<p>Tabhair faoi deara go n-ardóidh earráid ag oidhreacht ó iolracha samhlacha a bhfuil príomhréimse coitianta “id” acu. Chun oidhreacht iolrach a úsáid i gceart, is féidir leat explicit:class: ~django.db.models.autofield a úsáid sna bunmhúnlaí:</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\">Article</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\">article_id</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">AutoField</span><span class=\"p\">(</span><span class=\"n\">primary_key</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n    <span class=\"o\">...</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\">book_id</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">AutoField</span><span class=\"p\">(</span><span class=\"n\">primary_key</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n    <span class=\"o\">...</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">BookReview</span><span class=\"p\">(</span><span class=\"n\">Book</span><span class=\"p\">,</span> <span class=\"n\">Article</span><span class=\"p\">):</span>\n    <span class=\"k\">pass</span>\n</code></pre></div>\n<p>Nó bain úsáid as sinsear coiteann chun an: class: ~django.db.models.autofield a shealbhú. Éilíonn sé seo úsáid a bhaint as explicit:class: ~django.db.models.onetoonefield ó gach samhail tuismitheora go dtí an sinsear coiteann chun coimhlint idir na réimsí a ghineann agus a oidhreann an leanbh go huathoibríoch a sheachaint:</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\">Piece</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=\"k\">pass</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Article</span><span class=\"p\">(</span><span class=\"n\">Piece</span><span class=\"p\">):</span>\n    <span class=\"n\">article_piece</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">OneToOneField</span><span class=\"p\">(</span>\n        <span class=\"n\">Piece</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> <span class=\"n\">parent_link</span><span class=\"o\">=</span><span class=\"kc\">True</span>\n    <span class=\"p\">)</span>\n    <span class=\"o\">...</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\">Piece</span><span class=\"p\">):</span>\n    <span class=\"n\">book_piece</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">OneToOneField</span><span class=\"p\">(</span><span class=\"n\">Piece</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> <span class=\"n\">parent_link</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n    <span class=\"o\">...</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">BookReview</span><span class=\"p\">(</span><span class=\"n\">Book</span><span class=\"p\">,</span> <span class=\"n\">Article</span><span class=\"p\">):</span>\n    <span class=\"k\">pass</span>\n</code></pre></div>\n</section>\n<section id=\"field-name-hiding-is-not-permitted\">\n<h3>Ní cheadaítear ainm réimse “i bhfolach”<a class=\"heading-anchor\" href=\"#field-name-hiding-is-not-permitted\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>I ngnáthoidhreacht aicme Python, ceadaítear do rang linbh aon tréith ón rang tuismitheora a shárú. I Django, ní cheadaítear é seo de ghnáth do réimsí samhlacha. Má tá réimse ar a dtugtar <code class=\"docutils literal notranslate\"><span class=\"pre\">údar</span></code> ag rang bun-mhúnla neamh-teibí, ní féidir leat réimse samhail eile a chruthú nó tréith ar a dtugtar <code class=\"docutils literal notranslate\"><span class=\"pre\">údar</span></code> a shainiú in aon aicme a fhaigheann oidhreacht ón rang bonn sin.</p>\n<p>Ní bhaineann an srian seo le réimsí samhlacha a oidhreacht ó mhúnla teibí. Féadfar réimsí den sórt sin a shárú le réimse nó luach eile, nó iad a bhaint trí “field_name = None” a shocrú.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Warning</p>\n<p>Tá bainisteoirí samhlacha oidhreachta ó ranganna bonn teibí. D'fhéadfadh fabhtanna caolchúiseacha a bheith ina chúis le réimse oidhreachta dá dtagraíonn oidhreacht:class: ~Django.db.Models.Manager a shárú. &lt;custom-managers-and-inheritance&gt;Féach: tagairt: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>bainisteoirí saincheaptha agus oidhreacht mhúnla <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>.</p>\n</aside>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Sainmhíníonn roinnt réimsí tréithe breise ar an tsamhail, m.sh. a:class: ~django.db.models.foreignKey sainmhíníonn tréith breise le <code class=\"docutils literal notranslate\"><span class=\"pre\">_id</span></code> curtha leis an ainm réimse, chomh maith le <code class=\"docutils literal notranslate\"><span class=\"pre\">related_name</span></code> agus related_query_name` ar an tsamhail eachtrach.</p>\n<p>Ní féidir na tréithe breise seo a athrú mura n-athraítear nó baintear an réimse a shainmhíníonn é ionas nach sainmhíníonn sé an tréith breise a thuilleadh.</p>\n</aside>\n<p>Bíonn deacrachtaí i réimsí ar nós cásanna nua a thionscnamh (ag sonrú cén réimse atá á thionscnamh i Samhail. __init__`) agus sraitheadh. Is gnéithe iad seo nach gá le gnáthoidhreacht aicme Python déileáil leo ar an mbealach céanna, mar sin níl an difríocht idir oidhreacht mhúnla Django agus oidhreacht aicme Python treallach.</p>\n<p>Ní bhaineann an srian seo ach le tréithe arba:class: ~django.db.models.field cásanna. Is féidir gnáthtréithe Python a shárú más mian leat. Ní bhaineann sé ach le hainm na tréithe mar a fheiceann Python é: má tá ainm an cholún bunachar sonraí á shonrú agat de láimh, is féidir leat an t-ainm colún céanna a bheith le feiceáil i samhail leanbh agus sinsear le haghaidh oidhreachta il-tábla (is colúin iad i dhá thábla bunachar sonraí éagsúla).</p>\n<p>Ardóidh Django a:exc: ~django.core.exceptions.fielderror má sháraigh tú aon réimse samhail in aon mhúnla sinsear.</p>\n<p>Tabhair faoi deara, mar gheall ar an mbealach a réitítear réimsí le linn sainmhínithe ranga, réitear réimsí samhail a oidhreacht ó iliomad samhlacha teibí tuismitheoirí i ord doimhneach- Tá sé seo i gcodarsnacht le Python MRO caighdeánach, a réitear ar leithead ar dtús i gcásanna oidhreachta cruth diamaint. Ní théann an difríocht seo ach ar ordlathais chasta samhlacha, ar cheart duit iarracht a dhéanamh (de réir na comhairle thuas) a sheachaint.</p>\n</section>\n</section>\n<section id=\"organizing-models-in-a-package\">\n<h2>Múnlaí a eagrú i bpacáiste<a class=\"heading-anchor\" href=\"#organizing-models-in-a-package\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Cruthaíonn an t-ordú: DjaDmin: manage.py startapp struchtúr feidhmchláir a chuimsíonn comhad <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>&lt;startapp&gt;models.py`. Má tá go leor samhlacha agat, d'fhéadfadh sé a bheith úsáideach iad a eagrú i gcomhaid ar leithligh.</p>\n<p>Chun é sin a dhéanamh, cruthaigh pacáiste <code class=\"docutils literal notranslate\"><span class=\"pre\">samhlacha</span> <span class=\"pre\">``.</span> <span class=\"pre\">Bain</span> <span class=\"pre\">``models.py</span></code> agus cruthaigh eolaire <code class=\"docutils literal notranslate\"><span class=\"pre\">myapp/models/</span></code> le comhad <code class=\"docutils literal notranslate\"><span class=\"pre\">__init__.py</span></code> agus na comhaid chun do mhúnlaí a stóráil. Ní mór duit na samhlacha a iompórtáil sa chomhad <code class=\"docutils literal notranslate\"><span class=\"pre\">__init__.py</span></code>.</p>\n<p>Mar shampla, má bhí <code class=\"docutils literal notranslate\"><span class=\"pre\">organic.py</span></code> agus <code class=\"docutils literal notranslate\"><span class=\"pre\">synthetic.py</span></code> agat san eolaire <code class=\"docutils literal notranslate\"><span class=\"pre\">models</span></code>:</p>\n<figure class=\"code-block code-block-captioned\" data-language=\"python\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\"><span class=\"pre\">myapp/samhlacha/__init__.py</span></code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">.organic</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Person</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">.synthetic</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Robot</span>\n</code></pre></figure>\n<p>Tá na buntáistí ag iompórtáil gach samhail go sainráite seachas <code class=\"docutils literal notranslate\"><span class=\"pre\">from</span> <span class=\"pre\">.models</span> <span class=\"pre\">allmhairiúcháin</span> <span class=\"pre\">*</span></code> a úsáid ná gan an spás ainmneacha a ghabháil, an cód a dhéanamh níos inléite, agus uirlisí anailíse cód a choinneáil úsáideach.</p>\n<aside class=\"admonition admonition-seealso\">\n<p class=\"admonition-title\">See also</p>\n<dl class=\"simple\">\n<dt><a class=\"reference internal\" href=\"/ga/6.0/ref/models/\"><span class=\"doc\">The Models Reference</span></a></dt><dd><p>Clúdaíonn sé na APIs go léir a bhaineann le samhail lena n-áirítear réimsí samhail, rudaí gaolmhara, agus <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>QuerySet <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>.</p>\n</dd>\n</dl>\n</aside>\n</section>","rootId":"module-django.db.models","toc":[{"title":"Sampla tapa","anchor":"quick-example","children":[]},{"title":"Múnlaí a úsáid","anchor":"using-models","children":[]},{"title":"Réimsí","anchor":"fields","children":[{"title":"Cineálacha réimse","anchor":"field-types","children":[]},{"title":"Roghanna réimse","anchor":"field-options","children":[]},{"title":"Príomhréimsí uathoibríoch","anchor":"automatic-primary-key-fields","children":[]},{"title":"Ainmneacha réimse Verbose","anchor":"verbose-field-names","children":[]},{"title":"Caidrimh","anchor":"relationships","children":[{"title":"Caidrimh go leor le duine","anchor":"many-to-one-relationships","children":[]},{"title":"Caidrimh go leor","anchor":"many-to-many-relationships","children":[]},{"title":"Réimsí breise ar chaidrimh go leor","anchor":"extra-fields-on-many-to-many-relationships","children":[]},{"title":"Caidrimh duine le duine","anchor":"one-to-one-relationships","children":[]}]},{"title":"Múnlaí ar fud comhaid","anchor":"models-across-files","children":[]},{"title":"Srianta ainm réimse","anchor":"field-name-restrictions","children":[]},{"title":"cineálacha réimse saincheaptha","anchor":"custom-field-types","children":[]}]},{"title":"Roghanna Meta","anchor":"meta-options","children":[]},{"title":"Tréithe samhail","anchor":"model-attributes","children":[]},{"title":"Modhanna múnla","anchor":"model-methods","children":[{"title":"Modhanna samhail réamhshainithe a shárú","anchor":"overriding-predefined-model-methods","children":[]},{"title":"SQL saincheaptha a fheidhmiú","anchor":"executing-custom-sql","children":[]}]},{"title":"Oidhreacht múnla","anchor":"model-inheritance","children":[{"title":"Aicmí bonn teibí","anchor":"abstract-base-classes","children":[{"title":"Oidhreacht Meta","anchor":"meta-inheritance","children":[]},{"title":"Bí cúramach le ainm_gaolmhar ``agus ``ainm_ceisteanna gaolaitheach","anchor":"be-careful-with-related-name-and-related-query-name","children":[]}]},{"title":"Oidhreacht il-tábla","anchor":"multi-table-inheritance","children":[{"title":"Meta agus oidhreacht il-tábla","anchor":"meta-and-multi-table-inheritance","children":[]},{"title":"Caidreamh oidhreachta agus droim ar ais","anchor":"inheritance-and-reverse-relations","children":[]},{"title":"An réimse nasc tuismitheoireachta","anchor":"specifying-the-parent-link-field","children":[]}]},{"title":"Múnlaí proxy","anchor":"proxy-models","children":[{"title":"Tugann QuerySet fós an tsamhail a iarradh ar ais","anchor":"querysets-still-return-the-model-that-was-requested","children":[]},{"title":"Srianta aicme bonn","anchor":"base-class-restrictions","children":[]},{"title":"Bainisteoirí samhail seachf","anchor":"proxy-model-managers","children":[]},{"title":"Difríochtaí idir oidhreacht seachfhreastalaí agus samhlacha ne","anchor":"differences-between-proxy-inheritance-and-unmanaged-models","children":[]}]},{"title":"Oidhreacht iolrach","anchor":"multiple-inheritance","children":[]},{"title":"Ní cheadaítear ainm réimse “i bhfolach”","anchor":"field-name-hiding-is-not-permitted","children":[]}]},{"title":"Múnlaí a eagrú i bpacáiste","anchor":"organizing-models-in-a-package","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/index","title":"Samhlacha agus bunachair sonraí","url":"/ga/6.0/topics/db/"},"next":{"docname":"topics/db/queries","title":"Ceisteanna a dhéanamh","url":"/ga/6.0/topics/db/queries/"},"formats":{"html":"/ga/6.0/topics/db/models/","markdown":"/ga/6.0/topics/db/models.md","json":"/ga/6.0/topics/db/models.json"},"source":"https://github.com/django/django/blob/stable/6.0.x/docs/topics/db/models.txt","official":"https://docs.djangoproject.com/ga/6.0/topics/db/models/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}