{"title":"An creat beatha sindiciúcháin","version":"6.1","locale":"ga","docname":"ref/contrib/syndication","url":"/ga/6.1/ref/contrib/syndication/","canonical":"https://djangodocs.dev/ga/6.1/ref/contrib/syndication/","summary":"<4287>Tagann Django le creat ardleibhéil giniúna sindiúcháin beatha chun fothaí RSS agus:rfc: Atom a chruthú. Chun aon bheatha sindicíochta a chruthú, níl le…","html":"<span id=\"the-syndication-feed-framework\"></span><h1>An creat beatha sindiciúcháin<a class=\"heading-anchor\" href=\"#module-django.contrib.syndication\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>&lt;4287&gt;Tagann Django le creat ardleibhéil giniúna sindiúcháin beatha chun fothaí <a class=\"reference external\" href=\"https://developer.mozilla.org/en-US/docs/Glossary/RSS\">RSS</a> agus:rfc: Atom a chruthú.</p>\n<p>Chun aon bheatha sindicíochta a chruthú, níl le déanamh agat ach rang gairid Python a scríobh. Is féidir leat an oiread fothaí a chruthú agus is mian leat.</p>\n<p>Tagann Django le API a ghiniúint beatha leibhéal níos ísle freisin. Úsáid é seo más mian leat fothaí a ghiniúint lasmuigh de chomhthéacs gréasáin, nó ar bhealach eile ar leibhéal níos ísle.</p>\n<section id=\"the-high-level-framework\">\n<h2>An creat ardleibhéil<a class=\"heading-anchor\" href=\"#the-high-level-framework\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"overview\">\n<h3>Forbhreathnú<a class=\"heading-anchor\" href=\"#overview\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Soláthraíonn an creat giniúna beatha ardleibhéil ag an rang:class: ~django.contrib.Syndication.Views.Feed. Chun fotha a chruthú, scríobh a:class: ~django.contrib.syndication.views.&lt;/topics/http/urls&gt; feed aicme agus cuir in iúl ar shampla de i d:doc: URLConf.</p>\n</section>\n<section id=\"feed-classes\">\n<h3>Ranganna <code class=\"docutils literal notranslate\"><span class=\"pre\">Feed</span></code><a class=\"heading-anchor\" href=\"#feed-classes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>A: Class: ~django.contrib.syndication.views.feed aicme Python é rang a léiríonn beatha sindiciúcháin. Is féidir le beatha a bheith simplí (m.sh., fotha “nuacht láithreáin”, nó fotha bunúsach a thaispeánann na hiontrálacha is déanaí de bhlag) nó níos casta (m.sh., fotha a thaispeánann na hiontrálacha blag go léir i gcatagóir áirithe, áit a bhfuil an catagóir athraitheach).</p>\n<p>Ranganna beatha fo-rang:class: django.contrib.syndication.views.feed. Is féidir leo maireachtáil áit ar bith i do bhunachar cóid.</p>\n<p>Is tuairimí iad cásanna de:class: ~django.contrib.syndication.views.feed ranganna is féidir a úsáid i d:doc: URLCon&lt;/topics/http/urls&gt; f.</p>\n</section>\n<section id=\"a-simple-example\">\n<h3>Sampla simplí<a class=\"heading-anchor\" href=\"#a-simple-example\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Déanann an sampla simplí seo, tógtha ó shuíomh nuachta buailte póilíní hipitéiseach cur síos ar bheatha de na cúig mhír nuachta is déanaí:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.syndication.views</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Feed</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">reverse</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">policebeat.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">NewsItem</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">LatestEntriesFeed</span><span class=\"p\">(</span><span class=\"n\">Feed</span><span class=\"p\">):</span>\n    <span class=\"n\">title</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;Police beat site news&quot;</span>\n    <span class=\"n\">link</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;/sitenews/&quot;</span>\n    <span class=\"n\">description</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;Updates on changes and additions to police beat central.&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">items</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"n\">NewsItem</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\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_title</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">item</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"n\">item</span><span class=\"o\">.</span><span class=\"n\">title</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_description</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">item</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"n\">item</span><span class=\"o\">.</span><span class=\"n\">description</span>\n\n    <span class=\"c1\"># item_link is only needed if NewsItem has no get_absolute_url method.</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_link</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">item</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"n\">reverse</span><span class=\"p\">(</span><span class=\"s2\">&quot;news-item&quot;</span><span class=\"p\">,</span> <span class=\"n\">args</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"n\">item</span><span class=\"o\">.</span><span class=\"n\">pk</span><span class=\"p\">])</span>\n</code></pre></div>\n<p>Chun URL a nascadh leis an bhfotha seo, cuir sampla den réad Featha i d:doc: &lt;/topics/http/urls&gt; URLConf. Mar shampla:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">path</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myproject.feeds</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">LatestEntriesFeed</span>\n\n<span class=\"n\">urlpatterns</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"c1\"># ...</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;latest/feed/&quot;</span><span class=\"p\">,</span> <span class=\"n\">LatestEntriesFeed</span><span class=\"p\">()),</span>\n    <span class=\"c1\"># ...</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>Nóta:</p>\n<ul class=\"simple\">\n<li><p>Fo-aicmí an rang Feath:class: django.contrib.syndication.views.feed.</p></li>\n<li><p>&lt;title&gt;&lt;link&gt;&lt;description&gt;Freagraíonn <code class=\"docutils literal notranslate\"><span class=\"pre\">teideal</span> <span class=\"pre\">``,</span> <span class=\"pre\">`nasc</span></code> agus <code class=\"docutils literal notranslate\"><span class=\"pre\">`tuairisc</span></code> do na heilimintí caighdeánacha RSS`` <code class=\"docutils literal notranslate\"><span class=\"pre\">,</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">agus</span></code> `` <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>, `` `` <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>, `` `` , `` , <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">``</span></a>, `` <a href=\"#id7\"><span class=\"problematic\" id=\"id8\">``</span></a>,</p></li>\n<li><p>&lt;item&gt;Is é <code class=\"docutils literal notranslate\"><span class=\"pre\">items</span> <span class=\"pre\">()</span> <span class=\"pre\">`,</span> <span class=\"pre\">modh</span> <span class=\"pre\">a</span> <span class=\"pre\">thugann</span> <span class=\"pre\">liosta</span> <span class=\"pre\">rudaí</span> <span class=\"pre\">ar</span> <span class=\"pre\">ais</span> <span class=\"pre\">ar</span> <span class=\"pre\">chóir</span> <span class=\"pre\">a</span> <span class=\"pre\">chur</span> <span class=\"pre\">san</span> <span class=\"pre\">áireamh</span> <span class=\"pre\">sa</span> <span class=\"pre\">bheatha</span> <span class=\"pre\">mar</span> <span class=\"pre\">eilimintí</span> <span class=\"pre\">`</span></code>. Cé go bhfilleann an sampla seo rudaí <code class=\"docutils literal notranslate\"><span class=\"pre\">newsitem</span></code> ag baint úsáide as django's:doc: object-relational mapper, ní gá <code class=\"docutils literal notranslate\"><span class=\"pre\">items</span> <span class=\"pre\">()</span> <span class=\"pre\">``&lt;/ref/models/querysets&gt;</span> <span class=\"pre\">cásanna</span> <span class=\"pre\">samhail</span> <span class=\"pre\">a</span> <span class=\"pre\">thabhairt</span> <span class=\"pre\">ar</span> <span class=\"pre\">ais.</span> <span class=\"pre\">Cé</span> <span class=\"pre\">go</span> <span class=\"pre\">bhfaigheann</span> <span class=\"pre\">tú</span> <span class=\"pre\">cúpla</span> <span class=\"pre\">giotán</span> <span class=\"pre\">feidhmiúlachta</span> <span class=\"pre\">“saor</span> <span class=\"pre\">in</span> <span class=\"pre\">aisce”</span> <span class=\"pre\">trí</span> <span class=\"pre\">mhúnlaí</span> <span class=\"pre\">Django</span> <span class=\"pre\">a</span> <span class=\"pre\">úsáid,</span> <span class=\"pre\">is</span> <span class=\"pre\">féidir</span> <span class=\"pre\">le</span> <span class=\"pre\">``items</span> <span class=\"pre\">()</span></code> aon chineál réada a theastaíonn uait a thabhairt ar ais.</p></li>\n<li><p>Má tá fotha Atom á chruthú agat, seachas fotha RSS, socraigh an tréith <code class=\"docutils literal notranslate\"><span class=\"pre\">fotheideal</span> <span class=\"pre\">``in</span> <span class=\"pre\">ionad</span> <span class=\"pre\">an</span> <span class=\"pre\">tréith</span> <span class=\"pre\">``Description</span></code>. Féach <a class=\"reference internal\" href=\"#publishing-atom-and-rss-feeds-in-tandem\">Foilsiú fothaí Atom agus RSS i tandem</a>, níos déanaí, mar shampla.</p></li>\n</ul>\n<p>Tá rud amháin fágtha le déanamh. &lt;link&gt;&lt;description&gt;I bhfotha RSS, tá <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a><code class=\"docutils literal notranslate\"><span class=\"pre\">,</span> <span class=\"pre\">``&lt;item&gt;</span></code>, agus <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>`` &lt;title&gt;` ag gach <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">``</span></a>` <a href=\"#id7\"><span class=\"problematic\" id=\"id8\">``</span></a>. Ní mór dúinn a insint don chreat cad iad na sonraí atá le cur sna heilimintí sin.</p>\n<ul>\n<li><p>Maidir le hábhar <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>`` agus &lt;title&gt;````&lt;description&gt;,,,, Déanann Django iarracht na modhanna <code class=\"docutils literal notranslate\"><span class=\"pre\">item_title</span> <span class=\"pre\">()</span></code> agus <code class=\"docutils literal notranslate\"><span class=\"pre\">item_description</span> <span class=\"pre\">()</span></code> a ghlaoch ar an aicme:class: ~django.contrib.syndication.views.feed. Cuirtear paraiméadar amháin orthu, <code class=\"docutils literal notranslate\"><span class=\"pre\">earra</span></code>, arb é an réad féin. Tá siad seo roghnach; de réir réamhshocraithe, úsáidtear léiriú teaghrán an réada don dá rud.</p>\n<p>Más mian leat aon fhormáidiú speisialta a dhéanamh don teideal nó don tuairisc, is féidir :doc: teimpléid Django 'a úsáid ina ionad &lt;/ref/templates/language&gt;. Is féidir a gcosáin a shonrú leis na tréithe ``title_template` agus description_template` ar an aicme:class: ~django.contrib.syndication.views.feed. Déantar na teimpléid a rinneadh do gach mír agus cuirtear dhá athróg comhthéacs teimpléad ar</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{{obj}}</span></code> -- An réad reatha (ceann de na rudaí a chuir tú ar ais i <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>items () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>).</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{{site}}</span></code> -- a:Class: django.contrib.sites.models.site réad a léiríonn an láithreán reatha. Tá sé seo úsáideach do <code class=\"docutils literal notranslate\"><span class=\"pre\">{{site.domain}}</span></code> nó <code class=\"docutils literal notranslate\"><span class=\"pre\">{{site.name}}</span></code>. Mura bhfuil creat láithreáin Django suiteáilte agat*, socraítear é seo ar a:class: ~django.contrib.sites.requests.requestsite réad. &lt;requestsite-objects&gt;Féach an:ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>RequestSite de dhoiciméadú creat na láithreáin <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>le haghaidh tuilleadh eolais.</p></li>\n</ul>\n<p>Féach <a class=\"reference internal\" href=\"#a-complex-example\">sampla casta</a> thíos a úsáideann teimpléad tuairisc.</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.syndication.Feed.get_context_data\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Feed.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_context_data</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.syndication.Feed.get_context_data\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Tá bealach ann freisin chun faisnéis bhreise a chur chuig teimpléid teidil agus tuairisc, más gá duit níos mó ná an dá athróg a luaitear roimhe seo a sholáthar. Is féidir leat cur i bhfeidhm modh <code class=\"docutils literal notranslate\"><span class=\"pre\">get_context_data</span> <span class=\"pre\">``a</span> <span class=\"pre\">sholáthar</span> <span class=\"pre\">i</span> <span class=\"pre\">do</span> <span class=\"pre\">fho-aicme</span> <span class=\"pre\">``Feed</span></code>. Mar shampla:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">mysite.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Article</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.syndication.views</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Feed</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ArticlesFeed</span><span class=\"p\">(</span><span class=\"n\">Feed</span><span class=\"p\">):</span>\n    <span class=\"n\">title</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;My articles&quot;</span>\n    <span class=\"n\">description_template</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;feeds/articles.html&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">items</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"n\">Article</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\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_context_data</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"n\">context</span> <span class=\"o\">=</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">get_context_data</span><span class=\"p\">(</span><span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">)</span>\n        <span class=\"n\">context</span><span class=\"p\">[</span><span class=\"s2\">&quot;foo&quot;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;bar&quot;</span>\n        <span class=\"k\">return</span> <span class=\"n\">context</span>\n</code></pre></div>\n</dd></dl>\n\n<p>Agus an teimpléad:</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>Something about <span class=\"cp\">{{</span> <span class=\"nv\">foo</span> <span class=\"cp\">}}</span>: <span class=\"cp\">{{</span> <span class=\"nv\">obj.description</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>Glaofar an modh seo uair amháin in aghaidh gach míre sa liosta a chuirtear ar ais ag <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>items () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>leis na hargóintí eochairfhocal seo a leanas:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">earra</span></code>: an mír reatha. Ar chúiseanna comhoiriúnachta ar chúl, is é <code class=\"docutils literal notranslate\"><span class=\"pre\">{{obj}}</span></code> ainm an athróg comhthéacs seo.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code>: an réad ar ais ag <code class=\"docutils literal notranslate\"><span class=\"pre\">get_object</span> <span class=\"pre\">()</span> <span class=\"pre\">``.</span> <span class=\"pre\">De</span> <span class=\"pre\">réir</span> <span class=\"pre\">réamhshocraithe</span> <span class=\"pre\">níl</span> <span class=\"pre\">sé</span> <span class=\"pre\">seo</span> <span class=\"pre\">nochtaithe</span> <span class=\"pre\">do</span> <span class=\"pre\">na</span> <span class=\"pre\">teimpléid</span> <span class=\"pre\">chun</span> <span class=\"pre\">mearbhall</span> <span class=\"pre\">a</span> <span class=\"pre\">sheachaint</span> <span class=\"pre\">le</span> <span class=\"pre\">``{{obj}}</span></code> (féach thuas), ach is féidir leat é a úsáid chun <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>get_context_data () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>a chur i bhfeidhm.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">suite</span></code>: suíomh reatha mar a thuairiscítear thuas.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">iarraidh</span></code>: iarratas reatha.</p></li>\n</ul>\n<p>Déanann iompar <code class=\"docutils literal notranslate\"><span class=\"pre\">get_context_data</span> <span class=\"pre\">()</span> <span class=\"pre\">``aithris</span> <span class=\"pre\">ar</span> <span class=\"pre\">iompar:</span> <span class=\"pre\">ref:</span> <span class=\"pre\">`tuairimí</span> <span class=\"pre\">cineálacha</span> <span class=\"pre\">`&lt;adding-extra-context&gt;-</span> <span class=\"pre\">ceaptar</span> <span class=\"pre\">duit</span> <span class=\"pre\">glaoch</span> <span class=\"pre\">ar</span> <span class=\"pre\">``super</span> <span class=\"pre\">()</span></code> chun sonraí comhthéacs a aisghabháil ó rang tuismitheoirí, do chuid sonraí a chur leis agus an foclóir modhnaithe a thabhairt ar ais.</p>\n</li>\n<li><p>To specify the contents of <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;link&gt;</span></code>, you have two options. For each item\nin <code class=\"docutils literal notranslate\"><span class=\"pre\">items()</span></code>, Django first tries calling the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">item_link()</span></code> method on the\n<a class=\"reference internal\" href=\"#django.contrib.syndication.views.Feed\" title=\"django.contrib.syndication.views.Feed\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Feed</span></code></a> class. In a similar way to\nthe title and description, it is passed a single parameter,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">item</span></code>. If that method doesn't exist, Django tries executing a\n<code class=\"docutils literal notranslate\"><span class=\"pre\">get_absolute_url()</span></code> method on that object. Both\n<code class=\"docutils literal notranslate\"><span class=\"pre\">get_absolute_url()</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">item_link()</span></code> should return the\nitem's URL as a normal Python string. As with <code class=\"docutils literal notranslate\"><span class=\"pre\">get_absolute_url()</span></code>, the\nresult of <code class=\"docutils literal notranslate\"><span class=\"pre\">item_link()</span></code> will be included directly in the URL, so you\nare responsible for doing all necessary URL quoting and conversion to\nASCII inside the method itself.</p></li>\n</ul>\n</section>\n<section id=\"a-complex-example\">\n<h3>Sampla casta<a class=\"heading-anchor\" href=\"#a-complex-example\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Tacaíonn an creat le fothaí níos casta freisin, trí argóintí.</p>\n<p>Mar shampla, d'fhéadfadh suíomh Gréasáin fotha RSS de choireanna le déanaí a thairiscint do gach bualadh póilíní i gcathair. &lt;dry&gt;Bheadh sé amaideach rang ar leithligh: class: ~django.contrib.syndication.views.feed a chruthú do gach bualadh póilíní; a sháródh sé prionsabal: ref: DRY `agus chuirfeadh sonraí a cheangal le loighic cláraithe. Ina áit sin, ligeann an creat sindiciúcháin duit rochtain a fháil ar na hargóintí a rith ó do: doc: `URLConf &lt;/topics/http/urls&gt; ionas gur féidir le fothaí míreanna a aschur bunaithe ar fhaisnéis i URL an bheatha.</p>\n<p>D'fhéadfadh fothaí buailte póilíní a bheith inrochtana trí URLanna mar seo:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">/beats/613/rss/</span></code> -- Tugann sé coireanna le déanaí ar bhuail 613.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">/beats/1424/rss/</span></code> -- Tugann sé coireanna le déanaí ar bhuail 1424.</p></li>\n</ul>\n<p>Is féidir iad seo a mheaitseáil le a: doc: URLConf líne mar &lt;/topics/http/urls&gt;:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;beats/&lt;int:beat_id&gt;/rss/&quot;</span><span class=\"p\">,</span> <span class=\"n\">BeatFeed</span><span class=\"p\">()),</span>\n</code></pre></div>\n<p>Cosúil le dearcadh, cuirtear na hargóintí san URL chuig an modh <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>get_object () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>in éineacht leis an réad iarratais.</p>\n<p>Seo an cód do na fothaí seo a bhaineann go sonrach le bualadh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.syndication.views</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Feed</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">BeatFeed</span><span class=\"p\">(</span><span class=\"n\">Feed</span><span class=\"p\">):</span>\n    <span class=\"n\">description_template</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;feeds/beat_description.html&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_object</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">beat_id</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"n\">Beat</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\">beat_id</span><span class=\"p\">)</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">title</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"s2\">&quot;Police beat central: Crimes for beat </span><span class=\"si\">%s</span><span class=\"s2\">&quot;</span> <span class=\"o\">%</span> <span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">beat</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">link</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">get_absolute_url</span><span class=\"p\">()</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">description</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"s2\">&quot;Crimes recently reported in police beat </span><span class=\"si\">%s</span><span class=\"s2\">&quot;</span> <span class=\"o\">%</span> <span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">beat</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">items</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"n\">Crime</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">beat</span><span class=\"o\">=</span><span class=\"n\">obj</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">order_by</span><span class=\"p\">(</span><span class=\"s2\">&quot;-crime_date&quot;</span><span class=\"p\">)[:</span><span class=\"mi\">30</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>Chun <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a><code class=\"docutils literal notranslate\"><span class=\"pre\">,</span> <span class=\"pre\">``,</span> <span class=\"pre\">agus</span></code> &lt;title&gt;```` an bheatha &lt;link&gt;a ghiniúint, &lt;description&gt;úsáideann Django na modhanna <code class=\"docutils literal notranslate\"><span class=\"pre\">`teideal</span> <span class=\"pre\">()</span> <span class=\"pre\">``,</span></code> link () <code class=\"docutils literal notranslate\"><span class=\"pre\">agus</span> <span class=\"pre\">```cur</span> <span class=\"pre\">síos</span> <span class=\"pre\">()</span></code>. Sa sampla roimhe seo, ba tréithe aicme teaghráin iad, ach léiríonn an sampla seo gur féidir leo a bheith ina mhodhanna teaghráin* nó*. I gcás gach ceann de <code class=\"docutils literal notranslate\"><span class=\"pre\">teideal</span> <span class=\"pre\">``,</span> <span class=\"pre\">`nasc</span></code> agus <code class=\"docutils literal notranslate\"><span class=\"pre\">tuairisc</span></code>, leanann Django an algartam seo:</p>\n<ul class=\"simple\">\n<li><p>Ar dtús, déanann sé iarracht modh a ghlaoch, ag dul ar an argóint <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span> <span class=\"pre\">``,</span> <span class=\"pre\">áit</span> <span class=\"pre\">a</span> <span class=\"pre\">bhfuil</span> <span class=\"pre\">`obj</span></code> an rud a chuir ar ais ag <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>get_object () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>.</p></li>\n<li><p>Má theipeann sé sin, déanann sé iarracht modh a ghlaoch gan aon argóintí.</p></li>\n<li><p>Mura n-úsáideann sé sin, úsáideann sé an tréith ranga.</p></li>\n</ul>\n<p>Tabhair faoi deara freisin go leanann <code class=\"docutils literal notranslate\"><span class=\"pre\">items</span> <span class=\"pre\">()</span> <span class=\"pre\">``an</span> <span class=\"pre\">algartam</span> <span class=\"pre\">céanna</span> <span class=\"pre\">freisin</span> <span class=\"pre\">--</span> <span class=\"pre\">ar</span> <span class=\"pre\">dtús,</span> <span class=\"pre\">déanann</span> <span class=\"pre\">sé</span> <span class=\"pre\">iarracht</span> <span class=\"pre\">``items</span> <span class=\"pre\">(obj)</span></code>, ansin <code class=\"docutils literal notranslate\"><span class=\"pre\">items</span> <span class=\"pre\">()</span></code>, ansin ar deireadh tréith aicme <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>earraí <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>(ba chóir a bheith ina liosta).</p>\n<p>Táimid ag úsáid teimpléad do na tuairiscí earraí. Is féidir leis a bheith chomh íosta leis 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=\"cp\">{{</span> <span class=\"nv\">obj.description</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>Mar sin féin, tá saor ort formáidiú a chur leis de réir mar is mian leat.</p>\n<p>Tugann an rang <code class=\"docutils literal notranslate\"><span class=\"pre\">ExampleFeed</span></code> thíos doiciméadú iomlán ar mhodhanna agus tréithe ranganna: Class: ~Django.Contrib.Syndication.Views.Feed.</p>\n</section>\n<section id=\"specifying-the-type-of-feed\">\n<h3>An cineál beatha a shonrú<a class=\"heading-anchor\" href=\"#specifying-the-type-of-feed\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>De réir réamhshocraithe, úsáideann fothaí a tháirgtear sa chreat seo RSS 2.0.</p>\n<p>Chun é sin a athrú, cuir tréith <code class=\"docutils literal notranslate\"><span class=\"pre\">feed_type</span></code> le d'aicme:class: ~django.contrib.syndication.views.feed, mar sin:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils.feedgenerator</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Atom1Feed</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyFeed</span><span class=\"p\">(</span><span class=\"n\">Feed</span><span class=\"p\">):</span>\n    <span class=\"n\">feed_type</span> <span class=\"o\">=</span> <span class=\"n\">Atom1Feed</span>\n</code></pre></div>\n<p>Tabhair faoi deara go socraíonn tú <code class=\"docutils literal notranslate\"><span class=\"pre\">feed_type</span></code> le réad aicme, ní sampla.</p>\n<p>Is iad na cineálacha beatha atá ar fáil faoi láthair:</p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/ga/6.1/ref/utils/#django.utils.feedgenerator.Rss201rev2Feed\" title=\"django.utils.feedgenerator.Rss201rev2Feed\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.utils.feedgenerator.Rss201rev2Feed</span></code></a> (RSS 2.01. Default.)</p></li>\n<li><p><a class=\"reference internal\" href=\"/ga/6.1/ref/utils/#django.utils.feedgenerator.RssUserland091Feed\" title=\"django.utils.feedgenerator.RssUserland091Feed\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.utils.feedgenerator.RssUserland091Feed</span></code></a> (RSS 0.91.)</p></li>\n<li><p><a class=\"reference internal\" href=\"/ga/6.1/ref/utils/#django.utils.feedgenerator.Atom1Feed\" title=\"django.utils.feedgenerator.Atom1Feed\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.utils.feedgenerator.Atom1Feed</span></code></a> (Atom 1.0.)</p></li>\n</ul>\n</section>\n<section id=\"enclosures\">\n<h3>Iomláin<a class=\"heading-anchor\" href=\"#enclosures\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Chun imfhálacha a shonrú, amhail na cinn a úsáidtear chun fothaí podchraolta a chruthú, bain úsáid as an crúca <code class=\"docutils literal notranslate\"><span class=\"pre\">item_enclosure</span></code> nó, mura bhfuil ach imfhálú amháin agat in aghaidh an earra, na crúcaí <code class=\"docutils literal notranslate\"><span class=\"pre\">item_enclosure_url</span> <span class=\"pre\">``,</span> <span class=\"pre\">`item_enclosure_mime_type</span></code>. Féach an rang <code class=\"docutils literal notranslate\"><span class=\"pre\">ExampleFeed</span></code> thíos le haghaidh samplaí úsáide.</p>\n</section>\n<section id=\"language\">\n<h3>Teanga<a class=\"heading-anchor\" href=\"#language\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Feeds created by the syndication framework automatically include the\nappropriate <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;language&gt;</span></code> tag (RSS 2.0) or <code class=\"docutils literal notranslate\"><span class=\"pre\">xml:lang</span></code> attribute (Atom). By\ndefault, this is <a class=\"reference internal\" href=\"/ga/6.1/ref/utils/#django.utils.translation.get_language\" title=\"django.utils.translation.get_language\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">django.utils.translation.get_language()</span></code></a>. You can change\nit by setting the <code class=\"docutils literal notranslate\"><span class=\"pre\">language</span></code> class attribute.</p>\n</section>\n<section id=\"urls\">\n<h3>URLanna<a class=\"heading-anchor\" href=\"#urls\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Is féidir leis an modh/tréith <code class=\"docutils literal notranslate\"><span class=\"pre\">nasc</span></code> cosán iomlán a thabhairt ar ais (m.sh. <code class=\"docutils literal notranslate\"><span class=\"pre\">”</span> <span class=\"pre\">/blog/&quot;</span></code>) nó URL leis an bhfearann agus an prótacal láncháilithe (m.sh.``” <a class=\"reference external\" href=\"https://www.example.com/blog/\">https://www.example.com/blog/</a> “<code class=\"docutils literal notranslate\"><span class=\"pre\">).</span> <span class=\"pre\">&lt;SITE_ID&gt;Mura</span> <span class=\"pre\">bhfilleann</span> <span class=\"pre\">``nasc</span></code> an fearann ar ais, cuirfidh an creat siondicíochta fearann an láithreáin reatha isteach, de réir do shuíomh: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>SET_ID <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>.</p>\n<p>Teastaíonn &lt;link rel=&quot;self&quot;&gt;```` i bhfothaí Atom a shainmhíníonn suíomh reatha an bheatha. Déanann an creat siondála é seo a líonadh go huathoibríoch, ag baint úsáide as fearann an láithreáin reatha de réir an shocraithe:setting: SITE_ID.</p>\n</section>\n<section id=\"publishing-atom-and-rss-feeds-in-tandem\">\n<h3>Fothaí Atom agus RSS a fhoilsiú in éineacht<a class=\"heading-anchor\" href=\"#publishing-atom-and-rss-feeds-in-tandem\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Is maith le roinnt forbróirí leaganacha Atom* agus* RSS dá bhfothaí a chur ar fáil. Chun sin a dhéanamh, is féidir leat fo-aicme de do rang: ~django.contrib.syndication.views.feed a chruthú agus an feed_type` a shocrú go rud éigin difriúil. Ansin nuashonraigh do URLConf chun na leaganacha breise a chur leis.</p>\n<p>Seo sampla iomlán:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.syndication.views</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Feed</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">policebeat.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">NewsItem</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils.feedgenerator</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Atom1Feed</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">RssSiteNewsFeed</span><span class=\"p\">(</span><span class=\"n\">Feed</span><span class=\"p\">):</span>\n    <span class=\"n\">title</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;Police beat site news&quot;</span>\n    <span class=\"n\">link</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;/sitenews/&quot;</span>\n    <span class=\"n\">description</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;Updates on changes and additions to police beat central.&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">items</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"n\">NewsItem</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\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">AtomSiteNewsFeed</span><span class=\"p\">(</span><span class=\"n\">RssSiteNewsFeed</span><span class=\"p\">):</span>\n    <span class=\"n\">feed_type</span> <span class=\"o\">=</span> <span class=\"n\">Atom1Feed</span>\n    <span class=\"n\">subtitle</span> <span class=\"o\">=</span> <span class=\"n\">RssSiteNewsFeed</span><span class=\"o\">.</span><span class=\"n\">description</span>\n</code></pre></div>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Sa sampla seo, úsáideann an fotha RSS <code class=\"docutils literal notranslate\"><span class=\"pre\">cur</span> <span class=\"pre\">síos</span></code> agus úsáideann an fotha Atom <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>fotheidil <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>. Tá sé sin toisc nach soláthraíonn fothaí Atom do “tuairisc” ar leibhéal beatha, ach déanaim* soláthraíonn siad “fotheideal.”</p>\n<p>Má sholáthraíonn tú <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>description <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>i do rang: :class: ~django.contrib.syndication.views.feed, ní chuirfidh Django é sin isteach sa ghné <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">``</span></a>subtitle` go huathoibríoch, toisc nach gá gurb é fotheideal agus cur síos an rud céanna. Ina áit sin, ba chóir duit tréith <a href=\"#id7\"><span class=\"problematic\" id=\"id8\">``</span></a>subtitle` a shainiú.</p>\n<p>Sa sampla thuas, socraíomar <code class=\"docutils literal notranslate\"><span class=\"pre\">fotheideal</span> <span class=\"pre\">``fotha</span> <span class=\"pre\">Atom</span> <span class=\"pre\">chuig</span> <span class=\"pre\">``cur</span> <span class=\"pre\">síos</span></code> fotha RSS, toisc go bhfuil sé gearr go leor cheana féin.</p>\n</aside>\n<p>Agus an URLConf a ghabhann leis:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">path</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myproject.feeds</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">AtomSiteNewsFeed</span><span class=\"p\">,</span> <span class=\"n\">RssSiteNewsFeed</span>\n\n<span class=\"n\">urlpatterns</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"c1\"># ...</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;sitenews/rss/&quot;</span><span class=\"p\">,</span> <span class=\"n\">RssSiteNewsFeed</span><span class=\"p\">()),</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;sitenews/atom/&quot;</span><span class=\"p\">,</span> <span class=\"n\">AtomSiteNewsFeed</span><span class=\"p\">()),</span>\n    <span class=\"c1\"># ...</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n</section>\n<section id=\"feed-class-reference\">\n<h3>Tagairt aicme <code class=\"docutils literal notranslate\"><span class=\"pre\">Feed</span></code><a class=\"heading-anchor\" href=\"#feed-class-reference\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.syndication.views.Feed\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-prename descclassname\"><span class=\"pre\">views.</span></span><span class=\"sig-name descname\"><span class=\"pre\">Feed</span></span><a class=\"heading-anchor\" href=\"#django.contrib.syndication.views.Feed\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Léiríonn an sampla seo gach tréithe agus modhanna féideartha d'aicme a:class: ~django.contrib.syndication.views.feed:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.syndication.views</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Feed</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">feedgenerator</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ExampleFeed</span><span class=\"p\">(</span><span class=\"n\">Feed</span><span class=\"p\">):</span>\n    <span class=\"c1\"># FEED TYPE -- Optional. This should be a class that subclasses</span>\n    <span class=\"c1\"># django.utils.feedgenerator.SyndicationFeed. This designates</span>\n    <span class=\"c1\"># which type of feed this should be: RSS 2.0, Atom 1.0, etc. If</span>\n    <span class=\"c1\"># you don&#39;t specify feed_type, your feed will be RSS 2.0. This</span>\n    <span class=\"c1\"># should be a class, not an instance of the class.</span>\n\n    <span class=\"n\">feed_type</span> <span class=\"o\">=</span> <span class=\"n\">feedgenerator</span><span class=\"o\">.</span><span class=\"n\">Rss201rev2Feed</span>\n\n    <span class=\"c1\"># TEMPLATE NAMES -- Optional. These should be strings</span>\n    <span class=\"c1\"># representing names of Django templates that the system should</span>\n    <span class=\"c1\"># use in rendering the title and description of your feed items.</span>\n    <span class=\"c1\"># Both are optional. If a template is not specified, the</span>\n    <span class=\"c1\"># item_title() or item_description() methods are used instead.</span>\n\n    <span class=\"n\">title_template</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>\n    <span class=\"n\">description_template</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>\n\n    <span class=\"c1\"># LANGUAGE -- Optional. This should be a string specifying a language</span>\n    <span class=\"c1\"># code. Defaults to django.utils.translation.get_language().</span>\n    <span class=\"n\">language</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;de&quot;</span>\n\n    <span class=\"c1\"># TITLE -- One of the following three is required. The framework</span>\n    <span class=\"c1\"># looks for them in this order.</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">title</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Takes the object returned by get_object() and returns the</span>\n<span class=\"sd\">        feed&#39;s title as a normal Python string.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">title</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Returns the feed&#39;s title as a normal Python string.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"n\">title</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;foo&quot;</span>  <span class=\"c1\"># Hard-coded title.</span>\n\n    <span class=\"c1\"># LINK -- One of the following three is required. The framework</span>\n    <span class=\"c1\"># looks for them in this order.</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">link</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        # Takes the object returned by get_object() and returns the URL</span>\n<span class=\"sd\">        # of the HTML version of the feed as a normal Python string.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">link</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Returns the URL of the HTML version of the feed as a normal Python</span>\n<span class=\"sd\">        string.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"n\">link</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;/blog/&quot;</span>  <span class=\"c1\"># Hard-coded URL.</span>\n\n    <span class=\"c1\"># FEED_URL -- One of the following three is optional. The framework</span>\n    <span class=\"c1\"># looks for them in this order.</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">feed_url</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        # Takes the object returned by get_object() and returns the feed&#39;s</span>\n<span class=\"sd\">        # own URL as a normal Python string.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">feed_url</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Returns the feed&#39;s own URL as a normal Python string.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"n\">feed_url</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;/blog/rss/&quot;</span>  <span class=\"c1\"># Hard-coded URL.</span>\n\n    <span class=\"c1\"># GUID -- One of the following three is optional. The framework looks</span>\n    <span class=\"c1\"># for them in this order. This property is only used for Atom feeds</span>\n    <span class=\"c1\"># (where it is the feed-level ID element). If not provided, the feed</span>\n    <span class=\"c1\"># link is used as the ID.</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">feed_guid</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Takes the object returned by get_object() and returns the globally</span>\n<span class=\"sd\">        unique ID for the feed as a normal Python string.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">feed_guid</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Returns the feed&#39;s globally unique ID as a normal Python string.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"n\">feed_guid</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;/foo/bar/1234&quot;</span>  <span class=\"c1\"># Hard-coded guid.</span>\n\n    <span class=\"c1\"># DESCRIPTION -- One of the following three is required. The framework</span>\n    <span class=\"c1\"># looks for them in this order.</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">description</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Takes the object returned by get_object() and returns the feed&#39;s</span>\n<span class=\"sd\">        description as a normal Python string.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">description</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Returns the feed&#39;s description as a normal Python string.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"n\">description</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;Foo bar baz.&quot;</span>  <span class=\"c1\"># Hard-coded description.</span>\n\n    <span class=\"c1\"># AUTHOR NAME --One of the following three is optional. The framework</span>\n    <span class=\"c1\"># looks for them in this order.</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">author_name</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Takes the object returned by get_object() and returns the feed&#39;s</span>\n<span class=\"sd\">        author&#39;s name as a normal Python string.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">author_name</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Returns the feed&#39;s author&#39;s name as a normal Python string.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"n\">author_name</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;Sally Smith&quot;</span>  <span class=\"c1\"># Hard-coded author name.</span>\n\n    <span class=\"c1\"># AUTHOR EMAIL --One of the following three is optional. The framework</span>\n    <span class=\"c1\"># looks for them in this order.</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">author_email</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Takes the object returned by get_object() and returns the feed&#39;s</span>\n<span class=\"sd\">        author&#39;s email as a normal Python string.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">author_email</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Returns the feed&#39;s author&#39;s email as a normal Python string.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"n\">author_email</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;test@example.com&quot;</span>  <span class=\"c1\"># Hard-coded author email.</span>\n\n    <span class=\"c1\"># AUTHOR LINK --One of the following three is optional. The framework</span>\n    <span class=\"c1\"># looks for them in this order. In each case, the URL should include</span>\n    <span class=\"c1\"># the scheme (such as &quot;https://&quot;) and domain name.</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">author_link</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Takes the object returned by get_object() and returns the feed&#39;s</span>\n<span class=\"sd\">        author&#39;s URL as a normal Python string.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">author_link</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Returns the feed&#39;s author&#39;s URL as a normal Python string.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"n\">author_link</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;https://www.example.com/&quot;</span>  <span class=\"c1\"># Hard-coded author URL.</span>\n\n    <span class=\"c1\"># CATEGORIES -- One of the following three is optional. The framework</span>\n    <span class=\"c1\"># looks for them in this order. In each case, the method/attribute</span>\n    <span class=\"c1\"># should return an iterable object that returns strings.</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">categories</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Takes the object returned by get_object() and returns the feed&#39;s</span>\n<span class=\"sd\">        categories as iterable over strings.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">categories</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Returns the feed&#39;s categories as iterable over strings.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"n\">categories</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;python&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;django&quot;</span><span class=\"p\">]</span>  <span class=\"c1\"># Hard-coded list of categories.</span>\n\n    <span class=\"c1\"># COPYRIGHT NOTICE -- One of the following three is optional. The</span>\n    <span class=\"c1\"># framework looks for them in this order.</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">feed_copyright</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Takes the object returned by get_object() and returns the feed&#39;s</span>\n<span class=\"sd\">        copyright notice as a normal Python string.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">feed_copyright</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Returns the feed&#39;s copyright notice as a normal Python string.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"n\">feed_copyright</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;Copyright (c) 2007, Sally Smith&quot;</span>  <span class=\"c1\"># Hard-coded copyright notice.</span>\n\n    <span class=\"c1\"># TTL -- One of the following three is optional. The framework looks</span>\n    <span class=\"c1\"># for them in this order. Ignored for Atom feeds.</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">ttl</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Takes the object returned by get_object() and returns the feed&#39;s</span>\n<span class=\"sd\">        TTL (Time To Live) as a normal Python string.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">ttl</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Returns the feed&#39;s TTL as a normal Python string.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"n\">ttl</span> <span class=\"o\">=</span> <span class=\"mi\">600</span>  <span class=\"c1\"># Hard-coded Time To Live.</span>\n\n    <span class=\"c1\"># STYLESHEETS -- Optional. To set, provide one of the following three.</span>\n    <span class=\"c1\"># The framework looks for them in this order.</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">stylesheets</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Takes the object returned by get_object() and returns the feed&#39;s</span>\n<span class=\"sd\">        stylesheets (as URL strings or as Stylesheet instances).</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">stylesheets</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Returns the feed&#39;s stylesheets (as URL strings or Stylesheet</span>\n<span class=\"sd\">        instances).</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"c1\"># Hardcoded stylesheets.</span>\n    <span class=\"n\">stylesheets</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;/stylesheet1.xsl&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;stylesheet2.xsl&quot;</span><span class=\"p\">]</span>\n\n    <span class=\"c1\"># ITEMS -- One of the following three is required. The framework looks</span>\n    <span class=\"c1\"># for them in this order.</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">items</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Takes the object returned by get_object() and returns a list of</span>\n<span class=\"sd\">        items to publish in this feed.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">items</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Returns a list of items to publish in this feed.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"n\">items</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;Item 1&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Item 2&quot;</span><span class=\"p\">]</span>  <span class=\"c1\"># Hard-coded items.</span>\n\n    <span class=\"c1\"># GET_OBJECT -- This is required for feeds that publish different data</span>\n    <span class=\"c1\"># for different URL parameters. (See &quot;A complex example&quot; above.)</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_object</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"o\">*</span><span class=\"n\">args</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Takes the current request and the arguments from the URL, and</span>\n<span class=\"sd\">        returns an object represented by this feed. Raises</span>\n<span class=\"sd\">        django.core.exceptions.ObjectDoesNotExist on error.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"c1\"># ITEM TITLE AND DESCRIPTION -- If title_template or</span>\n    <span class=\"c1\"># description_template are not defined, these are used instead. Both are</span>\n    <span class=\"c1\"># optional, by default they will use the string representation of the</span>\n    <span class=\"c1\"># item.</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_title</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">item</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Takes an item, as returned by items(), and returns the item&#39;s</span>\n<span class=\"sd\">        title as a normal Python string.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_title</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Returns the title for every item in the feed.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"n\">item_title</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;Breaking News: Nothing Happening&quot;</span>  <span class=\"c1\"># Hard-coded title.</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_description</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">item</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Takes an item, as returned by items(), and returns the item&#39;s</span>\n<span class=\"sd\">        description as a normal Python string.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_description</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Returns the description for every item in the feed.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"n\">item_description</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;A description of the item.&quot;</span>  <span class=\"c1\"># Hard-coded description.</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_context_data</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Returns a dictionary to use as extra context if either</span>\n<span class=\"sd\">        description_template or item_template are used.</span>\n\n<span class=\"sd\">        Default implementation preserves the old behavior</span>\n<span class=\"sd\">        of using {&#39;obj&#39;: item, &#39;site&#39;: current_site} as the context.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"c1\"># ITEM LINK -- One of these three is required. The framework looks for</span>\n    <span class=\"c1\"># them in this order.</span>\n\n    <span class=\"c1\"># First, the framework tries the two methods below, in</span>\n    <span class=\"c1\"># order. Failing that, it falls back to the get_absolute_url()</span>\n    <span class=\"c1\"># method on each item returned by items().</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_link</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">item</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Takes an item, as returned by items(), and returns the item&#39;s URL.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_link</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Returns the URL for every item in the feed.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"c1\"># ITEM_GUID -- The following method is optional. If not provided, the</span>\n    <span class=\"c1\"># item&#39;s link is used by default.</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_guid</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Takes an item, as return by items(), and returns the item&#39;s ID.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"c1\"># ITEM_GUID_IS_PERMALINK -- The following method is optional. If</span>\n    <span class=\"c1\"># provided, it sets the &#39;isPermaLink&#39; attribute of an item&#39;s</span>\n    <span class=\"c1\"># GUID element. This method is used only when &#39;item_guid&#39; is</span>\n    <span class=\"c1\"># specified.</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_guid_is_permalink</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Takes an item, as returned by items(), and returns a boolean.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"n\">item_guid_is_permalink</span> <span class=\"o\">=</span> <span class=\"kc\">False</span>  <span class=\"c1\"># Hardcoded value</span>\n\n    <span class=\"c1\"># ITEM AUTHOR NAME -- One of the following three is optional. The</span>\n    <span class=\"c1\"># framework looks for them in this order.</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_author_name</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">item</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Takes an item, as returned by items(), and returns the item&#39;s</span>\n<span class=\"sd\">        author&#39;s name as a normal Python string.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_author_name</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Returns the author name for every item in the feed.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"n\">item_author_name</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;Sally Smith&quot;</span>  <span class=\"c1\"># Hard-coded author name.</span>\n\n    <span class=\"c1\"># ITEM AUTHOR EMAIL --One of the following three is optional. The</span>\n    <span class=\"c1\"># framework looks for them in this order.</span>\n    <span class=\"c1\">#</span>\n    <span class=\"c1\"># If you specify this, you must specify item_author_name.</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_author_email</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Takes an item, as returned by items(), and returns the item&#39;s</span>\n<span class=\"sd\">        author&#39;s email as a normal Python string.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_author_email</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Returns the author email for every item in the feed.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"n\">item_author_email</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;test@example.com&quot;</span>  <span class=\"c1\"># Hard-coded author email.</span>\n\n    <span class=\"c1\"># ITEM AUTHOR LINK -- One of the following three is optional. The</span>\n    <span class=\"c1\"># framework looks for them in this order. In each case, the URL should</span>\n    <span class=\"c1\"># include the scheme (such as &quot;https://&quot;) and domain name.</span>\n    <span class=\"c1\">#</span>\n    <span class=\"c1\"># If you specify this, you must specify item_author_name.</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_author_link</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Takes an item, as returned by items(), and returns the item&#39;s</span>\n<span class=\"sd\">        author&#39;s URL as a normal Python string.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_author_link</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Returns the author URL for every item in the feed.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"n\">item_author_link</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;https://www.example.com/&quot;</span>  <span class=\"c1\"># Hard-coded author URL.</span>\n\n    <span class=\"c1\"># ITEM ENCLOSURES -- One of the following three is optional. The</span>\n    <span class=\"c1\"># framework looks for them in this order. If one of them is defined,</span>\n    <span class=\"c1\"># ``item_enclosure_url``, ``item_enclosure_length``, and</span>\n    <span class=\"c1\"># ``item_enclosure_mime_type`` will have no effect.</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_enclosures</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">item</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Takes an item, as returned by items(), and returns a list of</span>\n<span class=\"sd\">        ``django.utils.feedgenerator.Enclosure`` objects.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_enclosures</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Returns the ``django.utils.feedgenerator.Enclosure`` list for every</span>\n<span class=\"sd\">        item in the feed.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"n\">item_enclosures</span> <span class=\"o\">=</span> <span class=\"p\">[]</span>  <span class=\"c1\"># Hard-coded enclosure list</span>\n\n    <span class=\"c1\"># ITEM ENCLOSURE URL -- One of these three is required if you&#39;re</span>\n    <span class=\"c1\"># publishing enclosures and you&#39;re not using ``item_enclosures``. The</span>\n    <span class=\"c1\"># framework looks for them in this order.</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_enclosure_url</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">item</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Takes an item, as returned by items(), and returns the item&#39;s</span>\n<span class=\"sd\">        enclosure URL.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_enclosure_url</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Returns the enclosure URL for every item in the feed.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"n\">item_enclosure_url</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;/foo/bar.mp3&quot;</span>  <span class=\"c1\"># Hard-coded enclosure link.</span>\n\n    <span class=\"c1\"># ITEM ENCLOSURE LENGTH -- One of these three is required if you&#39;re</span>\n    <span class=\"c1\"># publishing enclosures and you&#39;re not using ``item_enclosures``. The</span>\n    <span class=\"c1\"># framework looks for them in this order. In each case, the returned</span>\n    <span class=\"c1\"># value should be either an integer, or a string representation of the</span>\n    <span class=\"c1\"># integer, in bytes.</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_enclosure_length</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">item</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Takes an item, as returned by items(), and returns the item&#39;s</span>\n<span class=\"sd\">        enclosure length.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_enclosure_length</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Returns the enclosure length for every item in the feed.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"n\">item_enclosure_length</span> <span class=\"o\">=</span> <span class=\"mi\">32000</span>  <span class=\"c1\"># Hard-coded enclosure length.</span>\n\n    <span class=\"c1\"># ITEM ENCLOSURE MIME TYPE -- One of these three is required if you&#39;re</span>\n    <span class=\"c1\"># publishing enclosures and you&#39;re not using ``item_enclosures``. The</span>\n    <span class=\"c1\"># framework looks for them in this order.</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_enclosure_mime_type</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">item</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Takes an item, as returned by items(), and returns the item&#39;s</span>\n<span class=\"sd\">        enclosure MIME type.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_enclosure_mime_type</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Returns the enclosure MIME type for every item in the feed.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"n\">item_enclosure_mime_type</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;audio/mpeg&quot;</span>  <span class=\"c1\"># Hard-coded enclosure MIME type.</span>\n\n    <span class=\"c1\"># ITEM PUBDATE -- It&#39;s optional to use one of these three. This is a</span>\n    <span class=\"c1\"># hook that specifies how to get the pubdate for a given item.</span>\n    <span class=\"c1\"># In each case, the method/attribute should return a Python</span>\n    <span class=\"c1\"># datetime.datetime object.</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_pubdate</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">item</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Takes an item, as returned by items(), and returns the item&#39;s</span>\n<span class=\"sd\">        pubdate.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_pubdate</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Returns the pubdate for every item in the feed.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"n\">item_pubdate</span> <span class=\"o\">=</span> <span class=\"n\">datetime</span><span class=\"o\">.</span><span class=\"n\">datetime</span><span class=\"p\">(</span><span class=\"mi\">2005</span><span class=\"p\">,</span> <span class=\"mi\">5</span><span class=\"p\">,</span> <span class=\"mi\">3</span><span class=\"p\">)</span>  <span class=\"c1\"># Hard-coded pubdate.</span>\n\n    <span class=\"c1\"># ITEM UPDATED -- It&#39;s optional to use one of these three. This is a</span>\n    <span class=\"c1\"># hook that specifies how to get the updateddate for a given item.</span>\n    <span class=\"c1\"># In each case, the method/attribute should return a Python</span>\n    <span class=\"c1\"># datetime.datetime object.</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_updateddate</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">item</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Takes an item, as returned by items(), and returns the item&#39;s</span>\n<span class=\"sd\">        updateddate.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_updateddate</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Returns the updateddate for every item in the feed.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"n\">item_updateddate</span> <span class=\"o\">=</span> <span class=\"n\">datetime</span><span class=\"o\">.</span><span class=\"n\">datetime</span><span class=\"p\">(</span><span class=\"mi\">2005</span><span class=\"p\">,</span> <span class=\"mi\">5</span><span class=\"p\">,</span> <span class=\"mi\">3</span><span class=\"p\">)</span>  <span class=\"c1\"># Hard-coded updateddate.</span>\n\n    <span class=\"c1\"># ITEM CATEGORIES -- It&#39;s optional to use one of these three. This is</span>\n    <span class=\"c1\"># a hook that specifies how to get the list of categories for a given</span>\n    <span class=\"c1\"># item. In each case, the method/attribute should return an iterable</span>\n    <span class=\"c1\"># object that returns strings.</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_categories</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">item</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Takes an item, as returned by items(), and returns the item&#39;s</span>\n<span class=\"sd\">        categories.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_categories</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Returns the categories for every item in the feed.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"n\">item_categories</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;python&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;django&quot;</span><span class=\"p\">]</span>  <span class=\"c1\"># Hard-coded categories.</span>\n\n    <span class=\"c1\"># ITEM COPYRIGHT NOTICE (only applicable to Atom feeds) -- One of the</span>\n    <span class=\"c1\"># following three is optional. The framework looks for them in this</span>\n    <span class=\"c1\"># order.</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_copyright</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Takes an item, as returned by items(), and returns the item&#39;s</span>\n<span class=\"sd\">        copyright notice as a normal Python string.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_copyright</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Returns the copyright notice for every item in the feed.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"n\">item_copyright</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;Copyright (c) 2007, Sally Smith&quot;</span>  <span class=\"c1\"># Hard-coded copyright notice.</span>\n\n    <span class=\"c1\"># ITEM COMMENTS URL -- It&#39;s optional to use one of these three. This is</span>\n    <span class=\"c1\"># a hook that specifies how to get the URL of a page for comments for a</span>\n    <span class=\"c1\"># given item.</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_comments</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Takes an item, as returned by items(), and returns the item&#39;s</span>\n<span class=\"sd\">        comments URL as a normal Python string.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">item_comments</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Returns the comments URL for every item in the feed.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n\n    <span class=\"n\">item_comments</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;https://www.example.com/comments&quot;</span>  <span class=\"c1\"># Hard-coded comments URL</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"the-low-level-framework\">\n<h2>An creat ar leibhéal íseal<a class=\"heading-anchor\" href=\"#the-low-level-framework\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Taobh thiar de na radhairc, úsáideann an creat ardleibhéil RSS creat leibhéal níos ísle chun XML fothaí a ghiniúint. Tá an creat seo ina gcónaí i modúl amháin: :source: django/utils/feedgenerator.py.</p>\n<p>Úsáideann tú an creat seo leat féin, le haghaidh giniúint beatha ar leibhéal níos ísle. Is féidir leat fo-aicmí gineadóir beatha saincheaptha a chruthú freisin le húsáid leis an rogha <code class=\"docutils literal notranslate\"><span class=\"pre\">feed_type</span></code> Feed `.</p>\n<section id=\"syndicationfeed-classes\">\n<h3>Ranganna <code class=\"docutils literal notranslate\"><span class=\"pre\">SyndicationFeed</span></code><a class=\"heading-anchor\" href=\"#syndicationfeed-classes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Tá bunaicme sa mhodúl:MOD: ~django.utils.feedgenerator:</p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/ga/6.1/ref/utils/#django.utils.feedgenerator.SyndicationFeed\" title=\"django.utils.feedgenerator.SyndicationFeed\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.utils.feedgenerator.SyndicationFeed</span></code></a></p></li>\n</ul>\n<p>agus roinnt fo-aicmí:</p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/ga/6.1/ref/utils/#django.utils.feedgenerator.RssUserland091Feed\" title=\"django.utils.feedgenerator.RssUserland091Feed\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.utils.feedgenerator.RssUserland091Feed</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/ga/6.1/ref/utils/#django.utils.feedgenerator.Rss201rev2Feed\" title=\"django.utils.feedgenerator.Rss201rev2Feed\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.utils.feedgenerator.Rss201rev2Feed</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/ga/6.1/ref/utils/#django.utils.feedgenerator.Atom1Feed\" title=\"django.utils.feedgenerator.Atom1Feed\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.utils.feedgenerator.Atom1Feed</span></code></a></p></li>\n</ul>\n<p>Tá a fhios ag gach ceann de na trí rang seo conas cineál áirithe beatha a rinneadh mar XML. Roinneann siad an comhéadan seo:</p>\n<dl>\n<dt><a class=\"reference internal\" href=\"/ga/6.1/ref/utils/#django.utils.feedgenerator.SyndicationFeed.__init__\" title=\"django.utils.feedgenerator.SyndicationFeed.__init__\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">SyndicationFeed.__init__()</span></code></a></dt><dd><p>Cuir tús leis an bhfoclóir meiteashonraí a thugtar, a bhaineann leis an mbeatha iomlán. Argóintí eochairfhocal riachtanacha</p>\n<ul class=\"simple\">\n<li><p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>teideal ``</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">nasc</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">`Tuairisc</span></code></p></li>\n</ul>\n<p>Tá dornán eochairfhocail roghnacha eile ann freisin:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">teanga</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">`Author_Ríomhphost</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ainm_údar</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">nasc_údar</span></code></p></li>\n<li><p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>fotheidil ``</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Catagóirí</span></code></p></li>\n<li><p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>feed_url ``</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">feed_copyright</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">treoir_feed</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ttl</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">stylesheets</span></code></p></li>\n</ul>\n<p>Stórálfar aon argóintí eochairfhocal breise a chuireann tú chuig <code class=\"docutils literal notranslate\"><span class=\"pre\">__init__</span></code> i <a class=\"reference internal\" href=\"#custom-feed-generators\">self.feed ``le húsáid le `gineadóirí beatha saincheapaithe</a>.</p>\n<p>All parameters should be strings, except for two:</p>\n<ul class=\"simple\">\n<li><p>Ba chóir go mbeadh “catagóirí” ina seicheamh teaghráin.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">stylesheets</span></code> should be a sequence of either strings or\n<a class=\"reference internal\" href=\"/ga/6.1/ref/utils/#django.utils.feedgenerator.Stylesheet\" title=\"django.utils.feedgenerator.Stylesheet\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Stylesheet</span></code></a> instances.</p></li>\n</ul>\n<p>Beware that some control characters are\n<a class=\"reference external\" href=\"https://www.w3.org/International/questions/qa-controls\">not allowed</a> in\nXML documents. If your content has some of them, you might encounter a\n<a class=\"reference external\" href=\"https://docs.python.org/3/library/exceptions.html#ValueError\" title=\"(in Python v3.14)\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">ValueError</span></code></a> when producing the feed.</p>\n</dd>\n<dt><a class=\"reference internal\" href=\"/ga/6.1/ref/utils/#django.utils.feedgenerator.SyndicationFeed.add_item\" title=\"django.utils.feedgenerator.SyndicationFeed.add_item\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">SyndicationFeed.add_item()</span></code></a></dt><dd><p>Cuir mír leis an mbeatha leis na paraiméadair a thugtar.</p>\n<p>Argóintí eochairfhocal riachtanacha</p>\n<ul class=\"simple\">\n<li><p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>teideal ``</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">nasc</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">`Tuairisc</span></code></p></li>\n</ul>\n<p>Argóintí eochairfhocal roghnacha</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">`Author_Ríomhphost</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ainm_údar</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">nasc_údar</span></code></p></li>\n<li><p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Pubdáta`</p></li>\n<li><p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Tráchtaireachtaí ``</p></li>\n<li><p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Unique_id ``</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Enclósurs</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Catagóirí</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ear_copyright</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ttl</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Dáta</span> <span class=\"pre\">nuashonraithe</span></code></p></li>\n</ul>\n<p>Stórálfar argóintí eochairfhocal breise do <a class=\"reference internal\" href=\"#custom-feed-generators\">gineadóirí beatha saincheapaithe</a>.</p>\n<p>Ba chóir go mbeadh na paraiméadair go léir, má thugtar, a bheith ina teaghrá</p>\n<ul class=\"simple\">\n<li><p>Ba chóir go mbeadh pubdate` ina réad Python: Class: ~datetime.datetime.</p></li>\n<li><p>Ba chóir go mbeadh updateddate` ina réad Python: Class: ~datetime.datetime.</p></li>\n<li><p>Ba chóir go mbeadh <code class=\"docutils literal notranslate\"><span class=\"pre\">enclosures</span></code> liosta de:class: django.utils.feedgenerator.enclosure cásanna.</p></li>\n<li><p>Ba chóir go mbeadh “catagóirí” ina seicheamh teaghráin.</p></li>\n</ul>\n</dd>\n<dt><a class=\"reference internal\" href=\"/ga/6.1/ref/utils/#django.utils.feedgenerator.SyndicationFeed.write\" title=\"django.utils.feedgenerator.SyndicationFeed.write\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">SyndicationFeed.write()</span></code></a></dt><dd><p>Aisíonn sé an beatha san ionchódú a thugtar chun outfile, ar réad cosúil le comhad é.</p>\n</dd>\n<dt><a class=\"reference internal\" href=\"/ga/6.1/ref/utils/#django.utils.feedgenerator.SyndicationFeed.writeString\" title=\"django.utils.feedgenerator.SyndicationFeed.writeString\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">SyndicationFeed.writeString()</span></code></a></dt><dd><p>Tugann sé an beatha ar ais mar shreang san ionchódú a thugtar.</p>\n</dd>\n</dl>\n<p>Mar shampla, chun beatha Atom 1.0 a chruthú agus é a phriontáil chuig aschur caighdeánach:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">feedgenerator</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">datetime</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">datetime</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">feedgenerator</span><span class=\"o\">.</span><span class=\"n\">Atom1Feed</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">title</span><span class=\"o\">=</span><span class=\"s2\">&quot;My Blog&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">link</span><span class=\"o\">=</span><span class=\"s2\">&quot;https://www.example.com/&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">description</span><span class=\"o\">=</span><span class=\"s2\">&quot;In which I write about what I ate today.&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">language</span><span class=\"o\">=</span><span class=\"s2\">&quot;en&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">author_name</span><span class=\"o\">=</span><span class=\"s2\">&quot;Myself&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">feed_url</span><span class=\"o\">=</span><span class=\"s2\">&quot;https://example.com/atom.xml&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">add_item</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">title</span><span class=\"o\">=</span><span class=\"s2\">&quot;Hot dog today&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">link</span><span class=\"o\">=</span><span class=\"s2\">&quot;https://www.example.com/entries/1/&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">pubdate</span><span class=\"o\">=</span><span class=\"n\">datetime</span><span class=\"o\">.</span><span class=\"n\">now</span><span class=\"p\">(),</span>\n<span class=\"gp\">... </span>    <span class=\"n\">description</span><span class=\"o\">=</span><span class=\"s2\">&quot;&lt;p&gt;Today I had a Vienna Beef hot dog. It was pink, plump and perfect.&lt;/p&gt;&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">writeString</span><span class=\"p\">(</span><span class=\"s2\">&quot;UTF-8&quot;</span><span class=\"p\">))</span>\n<span class=\"go\">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;</span>\n<span class=\"go\">&lt;feed xmlns=&quot;http://www.w3.org/2005/Atom&quot; xml:lang=&quot;en&quot;&gt;</span>\n<span class=\"go\">...</span>\n<span class=\"go\">&lt;/feed&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"custom-feed-generators\">\n<h3>Gineadóirí beatha saincheaptha<a class=\"heading-anchor\" href=\"#custom-feed-generators\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Más gá duit formáid beatha saincheaptha a tháirgeadh, tá cúpla rogha agat.</p>\n<p>Má tá an fhormáid beatha go hiomlán saincheaptha, beidh tú ag iarraidh “SyndicationFeed” a fho-aicmiú agus na modhanna <code class=\"docutils literal notranslate\"><span class=\"pre\">write</span> <span class=\"pre\">()</span> <span class=\"pre\">``agus</span> <span class=\"pre\">`WriteString</span> <span class=\"pre\">()</span></code> a chur in ionad go hiomlán.</p>\n<p>Mar sin féin, más spin-off de RSS nó Atom é an fhormáid beatha (ie <a class=\"reference external\" href=\"https://georss.org\">GeoRSS</a>, formáid podchraoladh “iTunes” _ Apple, srl.), Tá rogha níos fearr agat. De ghnáth cuireann na cineálacha fothaí seo eilimintí agus/nó tréithe breise leis an bhformáid bhunúsach, agus tá sraith modhanna ann a ghlaonn SyndicationFeed chun na tréithe breise seo a fháil. Dá bhrí sin, is féidir leat an rang gineadóir beatha cuí a fho-aicmiú (<code class=\"docutils literal notranslate\"><span class=\"pre\">Atom1Feed</span></code> nó <code class=\"docutils literal notranslate\"><span class=\"pre\">RSS201REV2Feed</span></code>) agus na haisghlaonna seo a leathnú. Is iad seo a leanas:</p>\n<dl class=\"simple\">\n<dt><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>SyndicationFeed.root_attributs (féin) ``</dt><dd><p>Tabhair ar ais <code class=\"docutils literal notranslate\"><span class=\"pre\">dict</span></code> de thréithe le cur leis an eilimint beatha fréimhe (<code class=\"docutils literal notranslate\"><span class=\"pre\">feed`</span></code>/<code class=\"docutils literal notranslate\"><span class=\"pre\">chainel</span></code>).</p>\n</dd>\n<dt><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>SyndicationFeed.Add_Root_Elements (féin, láimhseálaí) ``</dt><dd><p>Glaoigh ar ais chun eilimintí a chur leis taobh istigh den eilimint beatha fréimhe (feed``/<code class=\"docutils literal notranslate\"><span class=\"pre\">channel</span> <span class=\"pre\">``).</span> <span class=\"pre\">Is</span> <span class=\"pre\">é</span> <span class=\"pre\">``handler</span></code> an:class: ~xml.sax.saxutils.xmlGenerator ó leabharlann SAX ionsuite Python; glaoifidh tú modhanna air chun cur leis an doiciméad XML atá i bpróiseas.</p>\n</dd>\n<dt><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>SyndicationFeed.Item_Attributes (féin, mír) ``</dt><dd><p>Tabhair ar ais <code class=\"docutils literal notranslate\"><span class=\"pre\">dict</span></code> de thréithe le cur le gach mír (<code class=\"docutils literal notranslate\"><span class=\"pre\">ear</span></code>/<code class=\"docutils literal notranslate\"><span class=\"pre\">iontrála</span></code>) eilimint. Is foclóir é an argóint, Item `, de na sonraí go léir a chuirtear chuig SyndicationFeed.add_item ()`.</p>\n</dd>\n<dt><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>SyndicationFeed.Add_Item_Elements (féin, láimhseálaí, mír) ``</dt><dd><p>Glaoigh ar ais chun eilimintí a chur le gach eilimint (<code class=\"docutils literal notranslate\"><span class=\"pre\">item</span></code>/<code class=\"docutils literal notranslate\"><span class=\"pre\">iontrála`).</span> <span class=\"pre\">Tá</span> <span class=\"pre\">``handler</span></code> agus <code class=\"docutils literal notranslate\"><span class=\"pre\">ear</span></code> mar atá thuas.</p>\n</dd>\n</dl>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Warning</p>\n<p>Má sháraíonn tú aon cheann de na modhanna seo, bí cinnte glaoch ar na modhanna sáraicme ós rud é go gcuireann siad na heilimintí riachtanacha le haghaidh gach formáid beatha.</p>\n</aside>\n<p>Mar shampla, b'fhéidir go dtosóidh tú gineadóir beatha iTunes RSS a chur i bhfeidhm mar seo:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">iTunesFeed</span><span class=\"p\">(</span><span class=\"n\">Rss201rev2Feed</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">root_attributes</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"n\">attrs</span> <span class=\"o\">=</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">root_attributes</span><span class=\"p\">()</span>\n        <span class=\"n\">attrs</span><span class=\"p\">[</span><span class=\"s2\">&quot;xmlns:itunes&quot;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;http://www.itunes.com/dtds/podcast-1.0.dtd&quot;</span>\n        <span class=\"k\">return</span> <span class=\"n\">attrs</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">add_root_elements</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">handler</span><span class=\"p\">):</span>\n        <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">add_root_elements</span><span class=\"p\">(</span><span class=\"n\">handler</span><span class=\"p\">)</span>\n        <span class=\"n\">handler</span><span class=\"o\">.</span><span class=\"n\">addQuickElement</span><span class=\"p\">(</span><span class=\"s2\">&quot;itunes:explicit&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;clean&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Tá a lán níos mó oibre le déanamh le haghaidh rang beatha saincheaptha iomlán, ach ba cheart go léireodh an sampla thuas an bunsmaoineamh.</p>\n</section>\n<section id=\"feed-stylesheets\">\n<span id=\"id1\"></span><h3>Feed stylesheets<a class=\"heading-anchor\" href=\"#feed-stylesheets\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>If you wish to have your RSS feed render nicely in a browser, you will need to\nprovide styling information for the XML file, typically in <a class=\"reference external\" href=\"https://developer.mozilla.org/en-US/docs/Web/XSLT/Transforming_XML_with_XSLT\">XSLT</a> or CSS\nformats.</p>\n<p>You can add this to your RSS feed by setting the <code class=\"docutils literal notranslate\"><span class=\"pre\">stylesheets</span></code> attribute on\nthe feed class.</p>\n<p>This can be a hardcoded URL:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.syndication.views</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Feed</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">FeedWithHardcodedStylesheet</span><span class=\"p\">(</span><span class=\"n\">Feed</span><span class=\"p\">):</span>\n    <span class=\"n\">stylesheets</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n        <span class=\"s2\">&quot;https://example.com/rss_stylesheet.xslt&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">]</span>\n</code></pre></div>\n<p>You can also use Django's static files system:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.syndication.views</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Feed</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.templatetags.static</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">static</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">FeedWithStaticFileStylesheet</span><span class=\"p\">(</span><span class=\"n\">Feed</span><span class=\"p\">):</span>\n    <span class=\"n\">stylesheets</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n        <span class=\"n\">static</span><span class=\"p\">(</span><span class=\"s2\">&quot;rss_styles.xslt&quot;</span><span class=\"p\">),</span>\n    <span class=\"p\">]</span>\n</code></pre></div>\n<p>Another option is to have a view in your project that renders the XSLT\ndocument. You can then link it like so:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.syndication.views</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Feed</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">reverse_lazy</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">FeedWithStylesheetView</span><span class=\"p\">(</span><span class=\"n\">Feed</span><span class=\"p\">):</span>\n    <span class=\"n\">stylesheets</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n        <span class=\"n\">reverse_lazy</span><span class=\"p\">(</span><span class=\"s2\">&quot;your-custom-view-name&quot;</span><span class=\"p\">),</span>\n    <span class=\"p\">]</span>\n</code></pre></div>\n<p>Django will normally try to guess the MIME type of the given URL based on its\nextension, but if that fails you can specify it using the\n<a class=\"reference internal\" href=\"/ga/6.1/ref/utils/#django.utils.feedgenerator.Stylesheet\" title=\"django.utils.feedgenerator.Stylesheet\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Stylesheet</span></code></a> class:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.syndication.views</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Feed</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils.feedgenerator</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Stylesheet</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">FeedWithHardcodedStylesheet</span><span class=\"p\">(</span><span class=\"n\">Feed</span><span class=\"p\">):</span>\n    <span class=\"n\">stylesheets</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n        <span class=\"n\">Stylesheet</span><span class=\"p\">(</span><span class=\"s2\">&quot;https://example.com/rss_stylesheet&quot;</span><span class=\"p\">,</span> <span class=\"n\">mimetype</span><span class=\"o\">=</span><span class=\"s2\">&quot;text/xsl&quot;</span><span class=\"p\">),</span>\n    <span class=\"p\">]</span>\n</code></pre></div>\n<p>Similarly, if you'd like to use a different <code class=\"docutils literal notranslate\"><span class=\"pre\">media</span></code> attribute than <code class=\"docutils literal notranslate\"><span class=\"pre\">screen</span></code>\n(Django's default), you can use the\n<a class=\"reference internal\" href=\"/ga/6.1/ref/utils/#django.utils.feedgenerator.Stylesheet\" title=\"django.utils.feedgenerator.Stylesheet\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Stylesheet</span></code></a> class again:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.syndication.views</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Feed</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils.feedgenerator</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Stylesheet</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">FeedWithHardcodedStylesheet</span><span class=\"p\">(</span><span class=\"n\">Feed</span><span class=\"p\">):</span>\n    <span class=\"n\">stylesheets</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n        <span class=\"n\">Stylesheet</span><span class=\"p\">(</span><span class=\"s2\">&quot;https://example.com/rss_stylesheet.xslt&quot;</span><span class=\"p\">,</span> <span class=\"n\">media</span><span class=\"o\">=</span><span class=\"s2\">&quot;print&quot;</span><span class=\"p\">),</span>\n    <span class=\"p\">]</span>\n</code></pre></div>\n<p>Any of these options can be combined when using multiple stylesheets:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.syndication.views</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Feed</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils.feedgenerator</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Stylesheet</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MultiStylesheetFeed</span><span class=\"p\">(</span><span class=\"n\">Feed</span><span class=\"p\">):</span>\n    <span class=\"n\">stylesheets</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n        <span class=\"s2\">&quot;/stylesheet1.xsl&quot;</span><span class=\"p\">,</span>\n        <span class=\"n\">Stylesheet</span><span class=\"p\">(</span><span class=\"s2\">&quot;/stylesheet2.xsl&quot;</span><span class=\"p\">),</span>\n    <span class=\"p\">]</span>\n</code></pre></div>\n</section>\n</section>","rootId":"module-django.contrib.syndication","toc":[{"title":"An creat ardleibhéil","anchor":"the-high-level-framework","children":[{"title":"Forbhreathnú","anchor":"overview","children":[]},{"title":"Ranganna Feed","anchor":"feed-classes","children":[]},{"title":"Sampla simplí","anchor":"a-simple-example","children":[]},{"title":"Sampla casta","anchor":"a-complex-example","children":[]},{"title":"An cineál beatha a shonrú","anchor":"specifying-the-type-of-feed","children":[]},{"title":"Iomláin","anchor":"enclosures","children":[]},{"title":"Teanga","anchor":"language","children":[]},{"title":"URLanna","anchor":"urls","children":[]},{"title":"Fothaí Atom agus RSS a fhoilsiú in éineacht","anchor":"publishing-atom-and-rss-feeds-in-tandem","children":[]},{"title":"Tagairt aicme Feed","anchor":"feed-class-reference","children":[]}]},{"title":"An creat ar leibhéal íseal","anchor":"the-low-level-framework","children":[{"title":"Ranganna SyndicationFeed","anchor":"syndicationfeed-classes","children":[]},{"title":"Gineadóirí beatha saincheaptha","anchor":"custom-feed-generators","children":[]},{"title":"Feed stylesheets","anchor":"feed-stylesheets","children":[]}]}],"breadcrumbs":[{"docname":"ref/index","title":"Tagairt API","url":"/ga/6.1/ref/"},{"docname":"ref/contrib/index","title":"Pacáistí contrib","url":"/ga/6.1/ref/contrib/"}],"prev":{"docname":"ref/contrib/staticfiles","title":"An aip staticfiles`","url":"/ga/6.1/ref/contrib/staticfiles/"},"next":{"docname":"ref/csp","title":"Content Security Policy","url":"/ga/6.1/ref/csp/"},"formats":{"html":"/ga/6.1/ref/contrib/syndication/","markdown":"/ga/6.1/ref/contrib/syndication.md","json":"/ga/6.1/ref/contrib/syndication.json"},"source":"https://github.com/django/django/blob/stable/6.1.x/docs/ref/contrib/syndication.txt","official":"https://docs.djangoproject.com/ga/6.1/ref/contrib/syndication/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}