{"title":"Do chéad aip Django a scríobh, cuid 3","version":"6.1","locale":"ga","docname":"intro/tutorial03","url":"/ga/6.1/intro/tutorial03/","canonical":"https://djangodocs.dev/ga/6.1/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í a…","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/6.1/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\">\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\"><span class=\"pre\">ME2/Sites/dirmod.htm?sid=&amp;type=gen&amp;mod=Core+Pages&amp;gid=A6CD4967199A42D9B65B1B</span></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\"><span class=\"pre\">/newsarchive/&lt;year&gt;/&lt;month&gt;/</span></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/6.1/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\"><span class=\"pre\">vótaíocht/views.py</span></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\"><span class=\"pre\">polls/views.py</span></code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">detail</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">question_id</span><span class=\"p\">):</span>\n    <span class=\"k\">return</span> <span class=\"n\">HttpResponse</span><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> <span class=\"n\">question_id</span><span class=\"p\">)</span>\n\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">results</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">question_id</span><span class=\"p\">):</span>\n    <span class=\"n\">response</span> <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> <span class=\"n\">HttpResponse</span><span class=\"p\">(</span><span class=\"n\">response</span> <span class=\"o\">%</span> <span class=\"n\">question_id</span><span class=\"p\">)</span>\n\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">vote</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">question_id</span><span class=\"p\">):</span>\n    <span class=\"k\">return</span> <span class=\"n\">HttpResponse</span><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> <span class=\"n\">question_id</span><span class=\"p\">)</span>\n</code></pre></figure>\n<p>Sreangaigh na radharcanna nua seo isteach sa mhodúl <code class=\"docutils literal notranslate\"><span class=\"pre\">polls.urls</span></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\"><span class=\"pre\">polls/urls.py</span></code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">path</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">.</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">views</span>\n\n<span class=\"n\">urlpatterns</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"c1\"># ex: /polls/</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;&quot;</span><span class=\"p\">,</span> <span class=\"n\">views</span><span class=\"o\">.</span><span class=\"n\">index</span><span class=\"p\">,</span> <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;index&quot;</span><span class=\"p\">),</span>\n    <span class=\"c1\"># ex: /polls/5/</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;&lt;int:question_id&gt;/&quot;</span><span class=\"p\">,</span> <span class=\"n\">views</span><span class=\"o\">.</span><span class=\"n\">detail</span><span class=\"p\">,</span> <span class=\"n\">name</span><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    <span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;&lt;int:question_id&gt;/results/&quot;</span><span class=\"p\">,</span> <span class=\"n\">views</span><span class=\"o\">.</span><span class=\"n\">results</span><span class=\"p\">,</span> <span class=\"n\">name</span><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    <span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;&lt;int:question_id&gt;/vote/&quot;</span><span class=\"p\">,</span> <span class=\"n\">views</span><span class=\"o\">.</span><span class=\"n\">vote</span><span class=\"p\">,</span> <span class=\"n\">name</span><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\"><span class=\"pre\">detail()</span></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\"><span class=\"pre\">mysite.urls</span></code> toisc go bhfuil sé dírithe ag an socrú <a class=\"reference internal\" href=\"/ga/6.1/ref/settings/#std-setting-ROOT_URLCONF\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">ROOT_URLCONF</span></code></a>. Faigheann sé an athróg darb ainm <code class=\"docutils literal notranslate\"><span class=\"pre\">urlpatterns</span></code> agus trasnaíonn sé na patrúin in ord. Tar éis dó an meaits a aimsiú ag <code class=\"docutils literal notranslate\"><span class=\"pre\">`</span> <span class=\"pre\">pobalbhreith/'</span></code>, scriosann sé an téacs meaitseála (<code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;</span> <span class=\"pre\">pobalbhreith</span> <span class=\"pre\">/</span> <span class=\"pre\">&quot;</span></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\"><span class=\"pre\">'</span> <span class=\"pre\">&lt;int:question_id&gt;/'</span></code>, agus glao ar an radharc <code class=\"docutils literal notranslate\"><span class=\"pre\">detail()</span></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\"><span class=\"pre\">question_id=34</span></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\"><span class=\"pre\">question_id</span></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\"><span class=\"pre\">int</span></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\"><span class=\"pre\">:</span></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/6.1/ref/request-response/#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></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/6.1/topics/http/views/#django.http.Http404\" title=\"django.http.Http404\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">Http404</span></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/6.1/intro/tutorial02/\"><span class=\"doc\">Teagasc 2</span></a>. Seo stab amháin ag radharc nua <code class=\"docutils literal notranslate\"><span class=\"pre\">innéacs()</span></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\"><span class=\"pre\">polls/views.py</span></code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.http</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">HttpResponse</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Question</span>\n\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">index</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"n\">latest_question_list</span> <span class=\"o\">=</span> <span class=\"n\">Question</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">order_by</span><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    <span class=\"n\">output</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;, &quot;</span><span class=\"o\">.</span><span class=\"n\">join</span><span class=\"p\">([</span><span class=\"n\">q</span><span class=\"o\">.</span><span class=\"n\">question_text</span> <span class=\"k\">for</span> <span class=\"n\">q</span> <span class=\"ow\">in</span> <span class=\"n\">latest_question_list</span><span class=\"p\">])</span>\n    <span class=\"k\">return</span> <span class=\"n\">HttpResponse</span><span class=\"p\">(</span><span class=\"n\">output</span><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>There's a problem here, though: the page's design is hardcoded in the view. If\nyou want to change the way the page looks, you'll have to edit this Python\ncode. So let's use Django's template system to separate the design from Python\nby creating a template that the view can use.</p>\n<p>Ar dtús, cruthaigh eolaire darb ainm <code class=\"docutils literal notranslate\"><span class=\"pre\">templates</span></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\"><span class=\"pre\">DjangoTemplates</span></code> a bhfuil a rogha <a class=\"reference internal\" href=\"/ga/6.1/ref/settings/#std-setting-TEMPLATES-APP_DIRS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">APP_DIRS</span></code></a> socraithe go <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>. De réir an ghnáis lorgaíonn <code class=\"docutils literal notranslate\"><span class=\"pre\">DjangoTemplates</span></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\"><span class=\"pre\">templates</span></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\"><span class=\"pre\">vótaíocht/templates/polls/index.html</span></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\">\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\"><span class=\"pre\">polls/templates/polls/index.html</span></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\"><span class=\"pre\">innéacs</span></code> a nuashonrú i <code class=\"docutils literal notranslate\"><span class=\"pre\">vótaíocht/views.py</span></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\"><span class=\"pre\">polls/views.py</span></code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.http</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">HttpResponse</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.template</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">loader</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Question</span>\n\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">index</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"n\">latest_question_list</span> <span class=\"o\">=</span> <span class=\"n\">Question</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">order_by</span><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    <span class=\"n\">template</span> <span class=\"o\">=</span> <span class=\"n\">loader</span><span class=\"o\">.</span><span class=\"n\">get_template</span><span class=\"p\">(</span><span class=\"s2\">&quot;polls/index.html&quot;</span><span class=\"p\">)</span>\n    <span class=\"n\">context</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">&quot;latest_question_list&quot;</span><span class=\"p\">:</span> <span class=\"n\">latest_question_list</span><span class=\"p\">}</span>\n    <span class=\"k\">return</span> <span class=\"n\">HttpResponse</span><span class=\"p\">(</span><span class=\"n\">template</span><span class=\"o\">.</span><span class=\"n\">render</span><span class=\"p\">(</span><span class=\"n\">context</span><span class=\"p\">,</span> <span class=\"n\">request</span><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\"><span class=\"pre\">vótaíocht/index.html</span></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/6.1/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/6.1/topics/http/shortcuts/#django.shortcuts.render\" title=\"django.shortcuts.render\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">render()</span></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/6.1/ref/request-response/#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></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\"><span class=\"pre\">polls/views.py</span></code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.shortcuts</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">render</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Question</span>\n\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">index</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"n\">latest_question_list</span> <span class=\"o\">=</span> <span class=\"n\">Question</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">order_by</span><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    <span class=\"n\">context</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">&quot;latest_question_list&quot;</span><span class=\"p\">:</span> <span class=\"n\">latest_question_list</span><span class=\"p\">}</span>\n    <span class=\"k\">return</span> <span class=\"n\">render</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"s2\">&quot;polls/index.html&quot;</span><span class=\"p\">,</span> <span class=\"n\">context</span><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/6.1/topics/templates/#module-django.template.loader\" title=\"django.template.loader\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">loader</span></code></a> agus <a class=\"reference internal\" href=\"/ga/6.1/ref/request-response/#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></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\"><span class=\"pre\">sonraí</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">torthaí</span></code>, agus <code class=\"docutils literal notranslate\"><span class=\"pre\">vóta</span></code>).</p>\n<p>The <a class=\"reference internal\" href=\"/ga/6.1/topics/http/shortcuts/#django.shortcuts.render\" title=\"django.shortcuts.render\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">render()</span></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/6.1/ref/request-response/#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></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\"><span class=\"pre\">polls/views.py</span></code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.http</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Http404</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.shortcuts</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">render</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Question</span>\n\n\n<span class=\"c1\"># ...</span>\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">detail</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">question_id</span><span class=\"p\">):</span>\n    <span class=\"k\">try</span><span class=\"p\">:</span>\n        <span class=\"n\">question</span> <span class=\"o\">=</span> <span class=\"n\">Question</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\">pk</span><span class=\"o\">=</span><span class=\"n\">question_id</span><span class=\"p\">)</span>\n    <span class=\"k\">except</span> <span class=\"n\">Question</span><span class=\"o\">.</span><span class=\"n\">DoesNotExist</span><span class=\"p\">:</span>\n        <span class=\"k\">raise</span> <span class=\"n\">Http404</span><span class=\"p\">(</span><span class=\"s2\">&quot;Question does not exist&quot;</span><span class=\"p\">)</span>\n    <span class=\"k\">return</span> <span class=\"n\">render</span><span class=\"p\">(</span><span class=\"n\">request</span><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> <span class=\"n\">question</span><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/6.1/topics/http/views/#django.http.Http404\" title=\"django.http.Http404\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">Http404</span></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\"><span class=\"pre\">polls/detail.html</span></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\"><span class=\"pre\">polls/templates/polls/detail.html</span></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/6.1/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\"><span class=\"pre\">get()</span></code></a> a úsáid agus ardaigh <a class=\"reference internal\" href=\"/ga/6.1/topics/http/views/#django.http.Http404\" title=\"django.http.Http404\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">Http404</span></code></a> mura bhfuil an réad ann. Soláthraíonn Django aicearra. Seo an radharc <code class=\"docutils literal notranslate\"><span class=\"pre\">detail()</span></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\"><span class=\"pre\">polls/views.py</span></code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.shortcuts</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">get_object_or_404</span><span class=\"p\">,</span> <span class=\"n\">render</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Question</span>\n\n\n<span class=\"c1\"># ...</span>\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">detail</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">question_id</span><span class=\"p\">):</span>\n    <span class=\"n\">question</span> <span class=\"o\">=</span> <span class=\"n\">get_object_or_404</span><span class=\"p\">(</span><span class=\"n\">Question</span><span class=\"p\">,</span> <span class=\"n\">pk</span><span class=\"o\">=</span><span class=\"n\">question_id</span><span class=\"p\">)</span>\n    <span class=\"k\">return</span> <span class=\"n\">render</span><span class=\"p\">(</span><span class=\"n\">request</span><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> <span class=\"n\">question</span><span class=\"p\">})</span>\n</code></pre></figure>\n<p>Glacann an fheidhm <a class=\"reference internal\" href=\"/ga/6.1/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\"><span class=\"pre\">get_object_or_404()</span></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\"><span class=\"pre\">Http404()</span></code> mura bhfuil an réad ann.</p>\n<aside class=\"admonition-philosophy admonition\">\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/6.1/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\"><span class=\"pre\">get_object_or_404()</span></code></a> in ionad na heisceachtaí <a class=\"reference internal\" href=\"/ga/6.1/ref/exceptions/#django.core.exceptions.ObjectDoesNotExist\" title=\"django.core.exceptions.ObjectDoesNotExist\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">ObjectDoesNotExist</span></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/6.1/ref/exceptions/#django.core.exceptions.ObjectDoesNotExist\" title=\"django.core.exceptions.ObjectDoesNotExist\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">ObjectDoesNotExist</span></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/6.1/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\"><span class=\"pre\">django.shortcuts</span></code></a>.</p>\n</aside>\n<p>Tá feidhm <a class=\"reference internal\" href=\"/ga/6.1/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\"><span class=\"pre\">get_list_or_404()</span></code></a> ann freisin, a oibríonn díreach mar <a class=\"reference internal\" href=\"/ga/6.1/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\"><span class=\"pre\">get_object_or_404()</span></code></a> -- ach amháin ag baint úsáide as <code class=\"xref py py-meth docutils literal notranslate\"> <span class=\"pre\">scagaire()</span></code> in ionad <a class=\"reference internal\" href=\"/ga/6.1/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\"><span class=\"pre\">get()</span></code></a>. Ardaíonn sé <a class=\"reference internal\" href=\"/ga/6.1/topics/http/views/#django.http.Http404\" title=\"django.http.Http404\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">Http404</span></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\"><span class=\"pre\">detail()</span></code> dár n-iarratas vótaíochta. Ag cur san áireamh an athróg comhthéacs <code class=\"docutils literal notranslate\"><span class=\"pre\">ceist</span></code>, seo an chuma a d'fhéadfadh a bheith ar an teimpléad <code class=\"docutils literal notranslate\"><span class=\"pre\">vótaíocht/detail.html</span></code>:</p>\n<figure class=\"code-block code-block-captioned\" data-language=\"html+django\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\"><span class=\"pre\">polls/templates/polls/detail.html</span></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\"><span class=\"pre\">{{</span> <span class=\"pre\">question.question_text</span> <span class=\"pre\">}}</span></code>, ar dtús déanann Django cuardach foclóir ar an oibiacht <code class=\"docutils literal notranslate\"><span class=\"pre\">ceist</span></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\"><span class=\"pre\">{%</span> <span class=\"pre\">le</span> <span class=\"pre\">haghaidh</span> <span class=\"pre\">%}</span></code> lúb: léirmhínítear <code class=\"docutils literal notranslate\"><span class=\"pre\">question.choice_set.all</span></code> mar chód Python <code class=\"docutils literal notranslate\"><span class=\"pre\">question.choice_set.all()</span></code>, a fhilleann iterable de <code class=\"docutils literal notranslate\"><span class=\"pre\">Choice</span></code> réada agus atá oiriúnach le húsáid sa chlib <code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">le</span> <span class=\"pre\">haghaidh</span> <span class=\"pre\">%}</span></code>.</p>\n<p>Féach an <a class=\"reference internal\" href=\"/ga/6.1/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\"><span class=\"pre\">polls/index.html</span></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\"><span class=\"pre\">name</span></code> i bhfeidhmeanna <a class=\"reference internal\" href=\"/ga/6.1/ref/urls/#django.urls.path\" title=\"django.urls.path\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">path()</span></code></a> sa mhodúl <code class=\"docutils literal notranslate\"><span class=\"pre\">polls.urls</span></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\"><span class=\"pre\">{</span> <span class=\"pre\">%url</span> <span class=\"pre\">%}</span></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\"><span class=\"pre\">polls.urls</span></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>\n<span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;&lt;int:question_id&gt;/&quot;</span><span class=\"p\">,</span> <span class=\"n\">views</span><span class=\"o\">.</span><span class=\"n\">detail</span><span class=\"p\">,</span> <span class=\"n\">name</span><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\"><span class=\"pre\">vótaíocht/sonraí/12/</span></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>\n<span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;specifics/&lt;int:question_id&gt;/&quot;</span><span class=\"p\">,</span> <span class=\"n\">views</span><span class=\"o\">.</span><span class=\"n\">detail</span><span class=\"p\">,</span> <span class=\"n\">name</span><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\"><span class=\"pre\">mionsonraí</span></code> ag an aip <code class=\"docutils literal notranslate\"><span class=\"pre\">vótaíochta</span></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\"><span class=\"pre\">vótaíocht/urls.py</span></code>, téigh ar aghaidh agus cuir <code class=\"docutils literal notranslate\"><span class=\"pre\">ainm_app</span></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\"><span class=\"pre\">polls/urls.py</span></code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">path</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">.</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">views</span>\n\n<span class=\"n\">app_name</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;polls&quot;</span>\n<span class=\"n\">urlpatterns</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;&quot;</span><span class=\"p\">,</span> <span class=\"n\">views</span><span class=\"o\">.</span><span class=\"n\">index</span><span class=\"p\">,</span> <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;index&quot;</span><span class=\"p\">),</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;&lt;int:question_id&gt;/&quot;</span><span class=\"p\">,</span> <span class=\"n\">views</span><span class=\"o\">.</span><span class=\"n\">detail</span><span class=\"p\">,</span> <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;detail&quot;</span><span class=\"p\">),</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;&lt;int:question_id&gt;/results/&quot;</span><span class=\"p\">,</span> <span class=\"n\">views</span><span class=\"o\">.</span><span class=\"n\">results</span><span class=\"p\">,</span> <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;results&quot;</span><span class=\"p\">),</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;&lt;int:question_id&gt;/vote/&quot;</span><span class=\"p\">,</span> <span class=\"n\">views</span><span class=\"o\">.</span><span class=\"n\">vote</span><span class=\"p\">,</span> <span class=\"n\">name</span><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\"><span class=\"pre\">vótaíocht/index.html</span></code> ó:</p>\n<figure class=\"code-block code-block-captioned\" data-language=\"html+django\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\"><span class=\"pre\">polls/templates/polls/index.html</span></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\"><span class=\"pre\">polls/templates/polls/index.html</span></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/6.1/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/6.1/intro/"}],"prev":{"docname":"intro/tutorial02","title":"Scríobh do chéad aip Django, cuid 2","url":"/ga/6.1/intro/tutorial02/"},"next":{"docname":"intro/tutorial04","title":"Do chéad aip Django a scríobh, cuid 4","url":"/ga/6.1/intro/tutorial04/"},"formats":{"html":"/ga/6.1/intro/tutorial03/","markdown":"/ga/6.1/intro/tutorial03.md","json":"/ga/6.1/intro/tutorial03.json"},"source":"https://github.com/django/django/blob/stable/6.1.x/docs/intro/tutorial03.txt","official":"https://docs.djangoproject.com/ga/6.1/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"]}