{"title":"Tagairt sampla samhail","version":"6.0","locale":"ga","docname":"ref/models/instances","url":"/ga/6.0/ref/models/instances/","canonical":"https://djangodocs.dev/ga/6.0/ref/models/instances/","summary":"Déanann an doiciméad seo cur síos ar shonraí an API `` Samhail `` . Tógann sé ar an ábhar a chuirtear i láthair sna treoracha: doc: model agus:doc: ceisteanna…","html":"<h1>Tagairt sampla samhail<a class=\"heading-anchor\" href=\"#model-instance-reference\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Déanann an doiciméad seo cur síos ar shonraí an API <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Samhail <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>. Tógann sé ar an ábhar a chuirtear i láthair sna treoracha: doc: model agus:doc: ceisteanna bunachar sonraí &lt;/topics/db/models&gt;, mar sin is dócha go mbeidh tú ag iarraidh na do&lt;/topics/db/queries&gt; iciméid sin a léamh agus a thuiscint sula léann tú an ceann seo.</p>\n<p>Le linn na tagartha seo úsáidfimid an:ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>samplacha samplaí blag &lt;/topics/db/queries&gt; &lt;queryset-model-example&gt;`a chuirtear i láthair in:doc: <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>treoir fiosrúcháin bunachar sonraithe'.</p>\n<section id=\"creating-objects\">\n<h2>Cruthú rudaí<a class=\"heading-anchor\" href=\"#creating-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Chun sampla nua de mhúnla a chruthú, cuir isteach é cosúil le haon rang Python eile:</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Model\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Model</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.Model\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>The keyword arguments are the names of the fields you've defined on your model.\nNote that instantiating a model in no way touches your database; for that, you\nneed to <a class=\"reference internal\" href=\"#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>.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>You may be tempted to customize the model by overriding the <code class=\"docutils literal notranslate\"><span class=\"pre\">__init__</span></code>\nmethod. If you do so, however, take care not to change the calling\nsignature as any change may prevent the model instance from being saved.\nAdditionally, referring to model fields within <code class=\"docutils literal notranslate\"><span class=\"pre\">__init__</span></code> may potentially\nresult in infinite recursion errors in some circumstances. Rather than\noverriding <code class=\"docutils literal notranslate\"><span class=\"pre\">__init__</span></code>, try using one of these approaches:</p>\n<ol class=\"arabic\">\n<li><p>Cuir modh ranga leis an rang samhail:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Book</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">title</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n\n    <span class=\"nd\">@classmethod</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">create</span><span class=\"p\">(</span><span class=\"bp\">cls</span><span class=\"p\">,</span> <span class=\"n\">title</span><span class=\"p\">):</span>\n        <span class=\"n\">book</span> <span class=\"o\">=</span> <span class=\"bp\">cls</span><span class=\"p\">(</span><span class=\"n\">title</span><span class=\"o\">=</span><span class=\"n\">title</span><span class=\"p\">)</span>\n        <span class=\"c1\"># do something with the book</span>\n        <span class=\"k\">return</span> <span class=\"n\">book</span>\n\n\n<span class=\"n\">book</span> <span class=\"o\">=</span> <span class=\"n\">Book</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"s2\">&quot;Pride and Prejudice&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n</li>\n<li><p>Cuir modh leis ar bhainisteoir saincheaptha (is fearr de ghnáth):</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\">BookManager</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Manager</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">create_book</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">title</span><span class=\"p\">):</span>\n        <span class=\"n\">book</span> <span class=\"o\">=</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">create</span><span class=\"p\">(</span><span class=\"n\">title</span><span class=\"o\">=</span><span class=\"n\">title</span><span class=\"p\">)</span>\n        <span class=\"c1\"># do something with the book</span>\n        <span class=\"k\">return</span> <span class=\"n\">book</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Book</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">title</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n\n    <span class=\"n\">objects</span> <span class=\"o\">=</span> <span class=\"n\">BookManager</span><span class=\"p\">()</span>\n\n\n<span class=\"n\">book</span> <span class=\"o\">=</span> <span class=\"n\">Book</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">create_book</span><span class=\"p\">(</span><span class=\"s2\">&quot;Pride and Prejudice&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n</li>\n</ol>\n</aside>\n<aside class=\"admonition-setting-attributes-does-not-convert-types admonition\">\n<p class=\"admonition-title\">Setting attributes does not convert types</p>\n<p>Setting a model attribute does not convert the value to the field's Python\ntype. That conversion happens when the model is <a class=\"reference internal\" href=\"#validating-objects\"><span class=\"std std-ref\">validated</span></a>. Although a field assigned a value of a different\ntype (for example, a string assigned to a\n<a class=\"reference internal\" href=\"/ga/6.0/ref/models/fields/#django.db.models.UUIDField\" title=\"django.db.models.UUIDField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">UUIDField</span></code></a>) may be converted when\n<a class=\"reference internal\" href=\"#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> executes a query, the in-memory instance will keep the\noriginal value until it is <a class=\"reference internal\" href=\"#refreshing-objects\"><span class=\"std std-ref\">reloaded</span></a>.</p>\n</aside>\n<section id=\"customizing-model-loading\">\n<h3>Luchtú samhail a shaincheapadh<a class=\"heading-anchor\" href=\"#customizing-model-loading\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Model.from_db\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">classmethod</span></span><span class=\"w\"> </span></em><span class=\"sig-prename descclassname\"><span class=\"pre\">Model.</span></span><span class=\"sig-name descname\"><span class=\"pre\">from_db</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">db</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">field_names</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">values</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.Model.from_db\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Is féidir an modh <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>from_db () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>a úsáid chun cruthú sampla samhail a shaincheapadh agus tú ag luchtú ón mbunachar sonraí.</p>\n<p>Tá an ailias bunachar sonraí don bhunachar sonraí ón argóint db` a luchtaítear an tsamhail uaidh, tá field_names` ainmneacha na réimsí luchtaithe go léir, agus tá luacha` na luachanna luchtaithe do gach réimse in field_names`. Tá na <code class=\"docutils literal notranslate\"><span class=\"pre\">field_names</span></code> san ord céanna leis na luacha`. Má tá réimsí uile an tsamhail i láthair, ansin ráthaítear go mbeidh <code class=\"docutils literal notranslate\"><span class=\"pre\">luacha</span></code> san ord a bhfuil __init__ () `ag súil leo. Is é sin, is féidir an sampla a chruthú le ``cls (*luachanna) `. Má chuirtear aon réimsí ar iarchur, ní bheidh siad le feiceáil in field_names`. Sa chás sin, sannadh luach <code class=\"docutils literal notranslate\"><span class=\"pre\">Django.db.Models.Deferred</span></code> do gach ceann de na réimsí atá in easnamh.</p>\n<p>Chomh maith leis an tsamhail nua a chruthú, ní mór don modh <code class=\"docutils literal notranslate\"><span class=\"pre\">from_db</span> <span class=\"pre\">()</span> <span class=\"pre\">``na</span> <span class=\"pre\">bratacha</span> <span class=\"pre\">```adding</span></code> agus <code class=\"docutils literal notranslate\"><span class=\"pre\">db</span></code> a shocrú sa instanse nua 's:attr: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>~Model. tréith _state.</p>\n<p>Seo thíos sampla a thaispeánann conas luachanna tosaigh réimsí a luchtaítear ón mbunachar sonraí a thaifeadadh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">DEFERRED</span>\n\n\n<span class=\"nd\">@classmethod</span>\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">from_db</span><span class=\"p\">(</span><span class=\"bp\">cls</span><span class=\"p\">,</span> <span class=\"n\">db</span><span class=\"p\">,</span> <span class=\"n\">field_names</span><span class=\"p\">,</span> <span class=\"n\">values</span><span class=\"p\">):</span>\n    <span class=\"c1\"># Default implementation of from_db() (subject to change and could</span>\n    <span class=\"c1\"># be replaced with super()).</span>\n    <span class=\"k\">if</span> <span class=\"nb\">len</span><span class=\"p\">(</span><span class=\"n\">values</span><span class=\"p\">)</span> <span class=\"o\">!=</span> <span class=\"nb\">len</span><span class=\"p\">(</span><span class=\"bp\">cls</span><span class=\"o\">.</span><span class=\"n\">_meta</span><span class=\"o\">.</span><span class=\"n\">concrete_fields</span><span class=\"p\">):</span>\n        <span class=\"n\">values</span> <span class=\"o\">=</span> <span class=\"nb\">list</span><span class=\"p\">(</span><span class=\"n\">values</span><span class=\"p\">)</span>\n        <span class=\"n\">values</span><span class=\"o\">.</span><span class=\"n\">reverse</span><span class=\"p\">()</span>\n        <span class=\"n\">values</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n            <span class=\"n\">values</span><span class=\"o\">.</span><span class=\"n\">pop</span><span class=\"p\">()</span> <span class=\"k\">if</span> <span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">attname</span> <span class=\"ow\">in</span> <span class=\"n\">field_names</span> <span class=\"k\">else</span> <span class=\"n\">DEFERRED</span>\n            <span class=\"k\">for</span> <span class=\"n\">f</span> <span class=\"ow\">in</span> <span class=\"bp\">cls</span><span class=\"o\">.</span><span class=\"n\">_meta</span><span class=\"o\">.</span><span class=\"n\">concrete_fields</span>\n        <span class=\"p\">]</span>\n    <span class=\"n\">instance</span> <span class=\"o\">=</span> <span class=\"bp\">cls</span><span class=\"p\">(</span><span class=\"o\">*</span><span class=\"n\">values</span><span class=\"p\">)</span>\n    <span class=\"n\">instance</span><span class=\"o\">.</span><span class=\"n\">_state</span><span class=\"o\">.</span><span class=\"n\">adding</span> <span class=\"o\">=</span> <span class=\"kc\">False</span>\n    <span class=\"n\">instance</span><span class=\"o\">.</span><span class=\"n\">_state</span><span class=\"o\">.</span><span class=\"n\">db</span> <span class=\"o\">=</span> <span class=\"n\">db</span>\n    <span class=\"c1\"># customization to store the original field values on the instance</span>\n    <span class=\"n\">instance</span><span class=\"o\">.</span><span class=\"n\">_loaded_values</span> <span class=\"o\">=</span> <span class=\"nb\">dict</span><span class=\"p\">(</span>\n        <span class=\"nb\">zip</span><span class=\"p\">(</span><span class=\"n\">field_names</span><span class=\"p\">,</span> <span class=\"p\">(</span><span class=\"n\">value</span> <span class=\"k\">for</span> <span class=\"n\">value</span> <span class=\"ow\">in</span> <span class=\"n\">values</span> <span class=\"k\">if</span> <span class=\"n\">value</span> <span class=\"ow\">is</span> <span class=\"ow\">not</span> <span class=\"n\">DEFERRED</span><span class=\"p\">))</span>\n    <span class=\"p\">)</span>\n    <span class=\"k\">return</span> <span class=\"n\">instance</span>\n\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=\"c1\"># Check how the current values differ from ._loaded_values. For example,</span>\n    <span class=\"c1\"># prevent changing the creator_id of the model. (This example doesn&#39;t</span>\n    <span class=\"c1\"># support cases where &#39;creator_id&#39; is deferred).</span>\n    <span class=\"k\">if</span> <span class=\"ow\">not</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">_state</span><span class=\"o\">.</span><span class=\"n\">adding</span> <span class=\"ow\">and</span> <span class=\"p\">(</span>\n        <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">creator_id</span> <span class=\"o\">!=</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">_loaded_values</span><span class=\"p\">[</span><span class=\"s2\">&quot;creator_id&quot;</span><span class=\"p\">]</span>\n    <span class=\"p\">):</span>\n        <span class=\"k\">raise</span> <span class=\"ne\">ValueError</span><span class=\"p\">(</span><span class=\"s2\">&quot;Updating the value of creator isn&#39;t allowed&quot;</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>Taispeánann an sampla thuas cur chun feidhme iomlán <code class=\"docutils literal notranslate\"><span class=\"pre\">from_db</span> <span class=\"pre\">()</span> <span class=\"pre\">`chun</span> <span class=\"pre\">soiléiriú</span> <span class=\"pre\">a</span> <span class=\"pre\">dhéanamh</span> <span class=\"pre\">ar</span> <span class=\"pre\">an</span> <span class=\"pre\">gcaoi</span> <span class=\"pre\">a</span> <span class=\"pre\">ndéantar</span> <span class=\"pre\">é</span> <span class=\"pre\">sin.</span> <span class=\"pre\">Sa</span> <span class=\"pre\">chás</span> <span class=\"pre\">seo</span> <span class=\"pre\">bheadh</span> <span class=\"pre\">sé</span> <span class=\"pre\">in</span> <span class=\"pre\">ann</span> <span class=\"pre\">glao</span> <span class=\"pre\">``super</span> <span class=\"pre\">()</span> <span class=\"pre\">``a</span> <span class=\"pre\">úsáid</span> <span class=\"pre\">sa</span> <span class=\"pre\">mhodh</span> <span class=\"pre\">``from_db</span> <span class=\"pre\">()</span></code>.</p>\n</section>\n</section>\n<section id=\"refreshing-objects-from-database\">\n<span id=\"refreshing-objects\"></span><h2>Rudaí athnuachana ón mbunachar<a class=\"heading-anchor\" href=\"#refreshing-objects-from-database\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Má scriosann tú réimse ó shampla samhail, déanann rochtain a fháil air an luach ón mbunachar sonraí a athluchtú arís:</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\">obj</span> <span class=\"o\">=</span> <span class=\"n\">MyModel</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">first</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">del</span> <span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">field</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">field</span>  <span class=\"c1\"># Loads the field from the database</span>\n</code></pre></div>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Model.refresh_from_db\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Model.</span></span><span class=\"sig-name descname\"><span class=\"pre\">refresh_from_db</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">using</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">fields</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">from_queryset</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.Model.refresh_from_db\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Model.arefresh_from_db\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Model.</span></span><span class=\"sig-name descname\"><span class=\"pre\">arefresh_from_db</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">using</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">fields</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">from_queryset</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.Model.arefresh_from_db\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Asynchronous version</em>: <code class=\"docutils literal notranslate\"><span class=\"pre\">arefresh_from_db()</span></code></p>\n<p>Más gá duit luachanna samhail a athluchtú ón mbunachar sonraí, is féidir leat an modh <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>fresh_from_db () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>a úsáid. Nuair a ghlaofar an modh seo gan argóintí déantar an méid seo a leanas:</p>\n<ol class=\"arabic simple\">\n<li><p>Déantar gach réimse neamh-iarchurtha den tsamhail a nuashonrú go dtí na luachanna atá i láthair sa bhunachar sonraí.</p></li>\n<li><p>Déantar aon chaidreamh taisceáilte a ghlanadh ón gcás athluchtaithe.</p></li>\n</ol>\n<p>Ní dhéantar ach réimsí den tsamhail a athluchtú ón mbunachar sonraí. Ní dhéantar luachanna eile atá ag brath ar bhunachar sonraí mar anótaí a athluchtú. Any:func: &#64;cached_property&lt;django.utils.functional.cached_property&gt; ní ghlantar tréithe ach an oiread.</p>\n<p>Tarlaíonn an t-athluchtú ón mbunachar sonraí ar luchtadh an cás uaidh, nó ón mbunachar sonraí réamhshocraithe mura luchtaíodh an cás ón mbunachar sonraí. Is féidir an argóint <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>úsáid <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>a úsáid chun an bunachar sonraí a úsáidtear le haghaidh athluchtaithe a chur i bhfeidhm.</p>\n<p>Is féidir iallach a chur ar an tacar réimsí a luchtú tríd an argóint <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>réimsí <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>a úsáid.</p>\n<p>Mar shampla, chun tástáil a dhéanamh go raibh an nuashonrú ag súil leis mar thoradh ar ghlao <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>update () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>, d'fhéadfá tástáil cosúil leis seo a scríobh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">test_update_result</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n    <span class=\"n\">obj</span> <span class=\"o\">=</span> <span class=\"n\">MyModel</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\">val</span><span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">)</span>\n    <span class=\"n\">MyModel</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">pk</span><span class=\"o\">=</span><span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">pk</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">update</span><span class=\"p\">(</span><span class=\"n\">val</span><span class=\"o\">=</span><span class=\"n\">F</span><span class=\"p\">(</span><span class=\"s2\">&quot;val&quot;</span><span class=\"p\">)</span> <span class=\"o\">+</span> <span class=\"mi\">1</span><span class=\"p\">)</span>\n    <span class=\"c1\"># At this point obj.val is still 1, but the value in the database</span>\n    <span class=\"c1\"># was updated to 2. The object&#39;s updated value needs to be reloaded</span>\n    <span class=\"c1\"># from the database.</span>\n    <span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">refresh_from_db</span><span class=\"p\">()</span>\n    <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">assertEqual</span><span class=\"p\">(</span><span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">val</span><span class=\"p\">,</span> <span class=\"mi\">2</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Tabhair faoi deara, nuair a bhíonn rochtain ar réimsí iarchurtha, go dtarlaíonn luach an réimse iarchurtha tríd an modh seo. Dá bhrí sin is féidir an bealach a tharlaíonn luchtú iarchurtha a shaincheapadh. Taispeánann an sampla thíos conas is féidir le réimsí uile an cháis a athluchtú nuair a dhéantar réimse iarchurtha a athluchtú:</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\">ExampleModel</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\">def</span><span class=\"w\"> </span><span class=\"nf\">refresh_from_db</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">using</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">,</span> <span class=\"n\">fields</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"c1\"># fields contains the name of the deferred field to be</span>\n        <span class=\"c1\"># loaded.</span>\n        <span class=\"k\">if</span> <span class=\"n\">fields</span> <span class=\"ow\">is</span> <span class=\"ow\">not</span> <span class=\"kc\">None</span><span class=\"p\">:</span>\n            <span class=\"n\">fields</span> <span class=\"o\">=</span> <span class=\"nb\">set</span><span class=\"p\">(</span><span class=\"n\">fields</span><span class=\"p\">)</span>\n            <span class=\"n\">deferred_fields</span> <span class=\"o\">=</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">get_deferred_fields</span><span class=\"p\">()</span>\n            <span class=\"c1\"># If any deferred field is going to be loaded</span>\n            <span class=\"k\">if</span> <span class=\"n\">fields</span><span class=\"o\">.</span><span class=\"n\">intersection</span><span class=\"p\">(</span><span class=\"n\">deferred_fields</span><span class=\"p\">):</span>\n                <span class=\"c1\"># then load all of them</span>\n                <span class=\"n\">fields</span> <span class=\"o\">=</span> <span class=\"n\">fields</span><span class=\"o\">.</span><span class=\"n\">union</span><span class=\"p\">(</span><span class=\"n\">deferred_fields</span><span class=\"p\">)</span>\n        <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">refresh_from_db</span><span class=\"p\">(</span><span class=\"n\">using</span><span class=\"p\">,</span> <span class=\"n\">fields</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Ceadaíonn an argóint <code class=\"docutils literal notranslate\"><span class=\"pre\">from_queryset</span></code> tacar ceisteanna difriúil a úsáid ná an ceann a cruthaíodh ó: attr: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>~django.db.models.model. _bainisteoir bunaisteoir'. Tugann sé níos mó smachta duit ar an gcaoi a n-athluchtaítear an tsamhail. Mar shampla, nuair a úsáideann do mhúnla scriosadh bog is féidir leat <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>fresh_from_db () <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">``</span></a>a dhéanamh chun é seo a chur san áireamh:</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\">obj</span><span class=\"o\">.</span><span class=\"n\">refresh_from_db</span><span class=\"p\">(</span><span class=\"n\">from_queryset</span><span class=\"o\">=</span><span class=\"n\">MyModel</span><span class=\"o\">.</span><span class=\"n\">active_objects</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">())</span>\n</code></pre></div>\n<p>Is féidir leat rudaí a bhaineann le taisce a ghlanfaí ar shlí eile ón gcás athluchtaithe:</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\">obj</span><span class=\"o\">.</span><span class=\"n\">refresh_from_db</span><span class=\"p\">(</span><span class=\"n\">from_queryset</span><span class=\"o\">=</span><span class=\"n\">MyModel</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">select_related</span><span class=\"p\">(</span><span class=\"s2\">&quot;related_field&quot;</span><span class=\"p\">))</span>\n</code></pre></div>\n<p>Is féidir leat an tsraith a ghlasáil go dtí deireadh an idirbheart sula ndéanfaidh tú luachanna samhail a athlódáil:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">refresh_from_db</span><span class=\"p\">(</span><span class=\"n\">from_queryset</span><span class=\"o\">=</span><span class=\"n\">MyModel</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">select_for_update</span><span class=\"p\">())</span>\n</code></pre></div>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Model.get_deferred_fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Model.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_deferred_fields</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.Model.get_deferred_fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Modh cúntóra a thugann tacar ina bhfuil ainmneacha tréithe na réimsí sin go léir atá iarchurtha faoi láthair don tsamhail seo.</p>\n</section>\n<section id=\"validating-objects\">\n<span id=\"id1\"></span><h2>Rudaí a bhailíochtú<a class=\"heading-anchor\" href=\"#validating-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Tá ceithre chéim i gceist le samhail a bhailíochtú:</p>\n<ol class=\"arabic simple\">\n<li><p>Validate the model fields - <a class=\"reference internal\" href=\"#django.db.models.Model.clean_fields\" title=\"django.db.models.Model.clean_fields\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Model.clean_fields()</span></code></a></p></li>\n<li><p>Validate the model as a whole - <a class=\"reference internal\" href=\"#django.db.models.Model.clean\" title=\"django.db.models.Model.clean\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Model.clean()</span></code></a></p></li>\n<li><p>Validate the field uniqueness - <a class=\"reference internal\" href=\"#django.db.models.Model.validate_unique\" title=\"django.db.models.Model.validate_unique\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Model.validate_unique()</span></code></a></p></li>\n<li><p>Bailíochtú na srianta -:meth: Model.validate_restricints</p></li>\n</ol>\n<p>Déantar na ceithre chéim go léir nuair a ghlaonn tú ar mhodh samhail 's:meth: ~model.full_clean.</p>\n<p>When you use a <a class=\"reference internal\" href=\"/ga/6.0/topics/forms/modelforms/#django.forms.ModelForm\" title=\"django.forms.ModelForm\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code></a>, the call to\n<a class=\"reference internal\" href=\"/ga/6.0/ref/forms/api/#django.forms.Form.is_valid\" title=\"django.forms.Form.is_valid\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">is_valid()</span></code></a> will perform these validation steps for\nall the fields that are included on the form. See the <a class=\"reference internal\" href=\"/ga/6.0/topics/forms/modelforms/\"><span class=\"doc\">ModelForm\ndocumentation</span></a> for more information. You should only\nneed to call a model's <a class=\"reference internal\" href=\"#django.db.models.Model.full_clean\" title=\"django.db.models.Model.full_clean\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">full_clean()</span></code></a> method if you plan to handle\nvalidation errors yourself, or if you have excluded fields from the\n<a class=\"reference internal\" href=\"/ga/6.0/topics/forms/modelforms/#django.forms.ModelForm\" title=\"django.forms.ModelForm\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code></a> that require validation.</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Model.full_clean\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Model.</span></span><span class=\"sig-name descname\"><span class=\"pre\">full_clean</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">exclude</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">validate_unique</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">True</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">validate_constraints</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">True</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.Model.full_clean\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>This method calls <a class=\"reference internal\" href=\"#django.db.models.Model.clean_fields\" title=\"django.db.models.Model.clean_fields\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Model.clean_fields()</span></code></a>, <a class=\"reference internal\" href=\"#django.db.models.Model.clean\" title=\"django.db.models.Model.clean\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Model.clean()</span></code></a>,\n<a class=\"reference internal\" href=\"#django.db.models.Model.validate_unique\" title=\"django.db.models.Model.validate_unique\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Model.validate_unique()</span></code></a> (if <code class=\"docutils literal notranslate\"><span class=\"pre\">validate_unique</span></code> is <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>),  and\n<a class=\"reference internal\" href=\"#django.db.models.Model.validate_constraints\" title=\"django.db.models.Model.validate_constraints\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Model.validate_constraints()</span></code></a> (if <code class=\"docutils literal notranslate\"><span class=\"pre\">validate_constraints</span></code> is <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>)\nin that order and raises a <a class=\"reference internal\" href=\"/ga/6.0/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code></a> that\nhas a <code class=\"docutils literal notranslate\"><span class=\"pre\">message_dict</span></code> attribute containing errors from all four stages.</p>\n<p>Is féidir an argóint roghnach <code class=\"docutils literal notranslate\"><span class=\"pre\">eisiam</span></code> a úsáid chun taca` d'ainmneacha réimse a sholáthar is féidir iad a eisiamh ó bhailíochtú agus glantachán. :class: ~django.forms.ModelForm úsáideann an argóint seo chun réimsí nach bhfuil i láthair ar d'fhoirm a eisiamh ó bheith bailíochtaithe ós rud é nach bhféadfadh an t-úsáideoir aon earráidí a ardaíodh a cheartú.</p>\n<p>Note that <code class=\"docutils literal notranslate\"><span class=\"pre\">full_clean()</span></code> will <em>not</em> be called automatically when you call\nyour model's <a class=\"reference internal\" href=\"#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> method. You'll need to call it manually\nwhen you want to run one-step model validation for your own manually created\nmodels. 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.core.exceptions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">ValidationError</span>\n\n<span class=\"k\">try</span><span class=\"p\">:</span>\n    <span class=\"n\">article</span><span class=\"o\">.</span><span class=\"n\">full_clean</span><span class=\"p\">()</span>\n<span class=\"k\">except</span> <span class=\"n\">ValidationError</span> <span class=\"k\">as</span> <span class=\"n\">e</span><span class=\"p\">:</span>\n    <span class=\"c1\"># Do something based on the errors contained in e.message_dict.</span>\n    <span class=\"c1\"># Display them to a user, or handle them programmatically.</span>\n    <span class=\"k\">pass</span>\n</code></pre></div>\n<p>Is é an chéad chéim a dhéanann <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>full_clean () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>gach réimse aonair a ghlanadh.</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Model.clean_fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Model.</span></span><span class=\"sig-name descname\"><span class=\"pre\">clean_fields</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">exclude</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.Model.clean_fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Bailíochnóidh an modh seo gach réimse ar do mhúnla. Ligeann an argóint roghnach <code class=\"docutils literal notranslate\"><span class=\"pre\">eisiam</span></code> duit taca` d'ainmneacha réimse a sholáthar chun eisiamh ó bhailíochtú. Ardóidh sé a:exc: ~django.core.exceptions.validationError má theipeann ar aon réimsí bailíochtú.</p>\n<p>The second step <code class=\"docutils literal notranslate\"><span class=\"pre\">full_clean()</span></code> performs is to call <a class=\"reference internal\" href=\"#django.db.models.Model.clean\" title=\"django.db.models.Model.clean\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Model.clean()</span></code></a>.\nThis method should be overridden to perform custom validation on your model.</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Model.clean\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Model.</span></span><span class=\"sig-name descname\"><span class=\"pre\">clean</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.Model.clean\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Ba chóir an modh seo a úsáid chun bailíochtú samhail saincheaptha a sholáthar, agus tréithe ar do mhúnla a mhodhnú más mian. Mar shampla, d'fhéadfá é a úsáid chun luach a sholáthar go huathoibríoch do réimse, nó chun bailíochtú a dhéanamh a éilíonn rochtain ar níos mó ná réimse amháin:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">import</span><span class=\"w\"> </span><span class=\"nn\">datetime</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.core.exceptions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">ValidationError</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils.translation</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">gettext_lazy</span> <span class=\"k\">as</span> <span class=\"n\">_</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\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"o\">...</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">clean</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"c1\"># Don&#39;t allow draft entries to have a pub_date.</span>\n        <span class=\"k\">if</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">status</span> <span class=\"o\">==</span> <span class=\"s2\">&quot;draft&quot;</span> <span class=\"ow\">and</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">pub_date</span> <span class=\"ow\">is</span> <span class=\"ow\">not</span> <span class=\"kc\">None</span><span class=\"p\">:</span>\n            <span class=\"k\">raise</span> <span class=\"n\">ValidationError</span><span class=\"p\">(</span><span class=\"n\">_</span><span class=\"p\">(</span><span class=\"s2\">&quot;Draft entries may not have a publication date.&quot;</span><span class=\"p\">))</span>\n        <span class=\"c1\"># Set the pub_date for published items if it hasn&#39;t been set already.</span>\n        <span class=\"k\">if</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">status</span> <span class=\"o\">==</span> <span class=\"s2\">&quot;published&quot;</span> <span class=\"ow\">and</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">pub_date</span> <span class=\"ow\">is</span> <span class=\"kc\">None</span><span class=\"p\">:</span>\n            <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">pub_date</span> <span class=\"o\">=</span> <span class=\"n\">datetime</span><span class=\"o\">.</span><span class=\"n\">date</span><span class=\"o\">.</span><span class=\"n\">today</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>Note, however, that like <a class=\"reference internal\" href=\"#django.db.models.Model.full_clean\" title=\"django.db.models.Model.full_clean\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Model.full_clean()</span></code></a>, a model's <code class=\"docutils literal notranslate\"><span class=\"pre\">clean()</span></code>\nmethod is not invoked when you call your model's <a class=\"reference internal\" href=\"#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> method.</p>\n<p>Sa sampla thuas, rinneadh an eisceacht: exc: ~Django.Core.Exceptions.ValidationError arna ardú ag <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Model.clean () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>le sreang, mar sin stóráilfear é in eochair foclóir earráide speisialta, :data: ~Django.Core.Exceptions.non_field_errors. Úsáidtear an eochair seo le haghaidh earráidí atá ceangailte leis an tsamhail iomlán in ionad le réimse ar leith:</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.core.exceptions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">NON_FIELD_ERRORS</span><span class=\"p\">,</span> <span class=\"n\">ValidationError</span>\n\n<span class=\"k\">try</span><span class=\"p\">:</span>\n    <span class=\"n\">article</span><span class=\"o\">.</span><span class=\"n\">full_clean</span><span class=\"p\">()</span>\n<span class=\"k\">except</span> <span class=\"n\">ValidationError</span> <span class=\"k\">as</span> <span class=\"n\">e</span><span class=\"p\">:</span>\n    <span class=\"n\">non_field_errors</span> <span class=\"o\">=</span> <span class=\"n\">e</span><span class=\"o\">.</span><span class=\"n\">message_dict</span><span class=\"p\">[</span><span class=\"n\">NON_FIELD_ERRORS</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>Chun eisceachtaí a shannadh do réimse ar leith, cuir ainmne:exc: ~django.core.exceptions.validationError le foclóir, áit a bhfuil na heochracha ainmneacha réimse. D'fhéadfaimis an sampla roimhe seo a nuashonrú chun an earráid a shannadh don réimse <code class=\"docutils literal notranslate\"><span class=\"pre\">pub_date</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">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=\"o\">...</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">clean</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"c1\"># Don&#39;t allow draft entries to have a pub_date.</span>\n        <span class=\"k\">if</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">status</span> <span class=\"o\">==</span> <span class=\"s2\">&quot;draft&quot;</span> <span class=\"ow\">and</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">pub_date</span> <span class=\"ow\">is</span> <span class=\"ow\">not</span> <span class=\"kc\">None</span><span class=\"p\">:</span>\n            <span class=\"k\">raise</span> <span class=\"n\">ValidationError</span><span class=\"p\">(</span>\n                <span class=\"p\">{</span><span class=\"s2\">&quot;pub_date&quot;</span><span class=\"p\">:</span> <span class=\"n\">_</span><span class=\"p\">(</span><span class=\"s2\">&quot;Draft entries may not have a publication date.&quot;</span><span class=\"p\">)}</span>\n            <span class=\"p\">)</span>\n        <span class=\"o\">...</span>\n</code></pre></div>\n<p>Má bhraitheann tú earráidí i réimsí iolracha le linn <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Model.clean () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>, is féidir leat ainmneacha réimse mapála foclóra a chur ar earráidí freisin:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">raise</span> <span class=\"n\">ValidationError</span><span class=\"p\">(</span>\n    <span class=\"p\">{</span>\n        <span class=\"s2\">&quot;title&quot;</span><span class=\"p\">:</span> <span class=\"n\">ValidationError</span><span class=\"p\">(</span><span class=\"n\">_</span><span class=\"p\">(</span><span class=\"s2\">&quot;Missing title.&quot;</span><span class=\"p\">),</span> <span class=\"n\">code</span><span class=\"o\">=</span><span class=\"s2\">&quot;required&quot;</span><span class=\"p\">),</span>\n        <span class=\"s2\">&quot;pub_date&quot;</span><span class=\"p\">:</span> <span class=\"n\">ValidationError</span><span class=\"p\">(</span><span class=\"n\">_</span><span class=\"p\">(</span><span class=\"s2\">&quot;Invalid date.&quot;</span><span class=\"p\">),</span> <span class=\"n\">code</span><span class=\"o\">=</span><span class=\"s2\">&quot;invalid&quot;</span><span class=\"p\">),</span>\n    <span class=\"p\">}</span>\n<span class=\"p\">)</span>\n</code></pre></div>\n<p>Ansin, seiceálfaidh <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>full_clean () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>srianta uathúla ar do mhúnla.</p>\n<aside class=\"admonition-how-to-raise-field-specific-validation-errors-if-those-fields-don-t-appear-in-a-modelform admonition\">\n<p class=\"admonition-title\">Conas earráidí bailíochtaithe réimsiúnta a ardú mura bhfuil na réimsí sin le feiceáil i <code class=\"docutils literal notranslate\"><span class=\"pre\">Modelfhoirme</span></code></p>\n<p>Ní féidir leat earráidí bailíochtaithe a ardú in Model.clean () ``do réimsí nach bhfuil le feiceáil i bhfoirm mhúnla (féadfaidh foirm a réimsí a theorannú ag baint úsáide as `Meta.Fields` nó Meta.Exclude`). Ag déanamh amhlaidh, ardófar <code class=\"docutils literal notranslate\"><span class=\"pre\">Error</span> <span class=\"pre\">lua</span></code> toisc nach mbeidh an earráid bailíochtaithe in ann a bheith bainteach leis an réimse eisiata.</p>\n<p>Chun oibriú timpeall ar an aincheist seo, ina ionad sin déan iarrthó:meth: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>model.clean_fields () &lt;django.db.models.Model.clean_fields&gt;`mar a fhaigheann sé liosta na réimsí atá eisiata ó bhailíochtú. 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\">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=\"o\">...</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">clean_fields</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">exclude</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">):</span>\n        <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">clean_fields</span><span class=\"p\">(</span><span class=\"n\">exclude</span><span class=\"o\">=</span><span class=\"n\">exclude</span><span class=\"p\">)</span>\n        <span class=\"k\">if</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">status</span> <span class=\"o\">==</span> <span class=\"s2\">&quot;draft&quot;</span> <span class=\"ow\">and</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">pub_date</span> <span class=\"ow\">is</span> <span class=\"ow\">not</span> <span class=\"kc\">None</span><span class=\"p\">:</span>\n            <span class=\"k\">if</span> <span class=\"n\">exclude</span> <span class=\"ow\">and</span> <span class=\"s2\">&quot;status&quot;</span> <span class=\"ow\">in</span> <span class=\"n\">exclude</span><span class=\"p\">:</span>\n                <span class=\"k\">raise</span> <span class=\"n\">ValidationError</span><span class=\"p\">(</span>\n                    <span class=\"n\">_</span><span class=\"p\">(</span><span class=\"s2\">&quot;Draft entries may not have a publication date.&quot;</span><span class=\"p\">)</span>\n                <span class=\"p\">)</span>\n            <span class=\"k\">else</span><span class=\"p\">:</span>\n                <span class=\"k\">raise</span> <span class=\"n\">ValidationError</span><span class=\"p\">(</span>\n                    <span class=\"p\">{</span>\n                        <span class=\"s2\">&quot;status&quot;</span><span class=\"p\">:</span> <span class=\"n\">_</span><span class=\"p\">(</span>\n                            <span class=\"s2\">&quot;Set status to draft if there is not a publication date.&quot;</span>\n                        <span class=\"p\">),</span>\n                    <span class=\"p\">}</span>\n                <span class=\"p\">)</span>\n</code></pre></div>\n</aside>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Model.validate_unique\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Model.</span></span><span class=\"sig-name descname\"><span class=\"pre\">validate_unique</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">exclude</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.Model.validate_unique\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>&lt;django.db.models.Options.unique_together&gt;Tá an modh seo cosúil le:meth: ~Model.Clean_Fields, ach bailíochnaíonn sé srianta uathúlachta atá sainmhínithe trí:attr: .field.unique, :attr: .field.unique_for_date, :attr: .field.unique_for_year, nó r: Meta.unique_Together `ar do mhúnla in ionad luachanna réimse aonair. Ligeann an argóint roghnach ``eisiam` duit taca` d'ainmneacha réimse a sholáthar chun eisiamh ó bhailíochtú. Ardóidh sé a:exc: ~django.core.exceptions.validationError má theipeann ar aon réimsí bailíochtú.</p>\n<p>&lt;django.db.models.Options.constraints&gt;:class: ~Django.db.Models.UniqueConstraintna sainmhínithe in:attr: Meta.Constraint bailíochtaí:meth: Model.validate_restricints.</p>\n<p>Tabhair faoi deara má sholáthraíonn tú argóint <code class=\"docutils literal notranslate\"><span class=\"pre\">exclude</span></code> do validate_unique () `, ní sheiceálfar srian aon cheann:attr: ~django.db.models.options.unique_together a bhaineann le ceann de na réimsí a chuir tú ar fáil.</p>\n<p>Faoi dheireadh, seiceálfaidh <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>full_clean () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>aon srianta eile ar do mhúnla.</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Model.validate_constraints\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Model.</span></span><span class=\"sig-name descname\"><span class=\"pre\">validate_constraints</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">exclude</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.Model.validate_constraints\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>&lt;django.db.models.Options.constraints&gt;Bailíonn an modh seo na srianta go léir a shainmhínítear in:attr: Meta.Constraints `. Ligeann an argóint roghnach ``eisiam` duit taca` d'ainmneacha réimse a sholáthar chun eisiamh ó bhailíochtú. Ardóidh sé a:exc: ~django.core.exceptions.validationError má theipeann ar aon srianta ar bhailíochtú.</p>\n</section>\n<section id=\"saving-objects\">\n<h2>Rudaí a shábháil<a class=\"heading-anchor\" href=\"#saving-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Chun réad a shábháil ar ais chuig an mbunachar sonraí, glaoigh ar save () `:</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Model.save\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Model.</span></span><span class=\"sig-name descname\"><span class=\"pre\">save</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"keyword-only-separator o\"><abbr title=\"Keyword-only parameters separator (PEP 3102)\"><span class=\"pre\">*</span></abbr></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">force_insert</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">force_update</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">using</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">DEFAULT_DB_ALIAS</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">update_fields</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.Model.save\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Model.asave\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Model.</span></span><span class=\"sig-name descname\"><span class=\"pre\">asave</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"keyword-only-separator o\"><abbr title=\"Keyword-only parameters separator (PEP 3102)\"><span class=\"pre\">*</span></abbr></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">force_insert</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">force_update</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">using</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">DEFAULT_DB_ALIAS</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">update_fields</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.Model.asave\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Asynchronous version</em>: <code class=\"docutils literal notranslate\"><span class=\"pre\">asave()</span></code></p>\n<p>Le haghaidh sonraí maidir le húsáid na hargóintí <code class=\"docutils literal notranslate\"><span class=\"pre\">force_insert</span></code> agus <code class=\"docutils literal notranslate\"><span class=\"pre\">force_update</span></code>, féach:ref: ref-models-force-insert. Is féidir sonraí faoin argóint <code class=\"docutils literal notranslate\"><span class=\"pre\">update_fields</span></code> a fháil sa ranna:ref: ref-models-update-fields.</p>\n<p>Más mian leat iompar sábhála saincheaptha, is féidir leat an modh “save ()” seo a shárú. Féach: Ref: overriding-model-methods le haghaidh tuilleadh sonraí.</p>\n<p>Tá roinnt caoilteachtaí ag an bpróiseas sábhála samhail freisin; féach na codanna thíos.</p>\n<section id=\"auto-incrementing-primary-keys\">\n<h3>Eochracha bunscoile uathoibríoch<a class=\"heading-anchor\" href=\"#auto-incrementing-primary-keys\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Má tá samhail ag: class: ~django.db.models.autofield - eochair phríomh-mhéadaithe uathoibríoch - ansin ríomhfar agus sábhálfar an luach uathoibríoch sin mar thréith ar do réad an chéad uair a ghlaonn tú ar save () `:</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\">b2</span> <span class=\"o\">=</span> <span class=\"n\">Blog</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Cheddar Talk&quot;</span><span class=\"p\">,</span> <span class=\"n\">tagline</span><span class=\"o\">=</span><span class=\"s2\">&quot;Thoughts on cheese.&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">b2</span><span class=\"o\">.</span><span class=\"n\">id</span>  <span class=\"c1\"># Returns None, because b2 doesn&#39;t have an ID yet.</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">b2</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\">b2</span><span class=\"o\">.</span><span class=\"n\">id</span>  <span class=\"c1\"># Returns the ID of your new object.</span>\n</code></pre></div>\n<p>Níl aon bhealach ann a insint cad é luach aitheantais sula nglaonn tú ar <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>save () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>, toisc go ríomh do bhunachar sonraí an luach sin, ní ag Django.</p>\n<p>Ar mhaithe le áisiúlacht, tá: class: ~django.db.models.autofield ag gach samhail darb ainm id` de réir réamhshocraithe mura sonraíonn tú go sainráite <code class=\"docutils literal notranslate\"><span class=\"pre\">primary_key=true</span></code> ar réimse i do mhúnla. Féach an doiciméadú le haghaidh: class: ~django.db.models.autofield le haghaidh tuilleadh sonraí.</p>\n<section id=\"the-pk-property\">\n<h4>An mhaoin <code class=\"docutils literal notranslate\"><span class=\"pre\">pk</span></code><a class=\"heading-anchor\" href=\"#the-pk-property\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Model.pk\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Model.</span></span><span class=\"sig-name descname\"><span class=\"pre\">pk</span></span><a class=\"heading-anchor\" href=\"#django.db.models.Model.pk\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Regardless of whether you define a primary key field yourself, or let Django\nsupply one for you, each model will have a property called <code class=\"docutils literal notranslate\"><span class=\"pre\">pk</span></code>. It behaves\nlike a normal attribute on the model, but is actually an alias for whichever\nfield or fields compose the primary key for the model. You can read and set\nthis value, just as you would for any other attribute, and it will update the\ncorrect fields in the model.</p>\n<aside class=\"version-note version-changed\" data-version=\"5.2\">\n<p class=\"version-note-title\">Changed in Django 5.2</p><p>Support for the primary key to be composed of multiple fields was added via\n<code class=\"docutils literal notranslate\"><span class=\"pre\">CompositePrimaryKey</span></code>.</p>\n</aside>\n</section>\n<section id=\"explicitly-specifying-auto-primary-key-values\">\n<h4>Luachanna eochair uathoibríoch-phríomhúil<a class=\"heading-anchor\" href=\"#explicitly-specifying-auto-primary-key-values\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Má tá: class: ~django.db.models.autofield ag samhail ach ba mhaith leat aitheantas réad nua a shainiú go sainráite agus tú ag sábháil, sainmhínigh é go sainráite sula ndéantar é a shábháil, seachas brath ar shannadh uathoibríoch an 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\">b3</span> <span class=\"o\">=</span> <span class=\"n\">Blog</span><span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"mi\">3</span><span class=\"p\">,</span> <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Cheddar Talk&quot;</span><span class=\"p\">,</span> <span class=\"n\">tagline</span><span class=\"o\">=</span><span class=\"s2\">&quot;Thoughts on cheese.&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">b3</span><span class=\"o\">.</span><span class=\"n\">id</span>  <span class=\"c1\"># Returns 3.</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">b3</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\">b3</span><span class=\"o\">.</span><span class=\"n\">id</span>  <span class=\"c1\"># Returns 3.</span>\n</code></pre></div>\n<p>Má shannann tú luachanna eochair uathoibríoch de láimh, déan cinnte nach n-úsáideann tú luach príomh-eochair atá ann cheana féin! Má chruthaíonn tú réad nua le luach príomh-eochair follasach atá ann cheana féin sa bhunachar sonraí, glacfaidh Django leis go bhfuil tú ag athrú an taifead atá ann cheana seachas ceann nua a chruthú.</p>\n<p>Mar gheall ar an sampla bhlag <code class=\"docutils literal notranslate\"><span class=\"pre\">Cheddar</span> <span class=\"pre\">Talk</span></code> thuas, chuirfeadh an sampla seo an taifead roimhe seo sa bhunachar sonraí:</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\">b4</span> <span class=\"o\">=</span> <span class=\"n\">Blog</span><span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"mi\">3</span><span class=\"p\">,</span> <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Not Cheddar&quot;</span><span class=\"p\">,</span> <span class=\"n\">tagline</span><span class=\"o\">=</span><span class=\"s2\">&quot;Anything but cheese.&quot;</span><span class=\"p\">)</span>\n<span class=\"n\">b4</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">()</span>  <span class=\"c1\"># Overrides the previous blog with ID=3!</span>\n</code></pre></div>\n<p>Féach <a class=\"reference internal\" href=\"#how-django-knows-to-update-vs-insert\">Conas a bhfuil a fhios ag Django nuashonrú vs INSERT</a>, thíos, ar an gcúis a tharlaíonn sé seo.</p>\n<p>Tá luachanna eochair uathoibríoch a shonrú go sainráite úsáideach den chuid is mó le haghaidh rudaí sábhála móra, nuair a bhíonn tú muiníneach nach mbeidh imbhuailt eochair</p>\n<p>Má tá PostgreSQL á úsáid agat, b'fhéidir go mbeadh gá an seicheamh a bhaineann leis an bpríomh-eochair a nuashonrú; féach:ref: manually-specied-autoincrement-pk.</p>\n</section>\n</section>\n<section id=\"what-happens-when-you-save\">\n<h3>Cad a tharlaíonn nuair a shábháil tú?<a class=\"heading-anchor\" href=\"#what-happens-when-you-save\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Nuair a shábhálann tú réad, déanann Django na céimeanna seo a leanas:</p>\n<ol class=\"arabic\">\n<li><p><strong>Easaigh comhartha réamh-shábháil.</strong> Seoltar an comhartha: Data: ~django.db.models.signals.pre_save, rud a ligeann d'aon fheidhmeanna a éisteann don chomhartha sin rud éigin a dhéanamh.</p></li>\n<li><p><strong>Réamhphróiseáil na sonraí.</strong> Glaítear ar gach réimse:: ~django.db.models.field.pre_save modh chun aon mhodhnú uathoibrithe sonraí a theastaíonn a dhéanamh. Mar shampla, athraíonn na réimsí dáta/ama <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>pre_save () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>chun cur i bhfeidhmiú:attr: ~django.db.models.datefield.auto_now_add agus:attr: ~django.db.models.datefield.auto_now.</p></li>\n<li><p><strong>Ullmhaigh na sonraí don bhunachar sonraí.</strong> Iarrtar ar gach réimse:meth: ~django.db.models.field.get_db_prep_save modh a luach reatha a sholáthar i gcineál sonraí is féidir a scríobh chuig an mbunachar sonraí.</p>\n<p>Ní theastaíonn ullmhú sonraí ó chuid is mó de na réimsí. Tá cineálacha sonraí simplí, mar shampla sláimhreacha agus teaghráin, 'réidh le scríobh' mar réad Python. Mar sin féin, is minic a éilíonn roinnt modhnú ó chineálacha sonraí níos cast</p>\n<p>Mar shampla, úsáideann réimsí: :class: ~django.db.Models.DateField réad Python <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime</span></code> chun sonraí a stóráil. Ní stóráilíonn bunachair sonraí rudaí <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime</span></code>, mar sin caithfear an luach réimse a thiontú ina teaghrán dáta comhlíontach ISO lena chur isteach sa bhunachar sonraí.</p>\n</li>\n<li><p><strong>Cuir na sonraí isteach sa bhunachar sonraí.</strong> Tá na sonraí réamhphróiseáilte, ullmhaithe comhdhéanta i ráiteas SQL lena chur isteach sa bhunachar sonraí.</p></li>\n<li><p><strong>Easaigh comhartha iar-shábháil.</strong> Seoltar an comhartha: Data: ~django.db.models.signals.post_save, rud a ligeann d'aon fheidhmeanna a éisteann don chomhartha sin rud éigin a dhéanamh.</p></li>\n</ol>\n</section>\n<section id=\"how-django-knows-to-update-vs-insert\">\n<h3>Conas a bhfuil a fhios ag Django UPDATE vs INSERT<a class=\"heading-anchor\" href=\"#how-django-knows-to-update-vs-insert\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>B'fhéidir gur thug tú faoi deara go n-úsáideann rudaí bunachar sonraí Django an modh céanna <code class=\"docutils literal notranslate\"><span class=\"pre\">save</span> <span class=\"pre\">()</span> <span class=\"pre\">`chun</span> <span class=\"pre\">rudaí</span> <span class=\"pre\">a</span> <span class=\"pre\">chruthú</span> <span class=\"pre\">agus</span> <span class=\"pre\">a</span> <span class=\"pre\">athrú.</span> <span class=\"pre\">Déanann</span> <span class=\"pre\">Django</span> <span class=\"pre\">achoimrí</span> <span class=\"pre\">ar</span> <span class=\"pre\">an</span> <span class=\"pre\">ngá</span> <span class=\"pre\">chun</span> <span class=\"pre\">ráitis</span> <span class=\"pre\">SQL</span> <span class=\"pre\">``INSERT</span></code> nó <code class=\"docutils literal notranslate\"><span class=\"pre\">UPDATE</span></code> a úsáid. Go sonrach, nuair a ghlaonn tú ar save () ``agus nuair a shainmhíníonn príomh-thréith an réad** a:attr: `~django.db.models.field.default nó: attr: ~django.db.models.field.db_default, leanann Django an algartam seo:</p>\n<ul class=\"simple\">\n<li><p>If the object's primary key attribute is set to anything except <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>,\nDjango executes an <code class=\"docutils literal notranslate\"><span class=\"pre\">UPDATE</span></code>.</p></li>\n<li><p>Más rud é príomh-thréith eochair an réad* socraithe nó mura ndearna an UPDATE` rud ar bith a nuashonrú (m.sh. má tá eochair phríomhúil socraithe ar luach nach bhfuil sa bhunachar sonraí ann), déanann Django <code class=\"docutils literal notranslate\"><span class=\"pre\">INSERT</span></code> a fhorghníomhú.</p></li>\n</ul>\n<p>Má shainmhíníonn príomhthréith an réada a:attr: ~django.db.models.field.default nó: attr: ~django.db.models.field.db_default ansin déanann Django <code class=\"docutils literal notranslate\"><span class=\"pre\">UPDATE</span></code> a fhorghníomhú más samhail samhail atá ann agus socraítear eochair phríomhúil ar luach atá ann sa bhunachar sonraí. Seachas sin, déanann Django <code class=\"docutils literal notranslate\"><span class=\"pre\">INSERT</span></code> a fhorghníomhú.</p>\n<p>Is é an ceann a thugann anseo ná gur chóir duit a bheith cúramach gan luach príomh-eochair a shonrú go sainráite agus rudaí nua á shábháil, mura féidir leat a ráthú nach bhfuil an luach príomh-eochair neamhúsáidte. Le haghaidh tuilleadh eolais faoin nuans seo, féach <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>Luachanna uathoibríoch-phríomhúil a shonrú go sainráite <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>_ thuas agus <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">`</span></a>INSERT nó UPDATE`a chur i bhfeidhm <a href=\"#id7\"><span class=\"problematic\" id=\"id8\">`</span></a>_ thíos.</p>\n<p>I Django 1.5 agus níos luaithe, rinne Django <code class=\"docutils literal notranslate\"><span class=\"pre\">SELECT</span></code> nuair a shocraíodh an príomh-thréith eochair. Má aimsigh an <code class=\"docutils literal notranslate\"><span class=\"pre\">SELECT</span></code> sraith, ansin rinne Django <code class=\"docutils literal notranslate\"><span class=\"pre\">UPDATE</span></code>, ar shlí eile rinne sé <code class=\"docutils literal notranslate\"><span class=\"pre\">INSERT</span></code>. Mar thoradh ar an sean-algartam bíonn ceist amháin eile sa chás <code class=\"docutils literal notranslate\"><span class=\"pre\">UPDATE</span></code>. Tá roinnt cásanna annamh ann nach dtuairiscíonn an bunachar sonraí gur nuashonraíodh sraith fiú má tá sraith sa bhunachar sonraí do phríomhluach an réada. Sampla is ea an truicear PostgreSQL <code class=\"docutils literal notranslate\"><span class=\"pre\">ON</span> <span class=\"pre\">UPDATE</span></code> a fhilleann <code class=\"docutils literal notranslate\"><span class=\"pre\">NULL</span></code>. I gcásanna den sórt sin is féidir filleadh ar an sean-algartam tríd an rogha: attr: ~django.db.models.options.select_on_save a shocrú go <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>.</p>\n<section id=\"forcing-an-insert-or-update\">\n<span id=\"ref-models-force-insert\"></span><h4>INSERT nó UPDATE a chur i bhfeidhm<a class=\"heading-anchor\" href=\"#forcing-an-insert-or-update\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>In some rare circumstances, it's necessary to be able to force the\n<a class=\"reference internal\" href=\"#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> method to perform an SQL <code class=\"docutils literal notranslate\"><span class=\"pre\">INSERT</span></code> and not fall back to\ndoing an <code class=\"docutils literal notranslate\"><span class=\"pre\">UPDATE</span></code>. Or vice-versa: update, if possible, but not insert a new\nrow. In these cases you can pass the <code class=\"docutils literal notranslate\"><span class=\"pre\">force_insert=True</span></code> or\n<code class=\"docutils literal notranslate\"><span class=\"pre\">force_update=True</span></code> parameters to the <a class=\"reference internal\" href=\"#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> method.\nPassing both parameters is an error: you cannot both insert <em>and</em> update at the\nsame time!</p>\n<p>Nuair a úsáidtear: ref: oidhreacht il-tábla &lt;multi-table-inheritance&gt;, is féidir freisin tuipéil de na tuismitheoirí a sholáthar do <code class=\"docutils literal notranslate\"><span class=\"pre\">force_insert</span></code> d'fhonn ráitis <code class=\"docutils literal notranslate\"><span class=\"pre\">INSERT</span></code> a chur i bhfeidhm do gach bonn. Mar shampla:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">Restaurant</span><span class=\"p\">(</span><span class=\"n\">pk</span><span class=\"o\">=</span><span class=\"mi\">1</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><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">(</span><span class=\"n\">force_insert</span><span class=\"o\">=</span><span class=\"p\">(</span><span class=\"n\">Place</span><span class=\"p\">,))</span>\n\n<span class=\"n\">Restaurant</span><span class=\"p\">(</span><span class=\"n\">pk</span><span class=\"o\">=</span><span class=\"mi\">1</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> <span class=\"n\">rating</span><span class=\"o\">=</span><span class=\"mi\">4</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">(</span><span class=\"n\">force_insert</span><span class=\"o\">=</span><span class=\"p\">(</span><span class=\"n\">Place</span><span class=\"p\">,</span> <span class=\"n\">Rating</span><span class=\"p\">))</span>\n</code></pre></div>\n<p>Is féidir leat <code class=\"docutils literal notranslate\"><span class=\"pre\">force_insert=</span> <span class=\"pre\">(Models.model,)</span> <span class=\"pre\">``a</span> <span class=\"pre\">rith</span> <span class=\"pre\">chun</span> <span class=\"pre\">ráiteas</span> <span class=\"pre\">``INSERT</span></code> a chur i bhfeidhm do gach tuismitheoir. De réir réamhshocraithe, ní chuireann <code class=\"docutils literal notranslate\"><span class=\"pre\">force_insert=True</span></code> ach sraith nua a chur isteach don tsamhail reatha.</p>\n<aside class=\"version-note version-changed\" data-version=\"6.0\">\n<p class=\"version-note-title\">Changed in Django 6.0</p><p>When a forced update does not affect any rows a\n<a class=\"reference internal\" href=\"/ga/6.0/ref/models/class/#django.db.models.Model.NotUpdated\" title=\"django.db.models.Model.NotUpdated\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">NotUpdated</span></code></a> exception is raised. On previous\nversions a generic <a class=\"reference internal\" href=\"/ga/6.0/ref/exceptions/#django.db.DatabaseError\" title=\"django.db.DatabaseError\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">django.db.DatabaseError</span></code></a> was raised.</p>\n</aside>\n<p>Ba chóir go mbeadh sé an-annamh go mbeidh ort na paraiméadair seo a úsáid. Déanfaidh Django an rud ceart beagnach i gcónaí agus déanfaidh sé iarracht a shárú a bheidh mar thoradh ar earráidí atá deacair a rianú. Tá an ghné seo le haghaidh ardúsáide amháin.</p>\n<p>Ag baint úsáide as <code class=\"docutils literal notranslate\"><span class=\"pre\">update_fields</span></code>, cuirfear iallach ar nuashonrú ar an gcéanna le <code class=\"docutils literal notranslate\"><span class=\"pre\">force_update</span></code>.</p>\n</section>\n</section>\n<section id=\"updating-attributes-based-on-existing-fields\">\n<span id=\"ref-models-field-updates-using-f-expressions\"></span><h3>tréithe a nuashonrú bunaithe ar réimsí atá ann<a class=\"heading-anchor\" href=\"#updating-attributes-based-on-existing-fields\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Uaireanta beidh ort tasc uimhrithíochta simplí a dhéanamh ar réimse, mar shampla an luach reatha a mhéadú nó a laghdú. Bealach amháin chun é seo a bhaint amach is ea an uimhríocht a dhéanamh i Python mar:</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\">product</span> <span class=\"o\">=</span> <span class=\"n\">Product</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Venezuelan Beaver Cheese&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">product</span><span class=\"o\">.</span><span class=\"n\">number_sold</span> <span class=\"o\">+=</span> <span class=\"mi\">1</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">product</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>Más é 10 an seanluach <code class=\"docutils literal notranslate\"><span class=\"pre\">number_sold</span></code> a aisghabhadh ón mbunachar sonraí, ansin scríobhfar luach 11 ar ais chuig an mbunachar sonraí.</p>\n<p>Is féidir an próiseas a dhéanamh láidir, :ref: &lt;avoiding-race-conditions-using-f&gt;riocht rása a sheachaint, chomh maith le beagán níos gasta tríd an nuashonrú a chur in iúl i gcoibhneas leis an luach réimse bunaidh, seachas mar shannadh follasach de luach nua. Soláthraíonn Django: class: Abairtí F &lt;django.db.models.F&gt;`chun nuashonrú coibhneasta den chineál seo a dhéanamh. Ag baint úsáide as: aicme: `Abairtí F &lt;django.db.models.F&gt;, cuirtear an sampla roimhe seo in iúl mar:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">F</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">product</span> <span class=\"o\">=</span> <span class=\"n\">Product</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Venezuelan Beaver Cheese&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">product</span><span class=\"o\">.</span><span class=\"n\">number_sold</span> <span class=\"o\">=</span> <span class=\"n\">F</span><span class=\"p\">(</span><span class=\"s2\">&quot;number_sold&quot;</span><span class=\"p\">)</span> <span class=\"o\">+</span> <span class=\"mi\">1</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">product</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>&lt;topics-db-queries-update&gt;Le haghaidh tuilleadh sonraí, féach an doiciméadú ar:class: F abairtí &lt;django.db.models.F&gt;`agus a n:ref: `úsáid i gceisteanna nuashonraithe.</p>\n</section>\n<section id=\"specifying-which-fields-to-save\">\n<span id=\"ref-models-update-fields\"></span><h3>Sonraítear na réimsí atá le sábháil<a class=\"heading-anchor\" href=\"#specifying-which-fields-to-save\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Má chuirtear <code class=\"docutils literal notranslate\"><span class=\"pre\">save</span> <span class=\"pre\">()</span> <span class=\"pre\">``ar</span> <span class=\"pre\">liosta</span> <span class=\"pre\">ainmneacha</span> <span class=\"pre\">réimse</span> <span class=\"pre\">in</span> <span class=\"pre\">argóint</span> <span class=\"pre\">eochairfhocal</span> <span class=\"pre\">``update_fields</span></code>, ní dhéanfar ach na réimsí ainmnithe ar an liosta sin a nuashonrú. D'fhéadfadh sé seo a bheith inmhianaithe más mian leat ach réimse amháin nó cúpla réimse a nuashonrú ar réad. Beidh leas beag feidhmíochta ann as cosc a chur ar na réimsí samhlacha go léir a nuashonrú sa bhunachar sonraí. Mar shampla:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">product</span><span class=\"o\">.</span><span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;Name changed again&quot;</span>\n<span class=\"n\">product</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">(</span><span class=\"n\">update_fields</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">])</span>\n</code></pre></div>\n<p>Is féidir leis an argóint update_fields` a bheith ina aon athraitheacha ina bhfuil teaghráin. Sceapfaidh athraitheach folamh <code class=\"docutils literal notranslate\"><span class=\"pre\">update_fields</span></code> an sábháil. Déanfaidh luach <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>None <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>nuashonrú ar gach réimse.</p>\n<p>Má shonrófar <code class=\"docutils literal notranslate\"><span class=\"pre\">update_fields</span></code>, cuirfear iallach ar nuashonrú.</p>\n<p>When saving a model fetched through deferred model loading\n(<a class=\"reference internal\" href=\"/ga/6.0/ref/models/querysets/#django.db.models.query.QuerySet.only\" title=\"django.db.models.query.QuerySet.only\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">only()</span></code></a> or\n<a class=\"reference internal\" href=\"/ga/6.0/ref/models/querysets/#django.db.models.query.QuerySet.defer\" title=\"django.db.models.query.QuerySet.defer\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">defer()</span></code></a>) only the fields loaded\nfrom the DB will get updated. In effect there is an automatic\n<code class=\"docutils literal notranslate\"><span class=\"pre\">update_fields</span></code> in this case. If you assign or change any deferred field\nvalue, the field will be added to the updated fields.</p>\n<aside class=\"admonition-field-pre-save-and-update-fields admonition\">\n<p class=\"admonition-title\"><code class=\"docutils literal notranslate\"><span class=\"pre\">Field.pre_save</span> <span class=\"pre\">()</span> <span class=\"pre\">``agus</span> <span class=\"pre\">``update_fields</span></code></p>\n<p>Má chuirtear <code class=\"docutils literal notranslate\"><span class=\"pre\">update_fields</span></code> isteach, ní thugtar ach modhanna: meth: ~django.db.models.field.pre_save de na modhanna <code class=\"docutils literal notranslate\"><span class=\"pre\">update_fields</span></code>. Mar shampla, ciallaíonn sé seo nach ndéanfar réimsí dáta/ama le auto_now=true` a nuashonrú mura gcuirtear iad san áireamh sna <code class=\"docutils literal notranslate\"><span class=\"pre\">update_fields</span></code>.</p>\n</aside>\n</section>\n</section>\n<section id=\"deleting-objects\">\n<h2>Rudaí a scriosadh<a class=\"heading-anchor\" href=\"#deleting-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Model.delete\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Model.</span></span><span class=\"sig-name descname\"><span class=\"pre\">delete</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">using</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">DEFAULT_DB_ALIAS</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">keep_parents</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.Model.delete\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Model.adelete\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Model.</span></span><span class=\"sig-name descname\"><span class=\"pre\">adelete</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">using</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">DEFAULT_DB_ALIAS</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">keep_parents</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.Model.adelete\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><em>Leagan asincrón</em>: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>adelete () ``</p>\n<p>Eisíonn SQL <code class=\"docutils literal notranslate\"><span class=\"pre\">DELETE</span></code> don réad. Ní scriosann sé seo ach an réad sa bhunachar sonraí; beidh an cás Python ann fós agus beidh sonraí ann ina réimsí fós, ach amháin an príomh-eochair atá socraithe go <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>. Tugann an modh seo líon na rudaí scriosta agus foclóir le líon na scriosadh in aghaidh an chineál réada ar ais.</p>\n<p>Le haghaidh tuilleadh sonraí, lena n-áirítear conas rudaí a scriosadh ar an mórchóir, féach:ref: topics-db-queries-delete.</p>\n<p>Más mian leat iompar scriosta saincheaptha, is féidir leat an modh <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>delete () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>a shárú. Féach: Ref: overriding-model-methods le haghaidh tuilleadh sonraí.</p>\n<p>Uaireanta &lt;multi-table-inheritance&gt;le: ref: oidhreacht il-tábla b'fhéidir gur mhaith leat ach sonraí samhail linbh a scriosadh. Coinneoidh sonraí an tsamhail tuismitheora a shonrú <code class=\"docutils literal notranslate\"><span class=\"pre\">keep_parents=True</span></code>.</p>\n</section>\n<section id=\"pickling-objects\">\n<h2>Rudaí piceála<a class=\"heading-anchor\" href=\"#pickling-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Nuair a dhéanann tú: mod: pickle samhail, piciltear a staid reatha. Nuair a dhíphicfidh tú é, beidh an samhail samhail ann i láthair na huaire a piceáladh é, seachas na sonraí atá sa bhunachar sonraí faoi láthair.</p>\n<aside class=\"admonition-you-can-t-share-pickles-between-versions admonition\">\n<p class=\"admonition-title\">Ní féidir leat picíní a roinnt idir leaganacha</p>\n<p>Níl picilí samhlacha bailí ach don leagan de Django a úsáideadh chun iad a ghiniúint. Má ghineann tú picle ag baint úsáide as leagan Django N, níl aon ráthaíocht ann go mbeidh picle inléite le leagan Django N+1. Níor chóir picilí a úsáid mar chuid de straitéis cartlainne fadtéarmach.</p>\n<p>Ós rud é go bhféadfadh sé a bheith deacair earráidí comhoiriúnachta picéil a dhiagnóisiú, mar shampla rudaí truaillithe go ciúin, ardaítear <code class=\"docutils literal notranslate\"><span class=\"pre\">RuntimeWarning</span></code> nuair a dhéanann tú iarracht samhail a dhíphiocadh i leagan Django atá difriúil ná an ceann inar piceáladh é.</p>\n</aside>\n</section>\n<section id=\"other-model-instance-methods\">\n<span id=\"model-instance-methods\"></span><h2>Modhanna samhail eile<a class=\"heading-anchor\" href=\"#other-model-instance-methods\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Tá cuspóirí speisialta ag cúpla modh réad.</p>\n<section id=\"str\">\n<h3><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>__str__ () `<a class=\"heading-anchor\" href=\"#str\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Model.__str__\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Model.</span></span><span class=\"sig-name descname\"><span class=\"pre\">__str__</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.Model.__str__\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Glaítear ar an modh <code class=\"docutils literal notranslate\"><span class=\"pre\">__str__</span> <span class=\"pre\">()</span> <span class=\"pre\">``aon</span> <span class=\"pre\">uair</span> <span class=\"pre\">a</span> <span class=\"pre\">ghlaonn</span> <span class=\"pre\">tú</span> <span class=\"pre\">``str</span> <span class=\"pre\">()</span></code> ar réad. Úsáideann Django <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>str (obj) <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>i roinnt áiteanna. Go háirithe, rud a thaispeáint ar shuíomh riaracháin Django agus mar an luach a cuireadh isteach i dteimpléad nuair a thaispeánann sé réad. Dá bhrí sin, ba cheart duit léiriú deas, inléite don duine ar an tsamhail a thabhairt ar ais i gcónaí ón modh <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">``</span></a>__str__ () <a href=\"#id7\"><span class=\"problematic\" id=\"id8\">``</span></a>.</p>\n<p>Mar shampla:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"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\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=\"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</section>\n<section id=\"eq\">\n<h3><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>__eq__ () `<a class=\"heading-anchor\" href=\"#eq\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Model.__eq__\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Model.</span></span><span class=\"sig-name descname\"><span class=\"pre\">__eq__</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.Model.__eq__\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Sainmhínítear an modh comhionannais ionas go measfar cásanna a bhfuil an príomh-luach céanna agus an aicme coincréite céanna cothrom acu, ach amháin nach bhfuil cásanna a bhfuil príomh-phríomhluach “None” comhionann le haon rud seachas iad féin. Maidir le samhlacha seachfhreastalaí, sainmhínítear rang coincréite mar an chéad thuismitheoir neamh-seachfhreastalaí an tsamhail; i gcás gach samhail eile níl ann ach aicme</p>\n<p>Mar shampla:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"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\">MyModel</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"nb\">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\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyProxyModel</span><span class=\"p\">(</span><span class=\"n\">MyModel</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\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MultitableInherited</span><span class=\"p\">(</span><span class=\"n\">MyModel</span><span class=\"p\">):</span>\n    <span class=\"k\">pass</span>\n\n\n<span class=\"c1\"># Primary keys compared</span>\n<span class=\"n\">MyModel</span><span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">)</span> <span class=\"o\">==</span> <span class=\"n\">MyModel</span><span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">)</span>\n<span class=\"n\">MyModel</span><span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">)</span> <span class=\"o\">!=</span> <span class=\"n\">MyModel</span><span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"mi\">2</span><span class=\"p\">)</span>\n<span class=\"c1\"># Primary keys are None</span>\n<span class=\"n\">MyModel</span><span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">)</span> <span class=\"o\">!=</span> <span class=\"n\">MyModel</span><span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">)</span>\n<span class=\"c1\"># Same instance</span>\n<span class=\"n\">instance</span> <span class=\"o\">=</span> <span class=\"n\">MyModel</span><span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">)</span>\n<span class=\"n\">instance</span> <span class=\"o\">==</span> <span class=\"n\">instance</span>\n<span class=\"c1\"># Proxy model</span>\n<span class=\"n\">MyModel</span><span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">)</span> <span class=\"o\">==</span> <span class=\"n\">MyProxyModel</span><span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">)</span>\n<span class=\"c1\"># Multi-table inheritance</span>\n<span class=\"n\">MyModel</span><span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">)</span> <span class=\"o\">!=</span> <span class=\"n\">MultitableInherited</span><span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"mi\">1</span><span class=\"p\">)</span>\n</code></pre></div>\n</section>\n<section id=\"hash\">\n<h3><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>__hash__ () ``<a class=\"heading-anchor\" href=\"#hash\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Model.__hash__\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Model.</span></span><span class=\"sig-name descname\"><span class=\"pre\">__hash__</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.Model.__hash__\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Tá an modh <code class=\"docutils literal notranslate\"><span class=\"pre\">__hash__</span> <span class=\"pre\">()</span> <span class=\"pre\">``bunaithe</span> <span class=\"pre\">ar</span> <span class=\"pre\">phríomhluach</span> <span class=\"pre\">an</span> <span class=\"pre\">cháis.</span> <span class=\"pre\">Tá</span> <span class=\"pre\">sé</span> <span class=\"pre\">go</span> <span class=\"pre\">héifeachtach</span> <span class=\"pre\">``hash</span> <span class=\"pre\">(obj.pk)</span> <span class=\"pre\">``.</span> <span class=\"pre\">Mura</span> <span class=\"pre\">bhfuil</span> <span class=\"pre\">príomhluach</span> <span class=\"pre\">ag</span> <span class=\"pre\">an</span> <span class=\"pre\">gcás</span> <span class=\"pre\">ansin</span> <span class=\"pre\">ardófar</span> <span class=\"pre\">``TypeError</span></code> (ar shlí eile chuirfeadh an modh <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>__hash__ () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>luachanna difriúla ar ais roimh agus tar éis an cás a shábháil, ach athródh an: meth: ~ réad. Tá toirmiscthe ar luach __hash__ de shampla i Python.</p>\n</section>\n<section id=\"get-absolute-url\">\n<h3><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>get_absolute_url () `<a class=\"heading-anchor\" href=\"#get-absolute-url\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Model.get_absolute_url\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Model.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_absolute_url</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.Model.get_absolute_url\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Sainmhínigh modh <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>get_absolute_url () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>chun a insint do Django conas an URL canónach do réad a ríomh. Maidir le glaonna, ba cheart go bhfeicfeadh an modh seo sreang ar ais is féidir a úsáid chun tagairt a dhéanamh don réad thar HTTP.</p>\n<p>Mar shampla:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_absolute_url</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n    <span class=\"k\">return</span> <span class=\"s2\">&quot;/people/</span><span class=\"si\">%i</span><span class=\"s2\">/&quot;</span> <span class=\"o\">%</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">id</span>\n</code></pre></div>\n<p>While this code is correct and simple, it may not be the most portable way\nto write this kind of method. The <a class=\"reference internal\" href=\"/ga/6.0/ref/urlresolvers/#django.urls.reverse\" title=\"django.urls.reverse\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">reverse()</span></code></a> function is\nusually the best approach.</p>\n<p>Mar shampla:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_absolute_url</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n    <span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">reverse</span>\n\n    <span class=\"k\">return</span> <span class=\"n\">reverse</span><span class=\"p\">(</span><span class=\"s2\">&quot;people-detail&quot;</span><span class=\"p\">,</span> <span class=\"n\">kwargs</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;pk&quot;</span><span class=\"p\">:</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">pk</span><span class=\"p\">})</span>\n</code></pre></div>\n<p>Tá áit amháin a úsáideann Django <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>get_absolute_url () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>san aip riaracháin. Má shainmhíníonn réad an modh seo, beidh nasc “Amharc ar an láithreán” ag an leathanach eagarthóireachta réada a léimfidh tú go díreach chuig dearcadh poiblí an réada, mar a thugann <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">``</span></a>get_absolute_url () <a href=\"#id7\"><span class=\"problematic\" id=\"id8\">``</span></a>.</p>\n<p>Ar an gcaoi chéanna, úsáideann cúpla giotán eile de Django, mar shampla an: doc: creat beatha syndication <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>get_absolute_url () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>nuair &lt;/ref/contrib/syndication&gt; a shainmhínítear é. Má tá sé ciallmhar do chásanna do mhúnla go bhfuil URL uathúil ag gach ceann acu, ba cheart duit <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">``</span></a>get_absolute_url () <a href=\"#id7\"><span class=\"problematic\" id=\"id8\">`</span></a>a shainiú.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Warning</p>\n<p>Ba chóir duit an URL a thógáil ó ionchur úsáideora neamhbhailíochtaithe a sheachaint, d'fhonn féidearthachtaí nasc nó nimhiú a atreorú a laghdú</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\">def</span><span class=\"w\"> </span><span class=\"nf\">get_absolute_url</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n    <span class=\"k\">return</span> <span class=\"s2\">&quot;/</span><span class=\"si\">%s</span><span class=\"s2\">/&quot;</span> <span class=\"o\">%</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">name</span>\n</code></pre></div>\n<p>Más é <code class=\"docutils literal notranslate\"><span class=\"pre\">self.name</span></code> <code class=\"docutils literal notranslate\"><span class=\"pre\">`/example.com'</span></code> filleann sé <code class=\"docutils literal notranslate\"><span class=\"pre\">`'//example.com/'</span></code> ar URL bailí scéime coibhneasta é ach ní an <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>'/%2Fexample.com/'` a bhfuil súil leis.</p>\n</aside>\n<p>It's good practice to use <code class=\"docutils literal notranslate\"><span class=\"pre\">get_absolute_url()</span></code> in templates, instead of\nhardcoding your objects' URLs. For example, this template code is bad:</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Django template code\"><code><span class=\"cm\">&lt;!-- BAD template code. Avoid! --&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">a</span> <span class=\"na\">href</span><span class=\"o\">=</span><span class=\"s\">&quot;/people/</span><span class=\"cp\">{{</span> <span class=\"nv\">object.id</span> <span class=\"cp\">}}</span><span class=\"s\">/&quot;</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">object.name</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">a</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>Tá an cód teimpléad seo i bhfad níos fearr:</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Django template code\"><code><span class=\"p\">&lt;</span><span class=\"nt\">a</span> <span class=\"na\">href</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{{</span> <span class=\"nv\">object.get_absolute_url</span> <span class=\"cp\">}}</span><span class=\"s\">&quot;</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">object.name</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">a</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>Is é an loighic anseo ná má athraíonn tú struchtúr URL do chuid rudaí, fiú le haghaidh rud beag cosúil le earráid litrithe a cheartú, nach dteastaíonn uait gach áit a d'fhéadfaí an URL a chruthú a rianú. Sonraigh é uair amháin, i <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>get_absolute_url () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>agus glaoigh do chód eile go léir ar an áit amháin sin.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Ní mór ach carachtair ASCII a bheith san teaghrán a fhilleann tú ó get_absolute_url () ``**** (a theastaíonn ag an sonraíocht URI, :rfc: `3986 #section -2) agus ionchódaithe URL, más gá.</p>\n<p>Ba chóir go mbeadh cód agus teimpléid ag glaoch ar <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>get_absolute_url () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>in ann an toradh a úsáid go díreach gan aon phróiseáil bhreise. B'fhéidir gur mhaith leat an fheidhm <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">``</span></a>django.utils.encoding.iri_to_uri () <a href=\"#id7\"><span class=\"problematic\" id=\"id8\">`</span></a>a úsáid chun cabhrú leis seo má tá teaghráin á úsáid agat ina bhfuil carachtair lasmuigh den raon ASCII.</p>\n</aside>\n</section>\n</section>\n<section id=\"extra-instance-methods\">\n<h2>Modhanna sampla breise<a class=\"heading-anchor\" href=\"#extra-instance-methods\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>In addition to <a class=\"reference internal\" href=\"#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>, <a class=\"reference internal\" href=\"#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>, a model object\nmight have some of the following methods:</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Model.get_FOO_display\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Model.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_FOO_display</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.Model.get_FOO_display\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>I gcás gach réimse a bhfuil: attr: ~django.db.models.field.choices tacar aige, beidh modh <code class=\"docutils literal notranslate\"><span class=\"pre\">get_foo_display</span> <span class=\"pre\">()</span> <span class=\"pre\">``ag</span> <span class=\"pre\">an</span> <span class=\"pre\">réad,</span> <span class=\"pre\">áit</span> <span class=\"pre\">a</span> <span class=\"pre\">bhfuil</span> <span class=\"pre\">`FOO</span></code> ainm an réimse. Tugann an modh seo luach “inléite don duine” an réimse ar ais.</p>\n<p>Mar shampla:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"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\">2</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<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Model.get_next_by_FOO\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Model.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_next_by_FOO</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.Model.get_next_by_FOO\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Model.get_previous_by_FOO\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Model.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_previous_by_FOO</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.Model.get_previous_by_FOO\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>&lt;django.db.models.Field.null&gt;I gcás gach duine: ~Django.db.Models.DateField agus:class: ~Django.db.Models.DateTimeField nach bhfuil aith:attr: Null=True `, beidh modhanna ``Get_NEXT_BY_FOO () ``agus ``GET_PREVIOUS_BY_FOO ()` Is é <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>ainm an réimse. Tugann sé seo an chéad rud eile agus roimhe seo ar ais maidir leis an réimse dáta, ag ardú:: exc: ~django.db.models.model.doesNotExist eisceacht nuair is cuí.</p>\n<p>Déanfaidh an dá mhodh seo a gceisteanna ag baint úsáide as an mbainisteoir réamhshocraithe don tsamhail. &lt;field-lookups&gt;Más gá duit aithris a dhéanamh ar scagadh a úsáideann bainisteoir saincheaptha, nó más mian leat scagadh saincheaptha aonuaire a dhéanamh, glacann an dá mhodh le hargóintí eochairfhocal roghnacha freisin, ar chóir go mbeadh san fhormáid a thuairiscítear in:ref: Lookups allamui.</p>\n<p>Tabhair faoi deara, i gcás luachanna dáta comhionanna, úsáidfidh na modhanna seo an príomh-eochair mar bhriseadh ceangail. Ráthaíonn sé seo nach ndéantar aon taifid a scipeáil nó a dhúbailt. Ciallaíonn sé sin freisin nach féidir leat na modhanna sin a úsáid ar rudaí neamhshábháilte.</p>\n<aside class=\"admonition-overriding-extra-instance-methods admonition\">\n<p class=\"admonition-title\">Modhanna sampla breise a shárú</p>\n<p>I bhformhór na gcásanna ba chóir go n-oibreodh <code class=\"docutils literal notranslate\"><span class=\"pre\">get_foo_display</span> <span class=\"pre\">()</span> <span class=\"pre\">``,</span> <span class=\"pre\">`get_next_by_foo</span> <span class=\"pre\">()</span></code>, agus <code class=\"docutils literal notranslate\"><span class=\"pre\">get_previous_by_foo</span> <span class=\"pre\">()</span> <span class=\"pre\">``,</span> <span class=\"pre\">agus</span> <span class=\"pre\">``get_previous_by_foo</span> <span class=\"pre\">()</span> <span class=\"pre\">``</span> <span class=\"pre\">``</span> <span class=\"pre\">``</span> <span class=\"pre\">Get_Previous_by_foo</span> <span class=\"pre\">()</span></code>. Ós rud é go gcuireann an metaclass iad leis, áfach, níl sé praiticiúil cuntas a thabhairt ar gach struchtúr oidhreachta féideartha. I gcásanna níos casta ba chóir duit <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Field.contribute_to_class () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>a shárú chun na modhanna a theastaíonn uait a shocrú.</p>\n</aside>\n</section>\n<section id=\"other-attributes\">\n<h2>Tréithe eile<a class=\"heading-anchor\" href=\"#other-attributes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"state\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">_stáit</span></code><a class=\"heading-anchor\" href=\"#state\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Model._state\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Model.</span></span><span class=\"sig-name descname\"><span class=\"pre\">_state</span></span><a class=\"heading-anchor\" href=\"#django.db.models.Model._state\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Tagraíonn an tréith <code class=\"docutils literal notranslate\"><span class=\"pre\">_state</span> <span class=\"pre\">``do</span> <span class=\"pre\">réad</span> <span class=\"pre\">``ModelState</span></code> a rianaíonn saolré an tsamhail shampla.</p>\n<p>Tá dhá thréith ag an réad <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelState</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">Adding</span></code>, bratach atá <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> mura sábháladh an tsamhail chuig an mbunachar sonraí go fóill, agus db`, teaghrán a thagraíonn don ainm bunachar sonraí a luchtadh uaidh nó a shábháiltear leis.</p>\n<p>Tá Adding=true` agus <code class=\"docutils literal notranslate\"><span class=\"pre\">db=none</span></code> ag cásanna nua-ionchasacha, ós rud é nach bhfuil siad fós le sábháil. Beidh Adding=False` agus <code class=\"docutils literal notranslate\"><span class=\"pre\">db</span></code> socraithe ar ainm an bhunachar sonraí gaolmhar ar chásanna a gheobhaidh ó <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code>.</p>\n</dd></dl>\n\n</section>\n<section id=\"is-pk-set\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">_is_pk_set()</span></code><a class=\"heading-anchor\" href=\"#is-pk-set\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Model._is_pk_set\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Model.</span></span><span class=\"sig-name descname\"><span class=\"pre\">_is_pk_set</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.Model._is_pk_set\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<aside class=\"version-note version-added\" data-version=\"5.2\">\n<p class=\"version-note-title\">New in Django 5.2</p></aside>\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">_is_pk_set()</span></code> method returns whether the model instance's <code class=\"docutils literal notranslate\"><span class=\"pre\">pk</span></code> is set.\nIt abstracts the model's primary key definition, ensuring consistent behavior\nregardless of the specific <code class=\"docutils literal notranslate\"><span class=\"pre\">pk</span></code> configuration.</p>\n</section>\n</section>","rootId":"model-instance-reference","toc":[{"title":"Cruthú rudaí","anchor":"creating-objects","children":[{"title":"Luchtú samhail a shaincheapadh","anchor":"customizing-model-loading","children":[]}]},{"title":"Rudaí athnuachana ón mbunachar","anchor":"refreshing-objects-from-database","children":[]},{"title":"Rudaí a bhailíochtú","anchor":"validating-objects","children":[]},{"title":"Rudaí a shábháil","anchor":"saving-objects","children":[{"title":"Eochracha bunscoile uathoibríoch","anchor":"auto-incrementing-primary-keys","children":[{"title":"An mhaoin pk","anchor":"the-pk-property","children":[]},{"title":"Luachanna eochair uathoibríoch-phríomhúil","anchor":"explicitly-specifying-auto-primary-key-values","children":[]}]},{"title":"Cad a tharlaíonn nuair a shábháil tú?","anchor":"what-happens-when-you-save","children":[]},{"title":"Conas a bhfuil a fhios ag Django UPDATE vs INSERT","anchor":"how-django-knows-to-update-vs-insert","children":[{"title":"INSERT nó UPDATE a chur i bhfeidhm","anchor":"forcing-an-insert-or-update","children":[]}]},{"title":"tréithe a nuashonrú bunaithe ar réimsí atá ann","anchor":"updating-attributes-based-on-existing-fields","children":[]},{"title":"Sonraítear na réimsí atá le sábháil","anchor":"specifying-which-fields-to-save","children":[]}]},{"title":"Rudaí a scriosadh","anchor":"deleting-objects","children":[]},{"title":"Rudaí piceála","anchor":"pickling-objects","children":[]},{"title":"Modhanna samhail eile","anchor":"other-model-instance-methods","children":[{"title":"``__str__ () `","anchor":"str","children":[]},{"title":"``__eq__ () `","anchor":"eq","children":[]},{"title":"``__hash__ () ``","anchor":"hash","children":[]},{"title":"``get_absolute_url () `","anchor":"get-absolute-url","children":[]}]},{"title":"Modhanna sampla breise","anchor":"extra-instance-methods","children":[]},{"title":"Tréithe eile","anchor":"other-attributes","children":[{"title":"_stáit","anchor":"state","children":[]},{"title":"_is_pk_set()","anchor":"is-pk-set","children":[]}]}],"breadcrumbs":[{"docname":"ref/index","title":"Tagairt API","url":"/ga/6.0/ref/"},{"docname":"ref/models/index","title":"Samhla","url":"/ga/6.0/ref/models/"}],"prev":{"docname":"ref/models/options","title":"Roghanna múnla Meta","url":"/ga/6.0/ref/models/options/"},"next":{"docname":"ref/models/querysets","title":"Tagairt API ``QuerySet ``","url":"/ga/6.0/ref/models/querysets/"},"formats":{"html":"/ga/6.0/ref/models/instances/","markdown":"/ga/6.0/ref/models/instances.md","json":"/ga/6.0/ref/models/instances.json"},"source":"https://github.com/django/django/blob/stable/6.0.x/docs/ref/models/instances.txt","official":"https://docs.djangoproject.com/ga/6.0/ref/models/instances/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}