{"title":"Do chéad aip Django a scríobh, cuid 3","version":"5.2","locale":"ga","docname":"intro/tutorial03","url":"/ga/5.2/intro/tutorial03/","canonical":"https://djangodocs.dev/ga/5.2/intro/tutorial03/","summary":"Tosaíonn an rang teagaisc seo nuair a d'fhág Tutorial 2 as. Táimid ag leanúint leis an bhfeidhmchlár vótaíochta gréasáin agus díreoimid ar chomhéadan poiblí…","html":"<h1>Do chéad aip Django a scríobh, cuid 3<a class=\"heading-anchor\" href=\"#writing-your-first-django-app-part-3\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Tosaíonn an rang teagaisc seo nuair a d'fhág <a class=\"reference internal\" href=\"/ga/5.2/intro/tutorial02/\"><span class=\"doc\">Tutorial 2</span></a> as. Táimid ag leanúint leis an bhfeidhmchlár vótaíochta gréasáin agus díreoimid ar chomhéadan poiblí a chruthú -- &quot;tuairimí.&quot;</p>\n<aside class=\"admonition-where-to-get-help admonition\" role=\"note\">\n<p class=\"admonition-title\">Cá háit le cabhair a fháil:</p>\n<p>Má tá deacracht agat dul tríd an rang teagaisc seo, téigh ar aghaidh chuig an rannán :d oc:'Getting Help&lt;/faq/help&gt;' den rannán Ceisteanna Coitianta.</p>\n</aside>\n<section id=\"overview\">\n<h2>Forbhreathnú<a class=\"heading-anchor\" href=\"#overview\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Is éard is dearcadh ann ná &quot;cineál&quot; de leathanach gréasáin i d'iarratas Django a fhreastalaíonn go ginearálta ar fheidhm shonrach agus a bhfuil teimpléad ar leith aige. Mar shampla, in iarratas blag, b’fhéidir go mbeadh na tuairimí seo a leanas agat:</p>\n<ul class=\"simple\">\n<li><p>Leathanach baile blag -- taispeánann sé na hiontrálacha is déanaí.</p></li>\n<li><p>Iontráil &quot;mionsonraí&quot; leathanach -- leathanach permalink le haghaidh iontráil amháin.</p></li>\n<li><p>Leathanach cartlainne bunaithe ar bhliain -- taispeánann sé gach mí le hiontrálacha sa bhliain ar leith.</p></li>\n<li><p>Leathanach cartlainne bunaithe ar mhí -- taispeánann sé gach lá le hiontrálacha sa mhí ar leith.</p></li>\n<li><p>Leathanach cartlainne bunaithe ar an lá -- taispeánann sé gach iontráil sa lá ar leith.</p></li>\n<li><p>Gníomh tráchta -- Láimhseálann postáil tuairimí chuig iontráil tugtha.</p></li>\n</ul>\n<p>In ár n-iarratas vótaíochta, beidh na ceithre radharc seo a leanas againn:</p>\n<ul class=\"simple\">\n<li><p>Ceist &quot;innéacs&quot; leathanach - taispeánann sé na ceisteanna is déanaí.</p></li>\n<li><p>Leathanach &quot;mionsonraí&quot; Ceist -- taispeánann sé téacs ceiste, gan torthaí ach le foirm vótála.</p></li>\n<li><p>Ceist &quot;torthaí&quot; leathanach -- taispeánann torthaí do cheist ar leith.</p></li>\n<li><p>Vóta caingean - láimhseálann vótáil do rogha ar leith i gceist ar leith.</p></li>\n</ul>\n<p>In Django, déantar leathanaigh ghréasáin agus ábhar eile a sheachadadh trí radharcanna. Léirítear gach radharc le feidhm Python (nó modh, i gcás radhairc rangbhunaithe). Roghnóidh Django radharc tríd an URL a iarrtar a scrúdú (le bheith beacht, an chuid den URL tar éis an ainm fearainn).</p>\n<p>Anois agus tú i do chuid ama ar an ngréasán b'fhéidir gur tháinig tú trasna ar áilleachta mar <code class=\"docutils literal notranslate\">ME2/Sites/dirmod.htm?sid=&amp;type=gen&amp;mod=Core+Pages&amp;gid=A6CD4967199A42D9B65B1B</code>. Beidh tú sásta a fhios go gceadaíonn Django patrúin * URL * i bhfad níos galánta dúinn ná sin.</p>\n<p>Foirm ghinearálta URL is ea patrún URL - mar shampla: <code class=\"docutils literal notranslate\">/newsarchive/&lt;year&gt;/&lt;month&gt;/</code>.</p>\n<p>Chun dul ó URL go radharc, úsáideann Django rud ar a dtugtar 'URLconfs'. Léarscáilíonn URLconf patrúin URL chun amharc orthu.</p>\n<p>Soláthraíonn an rang teagaisc seo treoir bhunúsach maidir le húsáid URLconfs, agus is féidir leat tagairt a dhéanamh do <a class=\"reference internal\" href=\"/ga/5.2/topics/http/urls/\"><span class=\"doc\">URL dispatcher</span></a> le haghaidh tuilleadh eolais.</p>\n</section>\n<section id=\"writing-more-views\">\n<h2>Tuilleadh tuairimí á scríobh<a class=\"heading-anchor\" href=\"#writing-more-views\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Anois cuirimis cúpla radharc eile le <code class=\"docutils literal notranslate\">vótaíocht/views.py</code>. Tá na tuairimí seo beagán difriúil, toisc go nglacann siad argóint:</p>\n<figure class=\"code-block code-block-captioned\" data-language=\"python\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\">polls/views.py</code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"k\">def</span> <span class=\"nf\">detail</span><span class=\"p\">(</span>request<span class=\"p\">,</span> question_id<span class=\"p\">):</span>\n    <span class=\"k\">return</span> HttpResponse<span class=\"p\">(</span><span class=\"s2\">&quot;You&#39;re looking at question </span><span class=\"si\">%s</span><span class=\"s2\">.&quot;</span> <span class=\"o\">%</span> question_id<span class=\"p\">)</span>\n\n\n<span class=\"k\">def</span> <span class=\"nf\">results</span><span class=\"p\">(</span>request<span class=\"p\">,</span> question_id<span class=\"p\">):</span>\n    response <span class=\"o\">=</span> <span class=\"s2\">&quot;You&#39;re looking at the results of question </span><span class=\"si\">%s</span><span class=\"s2\">.&quot;</span>\n    <span class=\"k\">return</span> HttpResponse<span class=\"p\">(</span>response <span class=\"o\">%</span> question_id<span class=\"p\">)</span>\n\n\n<span class=\"k\">def</span> <span class=\"nf\">vote</span><span class=\"p\">(</span>request<span class=\"p\">,</span> question_id<span class=\"p\">):</span>\n    <span class=\"k\">return</span> HttpResponse<span class=\"p\">(</span><span class=\"s2\">&quot;You&#39;re voting on question </span><span class=\"si\">%s</span><span class=\"s2\">.&quot;</span> <span class=\"o\">%</span> question_id<span class=\"p\">)</span>\n</code></pre></figure>\n<p>Sreangaigh na radharcanna nua seo isteach sa mhodúl <code class=\"docutils literal notranslate\">polls.urls</code> tríd an méid seo a leanas a chur leis :func: glaonna ~ django.urls.path:</p>\n<figure class=\"code-block code-block-captioned\" data-language=\"python\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\">polls/urls.py</code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.urls</span> <span class=\"kn\">import</span> path\n\n<span class=\"kn\">from</span> <span class=\"nn\">.</span> <span class=\"kn\">import</span> views\n\nurlpatterns <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"c1\"># ex: /polls/</span>\n    path<span class=\"p\">(</span><span class=\"s2\">&quot;&quot;</span><span class=\"p\">,</span> views<span class=\"o\">.</span>index<span class=\"p\">,</span> name<span class=\"o\">=</span><span class=\"s2\">&quot;index&quot;</span><span class=\"p\">),</span>\n    <span class=\"c1\"># ex: /polls/5/</span>\n    path<span class=\"p\">(</span><span class=\"s2\">&quot;&lt;int:question_id&gt;/&quot;</span><span class=\"p\">,</span> views<span class=\"o\">.</span>detail<span class=\"p\">,</span> name<span class=\"o\">=</span><span class=\"s2\">&quot;detail&quot;</span><span class=\"p\">),</span>\n    <span class=\"c1\"># ex: /polls/5/results/</span>\n    path<span class=\"p\">(</span><span class=\"s2\">&quot;&lt;int:question_id&gt;/results/&quot;</span><span class=\"p\">,</span> views<span class=\"o\">.</span>results<span class=\"p\">,</span> name<span class=\"o\">=</span><span class=\"s2\">&quot;results&quot;</span><span class=\"p\">),</span>\n    <span class=\"c1\"># ex: /polls/5/vote/</span>\n    path<span class=\"p\">(</span><span class=\"s2\">&quot;&lt;int:question_id&gt;/vote/&quot;</span><span class=\"p\">,</span> views<span class=\"o\">.</span>vote<span class=\"p\">,</span> name<span class=\"o\">=</span><span class=\"s2\">&quot;vote&quot;</span><span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></figure>\n<p>Féach i do bhrabhsálaí, ag &quot;/polls/34/&quot;. Rithfidh sé an fheidhm <code class=\"docutils literal notranslate\">detail()</code> agus taispeánfaidh sé cibé aitheantas a sholáthraíonn tú san URL. Bain triail as &quot;/polls/34/results/&quot; agus &quot;/polls/34/vote/&quot; freisin -- taispeánfaidh siad seo torthaí an tsealbhóra ionad agus na leathanaigh vótála.</p>\n<p>Nuair a iarrann duine éigin leathanach ó do shuíomh Gréasáin -- abair, &quot;/polls/34/&quot;, lódálfaidh Django an modúl Python <code class=\"docutils literal notranslate\">mysite.urls</code> toisc go bhfuil sé dírithe ag an socrú <a class=\"reference internal\" href=\"/ga/5.2/ref/settings/#std-setting-ROOT_URLCONF\"><code class=\"xref std std-setting docutils literal notranslate\">ROOT_URLCONF</code></a>. Faigheann sé an athróg darb ainm <code class=\"docutils literal notranslate\">urlpatterns</code> agus trasnaíonn sé na patrúin in ord. Tar éis dó an meaits a aimsiú ag <code class=\"docutils literal notranslate\">` pobalbhreith/'</code>, scriosann sé an téacs meaitseála (<code class=\"docutils literal notranslate\">&quot; pobalbhreith / &quot;</code>) agus seolann sé an téacs atá fágtha -- `` &quot;34/&quot;`` -- chuig an ' URLconf polls.urls le haghaidh tuilleadh próiseála. Is amhlaidh a mheaitseálann sé <code class=\"docutils literal notranslate\">' &lt;int:question_id&gt;/'</code>, agus glao ar an radharc <code class=\"docutils literal notranslate\">detail()</code> mar seo a leanas:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"go\">detail(request=&lt;HttpRequest object&gt;, question_id=34)</span>\n</code></pre></div>\n<p>Tagann an chuid <code class=\"docutils literal notranslate\">question_id=34</code> ó `` &lt;int:question_id&gt;``. Ag baint úsáide as lúibíní uillinn &quot;gabhálann&quot; cuid den URL agus seolann sé mar argóint eochairfhocal chuig an bhfeidhm radhairc. Sainmhíníonn an chuid <code class=\"docutils literal notranslate\">question_id</code> den teaghrán an t-ainm a úsáidfear chun an patrún comhoiriúnaithe a shainaithint, agus is tiontaire é an chuid <code class=\"docutils literal notranslate\">int</code> a shocraíonn cé na patrúin ba cheart a bheith ag teacht leis an gcuid seo den chonair URL. Scarann ​​an colon (<code class=\"docutils literal notranslate\">:</code>) an t-ainm tiontaire agus patrún.</p>\n</section>\n<section id=\"write-views-that-actually-do-something\">\n<h2>Scríobh tuairimí a dhéanann rud éigin i ndáiríre<a class=\"heading-anchor\" href=\"#write-views-that-actually-do-something\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Tá gach amharc freagrach as ceann amháin de dhá rud a dhéanamh: réad <a class=\"reference internal\" href=\"/ga/5.2/ref/request-response/#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a> a thabhairt ar ais ina bhfuil an t-ábhar don leathanach iarrtha, nó eisceacht a ardú mar <a class=\"reference internal\" href=\"/ga/5.2/topics/http/views/#django.http.Http404\" title=\"django.http.Http404\"><code class=\"xref py py-exc docutils literal notranslate\">Http404</code></a> . Tá an chuid eile suas duit.</p>\n<p>Is féidir le do radharc taifid ó bhunachar sonraí a léamh, nó ní féidir. Is féidir leis córas teimpléid a úsáid mar Django's -- nó córas teimpléid Python tríú páirtí -- nó nach bhfuil. Is féidir leis comhad PDF a ghiniúint, XML a aschur, comhad ZIP a chruthú ar an eitilt, rud ar bith is mian leat, ag baint úsáide as cibé leabharlanna Python is mian leat.</p>\n<p>Níl uait ach Django ná <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">:rang:`~django.http.HttpResponse`</span></a>. Nó eisceacht.</p>\n<p>Toisc go bhfuil sé áisiúil, bainimis úsáid as API bunachar sonraí Django féin, a chlúdaigh muid i <a class=\"reference internal\" href=\"/ga/5.2/intro/tutorial02/\"><span class=\"doc\">Teagasc 2</span></a>. Seo stab amháin ag radharc nua <code class=\"docutils literal notranslate\">innéacs()</code>, a thaispeánann na 5 cheist vótaíochta is déanaí sa chóras, scartha le camóga, de réir dáta foilsithe:</p>\n<figure class=\"code-block code-block-captioned\" data-language=\"python\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\">polls/views.py</code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.http</span> <span class=\"kn\">import</span> HttpResponse\n\n<span class=\"kn\">from</span> <span class=\"nn\">.models</span> <span class=\"kn\">import</span> Question\n\n\n<span class=\"k\">def</span> <span class=\"nf\">index</span><span class=\"p\">(</span>request<span class=\"p\">):</span>\n    latest_question_list <span class=\"o\">=</span> Question<span class=\"o\">.</span>objects<span class=\"o\">.</span>order_by<span class=\"p\">(</span><span class=\"s2\">&quot;-pub_date&quot;</span><span class=\"p\">)[:</span><span class=\"mi\">5</span><span class=\"p\">]</span>\n    output <span class=\"o\">=</span> <span class=\"s2\">&quot;, &quot;</span><span class=\"o\">.</span>join<span class=\"p\">([</span>q<span class=\"o\">.</span>question_text <span class=\"k\">for</span> q <span class=\"ow\">in</span> latest_question_list<span class=\"p\">])</span>\n    <span class=\"k\">return</span> HttpResponse<span class=\"p\">(</span>output<span class=\"p\">)</span>\n\n\n<span class=\"c1\"># Leave the rest of the views (detail, results, vote) unchanged</span>\n</code></pre></figure>\n<p>Tá fadhb anseo, áfach: tá cód crua ar dhearadh an leathanaigh san amharc. Más mian leat an cuma ar an leathanach a athrú, beidh ort an cód Python seo a chur in eagar. Mar sin, bainimis úsáid as córas teimpléid Django chun an dearadh a scaradh ó Python trí theimpléad a chruthú ar féidir leis an radharc a úsáid.</p>\n<p>Ar dtús, cruthaigh eolaire darb ainm <code class=\"docutils literal notranslate\">templates</code> i do eolaire `` pobalbhreith <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>. Féachfaidh Django le haghaidh teimpléid ann.</p>\n<p>Déanann socrú <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">:suíomh:`TEMPLATES`</span></a> do thionscadal cur síos ar an gcaoi a ndéanfaidh Django teimpléid a luchtú agus a rindreáil. Cumraíonn an comhad socruithe réamhshocraithe inneall <code class=\"docutils literal notranslate\">DjangoTemplates</code> a bhfuil a rogha <a class=\"reference internal\" href=\"/ga/5.2/ref/settings/#std-setting-TEMPLATES-APP_DIRS\"><code class=\"xref std std-setting docutils literal notranslate\">APP_DIRS</code></a> socraithe go <code class=\"docutils literal notranslate\">True</code>. De réir an ghnáis lorgaíonn <code class=\"docutils literal notranslate\">DjangoTemplates</code> fochomhadlann &quot;teimpléid&quot; i ngach ceann de na <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">:suíomh:`INSTALLED_APPS`</span></a>.</p>\n<p>Laistigh den eolaire <code class=\"docutils literal notranslate\">templates</code> atá díreach cruthaithe agat, cruthaigh eolaire eile ar a dtugtar `` pobalbhreith``, agus laistigh de sin cruthaigh comhad ar a dtugtar `` index.html``. Is é sin le rá, ba cheart go mbeadh do theimpléad ag <code class=\"docutils literal notranslate\">vótaíocht/templates/polls/index.html</code>. Mar gheall ar an gcaoi a n-oibríonn an lódóir teimpléid `` app_directories`` mar a thuairiscítear thuas, is féidir leat tagairt a dhéanamh don teimpléad seo laistigh de Django mar `` pobalbhreith / index.html <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>.</p>\n<aside class=\"admonition-template-namespacing admonition\" role=\"note\">\n<p class=\"admonition-title\">Spásáil ainm teimpléad</p>\n<p>Anois * b'fhéidir go mbeimid in ann fáil amach lenár dteimpléid a chur go díreach i `` pobalbhreith / teimpléid `` (seachas fochomhadlann `` pobalbhreith `` eile a chruthú), ach is droch-smaoineamh a bheadh ​​ann i ndáiríre. Roghnóidh Django an chéad teimpléad a aimsíonn sé a bhfuil a ainm ag teacht leis, agus dá mbeadh teimpléad leis an ainm céanna agat in iarratas <em>difriúil</em>, ní bheadh ​​Django in ann idirdhealú a dhéanamh eatarthu. Ní mór dúinn a bheith in ann Django a dhíriú ar an gceann ceart, agus is é an bealach is fearr lena chinntiú ná <em>spásáil * orthu. Is é sin, trí na teimpléid sin a chur san eolaire * eile</em> atá ainmnithe don fheidhmchlár féin.</p>\n</aside>\n<p>Cuir an cód seo a leanas sa teimpléad sin:</p>\n<figure class=\"code-block code-block-captioned\" data-language=\"html+django\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\">polls/templates/polls/index.html</code></figcaption>\n<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=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">latest_question_list</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">ul</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">for</span> <span class=\"nv\">question</span> <span class=\"k\">in</span> <span class=\"nv\">latest_question_list</span> <span class=\"cp\">%}</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">li</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">a</span> <span class=\"na\">href</span><span class=\"o\">=</span><span class=\"s\">&quot;/polls/</span><span class=\"cp\">{{</span> <span class=\"nv\">question.id</span> <span class=\"cp\">}}</span><span class=\"s\">/&quot;</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">question.question_text</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">a</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">endfor</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;/</span><span class=\"nt\">ul</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">else</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>No polls are available.<span class=\"p\">&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n</code></pre></figure>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Chun an rang teagaisc a dhéanamh níos giorra, úsáideann gach sampla teimpléid HTML neamhiomlán. I do thionscadail féin ba chóir duit <a class=\"reference external\" href=\"https://developer.mozilla.org/en-US/docs/Learn/HTML/Introduction_to_HTML/Getting_started#anatomy_of_an_html_document\">doiciméid HTML iomlána</a> a úsáid.</p>\n</aside>\n<p>Anois déanaimis ár n-amharc <code class=\"docutils literal notranslate\">innéacs</code> a nuashonrú i <code class=\"docutils literal notranslate\">vótaíocht/views.py</code> chun an teimpléad a úsáid:</p>\n<figure class=\"code-block code-block-captioned\" data-language=\"python\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\">polls/views.py</code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.http</span> <span class=\"kn\">import</span> HttpResponse\n<span class=\"kn\">from</span> <span class=\"nn\">django.template</span> <span class=\"kn\">import</span> loader\n\n<span class=\"kn\">from</span> <span class=\"nn\">.models</span> <span class=\"kn\">import</span> Question\n\n\n<span class=\"k\">def</span> <span class=\"nf\">index</span><span class=\"p\">(</span>request<span class=\"p\">):</span>\n    latest_question_list <span class=\"o\">=</span> Question<span class=\"o\">.</span>objects<span class=\"o\">.</span>order_by<span class=\"p\">(</span><span class=\"s2\">&quot;-pub_date&quot;</span><span class=\"p\">)[:</span><span class=\"mi\">5</span><span class=\"p\">]</span>\n    template <span class=\"o\">=</span> loader<span class=\"o\">.</span>get_template<span class=\"p\">(</span><span class=\"s2\">&quot;polls/index.html&quot;</span><span class=\"p\">)</span>\n    context <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">&quot;latest_question_list&quot;</span><span class=\"p\">:</span> latest_question_list<span class=\"p\">}</span>\n    <span class=\"k\">return</span> HttpResponse<span class=\"p\">(</span>template<span class=\"o\">.</span>render<span class=\"p\">(</span>context<span class=\"p\">,</span> request<span class=\"p\">))</span>\n</code></pre></figure>\n<p>Luchtaíonn an cód sin an teimpléad ar a dtugtar <code class=\"docutils literal notranslate\">vótaíocht/index.html</code> agus cuireann sé comhthéacs air. Is é an comhthéacs ná teimpléad ag mapáil foclóra ainmneacha athróg ar oibiachtaí Python.</p>\n<p>Lódáil an leathanach trí do bhrabhsálaí a dhíriú ar &quot;/polls/&quot;, agus ba cheart duit liosta le hurchair a fheiceáil ina bhfuil an cheist &quot;Cad atá ar bun&quot; ó <a class=\"reference internal\" href=\"/ga/5.2/intro/tutorial02/\"><span class=\"doc\">Teagasc 2</span></a>. Léiríonn an nasc leathanach sonraí na ceiste.</p>\n<section id=\"a-shortcut-render\">\n<h3>Aicearra: <a class=\"reference internal\" href=\"/ga/5.2/topics/http/shortcuts/#django.shortcuts.render\" title=\"django.shortcuts.render\"><code class=\"xref py py-func docutils literal notranslate\">render()</code></a><a class=\"heading-anchor\" href=\"#a-shortcut-render\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Is idiom an-choitianta é teimpléad a lódáil, comhthéacs a líonadh agus réad <a class=\"reference internal\" href=\"/ga/5.2/ref/request-response/#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a> a sheoladh ar ais le toradh an teimpléid rindreáilte. Soláthraíonn Django aicearra. Seo an radharc iomlán `` index()``, athscríofa:</p>\n<figure class=\"code-block code-block-captioned\" data-language=\"python\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\">polls/views.py</code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.shortcuts</span> <span class=\"kn\">import</span> render\n\n<span class=\"kn\">from</span> <span class=\"nn\">.models</span> <span class=\"kn\">import</span> Question\n\n\n<span class=\"k\">def</span> <span class=\"nf\">index</span><span class=\"p\">(</span>request<span class=\"p\">):</span>\n    latest_question_list <span class=\"o\">=</span> Question<span class=\"o\">.</span>objects<span class=\"o\">.</span>order_by<span class=\"p\">(</span><span class=\"s2\">&quot;-pub_date&quot;</span><span class=\"p\">)[:</span><span class=\"mi\">5</span><span class=\"p\">]</span>\n    context <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">&quot;latest_question_list&quot;</span><span class=\"p\">:</span> latest_question_list<span class=\"p\">}</span>\n    <span class=\"k\">return</span> render<span class=\"p\">(</span>request<span class=\"p\">,</span> <span class=\"s2\">&quot;polls/index.html&quot;</span><span class=\"p\">,</span> context<span class=\"p\">)</span>\n</code></pre></figure>\n<p>Tabhair faoi deara nuair a bheidh sé seo déanta againn go léir, ní gá dúinn <a class=\"reference internal\" href=\"/ga/5.2/topics/templates/#module-django.template.loader\" title=\"django.template.loader\"><code class=\"xref py py-mod docutils literal notranslate\">loader</code></a> agus <a class=\"reference internal\" href=\"/ga/5.2/ref/request-response/#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a> a allmhairiú a thuilleadh (beidh tú ag iarraidh `` a choinneáil HttpResponse` má tá na modhanna stub fós agat maidir le <code class=\"docutils literal notranslate\">sonraí</code>, <code class=\"docutils literal notranslate\">torthaí</code>, agus <code class=\"docutils literal notranslate\">vóta</code>).</p>\n<p>The <a class=\"reference internal\" href=\"/ga/5.2/topics/http/shortcuts/#django.shortcuts.render\" title=\"django.shortcuts.render\"><code class=\"xref py py-func docutils literal notranslate\">render()</code></a> function takes the request object as its\nfirst argument, a template name as its second argument and a dictionary as its\noptional third argument. It returns an <a class=\"reference internal\" href=\"/ga/5.2/ref/request-response/#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a>\nobject of the given template rendered with the given context.</p>\n</section>\n</section>\n<section id=\"raising-a-404-error\">\n<h2>Earráid 404 a ardú<a class=\"heading-anchor\" href=\"#raising-a-404-error\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Anois, déanaimis dul i ngleic le mionsonraí na ceiste - an leathanach a thaispeánann téacs na ceiste do vótaíocht ar leith. Seo an radharc:</p>\n<figure class=\"code-block code-block-captioned\" data-language=\"python\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\">polls/views.py</code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.http</span> <span class=\"kn\">import</span> Http404\n<span class=\"kn\">from</span> <span class=\"nn\">django.shortcuts</span> <span class=\"kn\">import</span> render\n\n<span class=\"kn\">from</span> <span class=\"nn\">.models</span> <span class=\"kn\">import</span> Question\n\n\n<span class=\"c1\"># ...</span>\n<span class=\"k\">def</span> <span class=\"nf\">detail</span><span class=\"p\">(</span>request<span class=\"p\">,</span> question_id<span class=\"p\">):</span>\n    <span class=\"k\">try</span><span class=\"p\">:</span>\n        question <span class=\"o\">=</span> Question<span class=\"o\">.</span>objects<span class=\"o\">.</span>get<span class=\"p\">(</span>pk<span class=\"o\">=</span>question_id<span class=\"p\">)</span>\n    <span class=\"k\">except</span> Question<span class=\"o\">.</span>DoesNotExist<span class=\"p\">:</span>\n        <span class=\"k\">raise</span> Http404<span class=\"p\">(</span><span class=\"s2\">&quot;Question does not exist&quot;</span><span class=\"p\">)</span>\n    <span class=\"k\">return</span> render<span class=\"p\">(</span>request<span class=\"p\">,</span> <span class=\"s2\">&quot;polls/detail.html&quot;</span><span class=\"p\">,</span> <span class=\"p\">{</span><span class=\"s2\">&quot;question&quot;</span><span class=\"p\">:</span> question<span class=\"p\">})</span>\n</code></pre></figure>\n<p>An coincheap nua anseo: Ardaíonn an dearcadh an eisceacht <a class=\"reference internal\" href=\"/ga/5.2/topics/http/views/#django.http.Http404\" title=\"django.http.Http404\"><code class=\"xref py py-exc docutils literal notranslate\">Http404</code></a> mura bhfuil ceist leis an ID iarrtha ann.</p>\n<p>Déanfaimid plé ar cad a d'fhéadfá a chur isteach sa teimpléad <code class=\"docutils literal notranslate\">polls/detail.html</code> sin beagán níos déanaí, ach más mian leat an sampla thuas a oibriú go tapa, comhad ina bhfuil:</p>\n<figure class=\"code-block code-block-captioned\" data-language=\"html+django\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\">polls/templates/polls/detail.html</code></figcaption>\n<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=\"cp\">{{</span> <span class=\"nv\">question</span> <span class=\"cp\">}}</span>\n</code></pre></figure>\n<p>cuirfidh sé tús leat faoi láthair.</p>\n<section id=\"a-shortcut-get-object-or-404\">\n<h3>Aicearra: :func: ~django.shortcuts.get_object_or_404<a class=\"heading-anchor\" href=\"#a-shortcut-get-object-or-404\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Is idiom an-choitianta é <a class=\"reference internal\" href=\"/ga/5.2/ref/models/querysets/#django.db.models.query.QuerySet.get\" title=\"django.db.models.query.QuerySet.get\"><code class=\"xref py py-meth docutils literal notranslate\">get()</code></a> a úsáid agus ardaigh <a class=\"reference internal\" href=\"/ga/5.2/topics/http/views/#django.http.Http404\" title=\"django.http.Http404\"><code class=\"xref py py-exc docutils literal notranslate\">Http404</code></a> mura bhfuil an réad ann. Soláthraíonn Django aicearra. Seo an radharc <code class=\"docutils literal notranslate\">detail()</code>, athscríofa:</p>\n<figure class=\"code-block code-block-captioned\" data-language=\"python\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\">polls/views.py</code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.shortcuts</span> <span class=\"kn\">import</span> get_object_or_404<span class=\"p\">,</span> render\n\n<span class=\"kn\">from</span> <span class=\"nn\">.models</span> <span class=\"kn\">import</span> Question\n\n\n<span class=\"c1\"># ...</span>\n<span class=\"k\">def</span> <span class=\"nf\">detail</span><span class=\"p\">(</span>request<span class=\"p\">,</span> question_id<span class=\"p\">):</span>\n    question <span class=\"o\">=</span> get_object_or_404<span class=\"p\">(</span>Question<span class=\"p\">,</span> pk<span class=\"o\">=</span>question_id<span class=\"p\">)</span>\n    <span class=\"k\">return</span> render<span class=\"p\">(</span>request<span class=\"p\">,</span> <span class=\"s2\">&quot;polls/detail.html&quot;</span><span class=\"p\">,</span> <span class=\"p\">{</span><span class=\"s2\">&quot;question&quot;</span><span class=\"p\">:</span> question<span class=\"p\">})</span>\n</code></pre></figure>\n<p>Glacann an fheidhm <a class=\"reference internal\" href=\"/ga/5.2/topics/http/shortcuts/#django.shortcuts.get_object_or_404\" title=\"django.shortcuts.get_object_or_404\"><code class=\"xref py py-func docutils literal notranslate\">get_object_or_404()</code></a> múnla Django mar a chéad argóint agus líon treallach argóintí eochairfhocail, a théann sé chuig an <code class=\"xref py py-meth docutils literal notranslate\">Http404()</code> mura bhfuil an réad ann.</p>\n<aside class=\"admonition-philosophy admonition\" role=\"note\">\n<p class=\"admonition-title\">Fealsúnacht</p>\n<p>Cén fáth a n-úsáidimid feidhm chúntóra <a class=\"reference internal\" href=\"/ga/5.2/topics/http/shortcuts/#django.shortcuts.get_object_or_404\" title=\"django.shortcuts.get_object_or_404\"><code class=\"xref py py-func docutils literal notranslate\">get_object_or_404()</code></a> in ionad na heisceachtaí <a class=\"reference internal\" href=\"/ga/5.2/ref/exceptions/#django.core.exceptions.ObjectDoesNotExist\" title=\"django.core.exceptions.ObjectDoesNotExist\"><code class=\"xref py py-exc docutils literal notranslate\">ObjectDoesNotExist</code></a> a ghlacadh go huathoibríoch ag leibhéal níos airde, nó an tsamhail API a ardú :exc :~django.http.Http404 in ionad <a class=\"reference internal\" href=\"/ga/5.2/ref/exceptions/#django.core.exceptions.ObjectDoesNotExist\" title=\"django.core.exceptions.ObjectDoesNotExist\"><code class=\"xref py py-exc docutils literal notranslate\">ObjectDoesNotExist</code></a>?</p>\n<p>Toisc go gceanglódh sé sin an ciseal samhail leis an gciseal radhairc. Is é ceann de na príomhspriocanna deartha atá ag Django ná cúpláil scaoilte a choinneáil. Tugtar roinnt cúplála rialaithe isteach sa mhodúl <a class=\"reference internal\" href=\"/ga/5.2/topics/http/shortcuts/#module-django.shortcuts\" title=\"django.shortcuts: Convenience shortcuts that span multiple levels of Django's MVC stack.\"><code class=\"xref py py-mod docutils literal notranslate\">django.shortcuts</code></a>.</p>\n</aside>\n<p>Tá feidhm <a class=\"reference internal\" href=\"/ga/5.2/topics/http/shortcuts/#django.shortcuts.get_list_or_404\" title=\"django.shortcuts.get_list_or_404\"><code class=\"xref py py-func docutils literal notranslate\">get_list_or_404()</code></a> ann freisin, a oibríonn díreach mar <a class=\"reference internal\" href=\"/ga/5.2/topics/http/shortcuts/#django.shortcuts.get_object_or_404\" title=\"django.shortcuts.get_object_or_404\"><code class=\"xref py py-func docutils literal notranslate\">get_object_or_404()</code></a> -- ach amháin ag baint úsáide as <code class=\"xref py py-meth docutils literal notranslate\"> scagaire()</code> in ionad <a class=\"reference internal\" href=\"/ga/5.2/ref/models/querysets/#django.db.models.query.QuerySet.get\" title=\"django.db.models.query.QuerySet.get\"><code class=\"xref py py-meth docutils literal notranslate\">get()</code></a>. Ardaíonn sé <a class=\"reference internal\" href=\"/ga/5.2/topics/http/views/#django.http.Http404\" title=\"django.http.Http404\"><code class=\"xref py py-exc docutils literal notranslate\">Http404</code></a> má tá an liosta folamh.</p>\n</section>\n</section>\n<section id=\"use-the-template-system\">\n<h2>Bain úsáid as an gcóras teimpléid<a class=\"heading-anchor\" href=\"#use-the-template-system\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Ar ais go dtí an radharc <code class=\"docutils literal notranslate\">detail()</code> dár n-iarratas vótaíochta. Ag cur san áireamh an athróg comhthéacs <code class=\"docutils literal notranslate\">ceist</code>, seo an chuma a d'fhéadfadh a bheith ar an teimpléad <code class=\"docutils literal notranslate\">vótaíocht/detail.html</code>:</p>\n<figure class=\"code-block code-block-captioned\" data-language=\"html+django\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\">polls/templates/polls/detail.html</code></figcaption>\n<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\">h1</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">question.question_text</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">h1</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">ul</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">for</span> <span class=\"nv\">choice</span> <span class=\"k\">in</span> <span class=\"nv\">question.choice_set.all</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">choice.choice_text</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endfor</span> <span class=\"cp\">%}</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">ul</span><span class=\"p\">&gt;</span>\n</code></pre></figure>\n<p>Úsáideann an córas teimpléad comhréir ponc-lookup chun rochtain a fháil ar airíonna athraitheacha. Sa sampla de <code class=\"docutils literal notranslate\">{{ question.question_text }}</code>, ar dtús déanann Django cuardach foclóir ar an oibiacht <code class=\"docutils literal notranslate\">ceist</code>. Dá éagmais sin, déanann sé cuardach ar tréith -- a oibríonn, sa chás seo. Dá mba theip ar chuardach aitreabúide, bhainfeadh sé triail as cuardach liosta-innéacs.</p>\n<p>Tarlaíonn modh-ghlao sa <code class=\"xref std std-ttag docutils literal notranslate\">{% le haghaidh %}</code> lúb: léirmhínítear <code class=\"docutils literal notranslate\">question.choice_set.all</code> mar chód Python <code class=\"docutils literal notranslate\">question.choice_set.all()</code>, a fhilleann iterable de <code class=\"docutils literal notranslate\">Choice</code> réada agus atá oiriúnach le húsáid sa chlib <code class=\"xref std std-ttag docutils literal notranslate\">{% le haghaidh %}</code>.</p>\n<p>Féach an <a class=\"reference internal\" href=\"/ga/5.2/topics/templates/\"><span class=\"doc\">treoir teimpléid</span></a> le haghaidh tuilleadh faisnéise faoi theimpléid.</p>\n</section>\n<section id=\"removing-hardcoded-urls-in-templates\">\n<h2>URLanna códaithe crua a bhaint i dteimpléid<a class=\"heading-anchor\" href=\"#removing-hardcoded-urls-in-templates\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Cuimhnigh, nuair a scríobhamar an nasc chuig ceist sa teimpléad <code class=\"docutils literal notranslate\">polls/index.html</code>, bhí cuid de chóid chrua ar an nasc mar seo:</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\">li</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">a</span> <span class=\"na\">href</span><span class=\"o\">=</span><span class=\"s\">&quot;/polls/</span><span class=\"cp\">{{</span> <span class=\"nv\">question.id</span> <span class=\"cp\">}}</span><span class=\"s\">/&quot;</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">question.question_text</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">a</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>Is í an fhadhb atá leis an gcur chuige crua-chódáilte seo atá nasctha go docht ná go n-éiríonn sé dúshlánach URLanna a athrú ar thionscadail le go leor teimpléid. Mar sin féin, ós rud é gur shainigh tú an argóint <code class=\"docutils literal notranslate\">name</code> i bhfeidhmeanna <a class=\"reference internal\" href=\"/ga/5.2/ref/urls/#django.urls.path\" title=\"django.urls.path\"><code class=\"xref py py-func docutils literal notranslate\">path()</code></a> sa mhodúl <code class=\"docutils literal notranslate\">polls.urls</code>, is féidir leat brath ar chonairí URL ar leith atá sainithe i do url a bhaint cumraíochtaí trí úsáid a bhaint as an gclib teimpléad <code class=\"docutils literal notranslate\">{ %url %}</code>:</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\">li</span><span class=\"p\">&gt;&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=\"k\">url</span> <span class=\"s1\">&#39;detail&#39;</span> <span class=\"nv\">question.id</span> <span class=\"cp\">%}</span><span class=\"s\">&quot;</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">question.question_text</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">a</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>Is é an chaoi a n-oibríonn sé seo ná breathnú ar an sainmhíniú URL mar atá sonraithe sa mhodúl <code class=\"docutils literal notranslate\">polls.urls</code>. Is féidir leat a fheiceáil go díreach cá bhfuil an t-ainm URL 'mionsonraí' sainmhínithe thíos:</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=\"o\">...</span>\n<span class=\"c1\"># the &#39;name&#39; value as called by the {% url %} template tag</span>\npath<span class=\"p\">(</span><span class=\"s2\">&quot;&lt;int:question_id&gt;/&quot;</span><span class=\"p\">,</span> views<span class=\"o\">.</span>detail<span class=\"p\">,</span> name<span class=\"o\">=</span><span class=\"s2\">&quot;detail&quot;</span><span class=\"p\">),</span>\n<span class=\"o\">...</span>\n</code></pre></div>\n<p>Más mian leat URL mionamharc na vótaíochta a athrú go rud éigin eile, b'fhéidir go rud éigin ar nós <code class=\"docutils literal notranslate\">vótaíocht/sonraí/12/</code> seachas é a dhéanamh sa teimpléad (nó teimpléid) d'athródh tú é i `` pobalbhreith / urls.py``:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"o\">...</span>\n<span class=\"c1\"># added the word &#39;specifics&#39;</span>\npath<span class=\"p\">(</span><span class=\"s2\">&quot;specifics/&lt;int:question_id&gt;/&quot;</span><span class=\"p\">,</span> views<span class=\"o\">.</span>detail<span class=\"p\">,</span> name<span class=\"o\">=</span><span class=\"s2\">&quot;detail&quot;</span><span class=\"p\">),</span>\n<span class=\"o\">...</span>\n</code></pre></div>\n</section>\n<section id=\"namespacing-url-names\">\n<h2>Ainmneacha URL spásála<a class=\"heading-anchor\" href=\"#namespacing-url-names\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Níl ach aip amháin ag an tionscadal teagaisc, `` pobalbhreith``. I dtionscadail fíor Django, d'fhéadfadh go mbeadh cúig, deich, fiche apps nó níos mó. Conas a dhéanann Django idirdhealú a dhéanamh idir na hainmneacha URL eatarthu? Mar shampla, tá radharc <code class=\"docutils literal notranslate\">mionsonraí</code> ag an aip <code class=\"docutils literal notranslate\">vótaíochta</code>, agus mar sin d'fhéadfadh aip ar an tionscadal céanna atá le haghaidh blag. Cén chaoi a mbeidh a fhios ag Django cén t-aip atá le cruthú le haghaidh url agus an chlib teimpléid <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>{ % url %}` in úsáid agat?</p>\n<p>Is é an freagra ná spásanna ainm a chur le do URLconf. Sa chomhad <code class=\"docutils literal notranslate\">vótaíocht/urls.py</code>, téigh ar aghaidh agus cuir <code class=\"docutils literal notranslate\">ainm_app</code> leis chun ainmspás an fheidhmchláir a shocrú:</p>\n<figure class=\"code-block code-block-captioned\" data-language=\"python\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\">polls/urls.py</code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.urls</span> <span class=\"kn\">import</span> path\n\n<span class=\"kn\">from</span> <span class=\"nn\">.</span> <span class=\"kn\">import</span> views\n\napp_name <span class=\"o\">=</span> <span class=\"s2\">&quot;polls&quot;</span>\nurlpatterns <span class=\"o\">=</span> <span class=\"p\">[</span>\n    path<span class=\"p\">(</span><span class=\"s2\">&quot;&quot;</span><span class=\"p\">,</span> views<span class=\"o\">.</span>index<span class=\"p\">,</span> name<span class=\"o\">=</span><span class=\"s2\">&quot;index&quot;</span><span class=\"p\">),</span>\n    path<span class=\"p\">(</span><span class=\"s2\">&quot;&lt;int:question_id&gt;/&quot;</span><span class=\"p\">,</span> views<span class=\"o\">.</span>detail<span class=\"p\">,</span> name<span class=\"o\">=</span><span class=\"s2\">&quot;detail&quot;</span><span class=\"p\">),</span>\n    path<span class=\"p\">(</span><span class=\"s2\">&quot;&lt;int:question_id&gt;/results/&quot;</span><span class=\"p\">,</span> views<span class=\"o\">.</span>results<span class=\"p\">,</span> name<span class=\"o\">=</span><span class=\"s2\">&quot;results&quot;</span><span class=\"p\">),</span>\n    path<span class=\"p\">(</span><span class=\"s2\">&quot;&lt;int:question_id&gt;/vote/&quot;</span><span class=\"p\">,</span> views<span class=\"o\">.</span>vote<span class=\"p\">,</span> name<span class=\"o\">=</span><span class=\"s2\">&quot;vote&quot;</span><span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></figure>\n<p>Anois athraigh do theimpléad <code class=\"docutils literal notranslate\">vótaíocht/index.html</code> ó:</p>\n<figure class=\"code-block code-block-captioned\" data-language=\"html+django\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\">polls/templates/polls/index.html</code></figcaption>\n<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\">li</span><span class=\"p\">&gt;&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=\"k\">url</span> <span class=\"s1\">&#39;detail&#39;</span> <span class=\"nv\">question.id</span> <span class=\"cp\">%}</span><span class=\"s\">&quot;</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">question.question_text</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">a</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n</code></pre></figure>\n<p>chun pointe a chur ar an radharc ainmspásáilte:</p>\n<figure class=\"code-block code-block-captioned\" data-language=\"html+django\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\">polls/templates/polls/index.html</code></figcaption>\n<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\">li</span><span class=\"p\">&gt;&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=\"k\">url</span> <span class=\"s1\">&#39;polls:detail&#39;</span> <span class=\"nv\">question.id</span> <span class=\"cp\">%}</span><span class=\"s\">&quot;</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">question.question_text</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">a</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n</code></pre></figure>\n<p>Agus tú ar do chompord ag scríobh tuairimí, léigh <a class=\"reference internal\" href=\"/ga/5.2/intro/tutorial04/\"><span class=\"doc\">cuid 4 den rang teagaisc seo</span></a> chun na bunghnéithe a fhoghlaim maidir le próiseáil foirmeacha agus tuairimí cineálacha.</p>\n</section>","rootId":"writing-your-first-django-app-part-3","toc":[{"title":"Forbhreathnú","anchor":"overview","children":[]},{"title":"Tuilleadh tuairimí á scríobh","anchor":"writing-more-views","children":[]},{"title":"Scríobh tuairimí a dhéanann rud éigin i ndáiríre","anchor":"write-views-that-actually-do-something","children":[{"title":"Aicearra: render()","anchor":"a-shortcut-render","children":[]}]},{"title":"Earráid 404 a ardú","anchor":"raising-a-404-error","children":[{"title":"Aicearra: :func: ~django.shortcuts.get_object_or_404","anchor":"a-shortcut-get-object-or-404","children":[]}]},{"title":"Bain úsáid as an gcóras teimpléid","anchor":"use-the-template-system","children":[]},{"title":"URLanna códaithe crua a bhaint i dteimpléid","anchor":"removing-hardcoded-urls-in-templates","children":[]},{"title":"Ainmneacha URL spásála","anchor":"namespacing-url-names","children":[]}],"breadcrumbs":[{"docname":"intro/index","title":"Ag tosnú","url":"/ga/5.2/intro/"}],"prev":{"docname":"intro/tutorial02","title":"Scríobh do chéad aip Django, cuid 2","url":"/ga/5.2/intro/tutorial02/"},"next":{"docname":"intro/tutorial04","title":"Do chéad aip Django a scríobh, cuid 4","url":"/ga/5.2/intro/tutorial04/"},"formats":{"html":"/ga/5.2/intro/tutorial03/","markdown":"/ga/5.2/intro/tutorial03.md","json":"/ga/5.2/intro/tutorial03.json"},"source":"https://github.com/django/django/blob/stable/5.2.x/docs/intro/tutorial03.txt","official":"https://docs.djangoproject.com/ga/5.2/intro/tutorial03/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}