{"title":"An creat “láithreáin”","version":"6.1","locale":"ga","docname":"ref/contrib/sites","url":"/ga/6.1/ref/contrib/sites/","canonical":"https://djangodocs.dev/ga/6.1/ref/contrib/sites/","summary":"Tagann Django le creat roghnach “suíomhanna”. Is crúca é chun rudaí agus feidhmiúlacht a cheangal le láithreáin ghréasáin áirithe, agus is áit shealbhaithe…","html":"<span id=\"the-sites-framework\"></span><h1>An creat “láithreáin”<a class=\"heading-anchor\" href=\"#module-django.contrib.sites\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Tagann Django le creat roghnach “suíomhanna”. Is crúca é chun rudaí agus feidhmiúlacht a cheangal le láithreáin ghréasáin áirithe, agus is áit shealbhaithe é d'ainmneacha fearainn agus ainmneacha “fhíorúla” do shuíomhanna faoi thiomáint Django.</p>\n<p>Úsáid é má chumhachtaíonn do shuiteáil Django aonair níos mó ná suíomh amháin agus ní mór duit idirdhealú a dhéanamh idir na suíomhanna sin ar bhealach éigin.</p>\n<p>Tá creat na suíomhanna bunaithe go príomha ar an tsamhail seo:</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.sites.models.Site\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-prename descclassname\">models.</span><span class=\"sig-name descname\">Site</span><a class=\"heading-anchor\" href=\"#django.contrib.sites.models.Site\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Múnla chun tréithe <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>fearainn <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a><a href=\"#id5\"><span class=\"problematic\" id=\"id6\">`</span></a>agus <a href=\"#id7\"><span class=\"problematic\" id=\"id8\">``</span></a>ainm <a href=\"#id9\"><span class=\"problematic\" id=\"id10\">``</span></a>a stóráil de láithreán gréasáin.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.sites.models.Site.domain\">\n<span class=\"sig-name descname\">domain</span><a class=\"heading-anchor\" href=\"#django.contrib.sites.models.Site.domain\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>An t-ainm fearainn láncháilithe a bhaineann leis an suíomh Gréasáin. Mar shampla, <code class=\"docutils literal notranslate\">www.example.com</code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.sites.models.Site.name\">\n<span class=\"sig-name descname\">name</span><a class=\"heading-anchor\" href=\"#django.contrib.sites.models.Site.name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ainm “fhíorúil” inléite don duine don láithreán gréasáin.</p>\n</dd></dl>\n\n</dd></dl>\n\n<p>Sonraíonn an socrú: Setting: SITE_ID ID bunachar sonraí an réad: ~django.contrib.sites.models.site a bhaineann leis an gcomhad socruithe áirithe sin. &lt;django.http.HttpRequest.get_host&gt;Má fhágtar an socrú, déanfaidh an fheidhm:func: ~django.contrib.sites.shortcuts.get_current_site iarracht an suíomh reatha a fháil trí chomparáid idir an:attr: ~django.contrib.sites.models.site.domain leis an ainm óstach ón modh:meth: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>request.get_host () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>.</p>\n<p>Is fútsa atá an chaoi a n-úsáideann tú é seo, ach úsáideann Django é ar chúpla bealach go huathoibríoch trí chúpla coinbhinsiún.</p>\n<section id=\"example-usage\">\n<h2>Úsáid samplach<a class=\"heading-anchor\" href=\"#example-usage\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Cén fáth a n-úsáideann tú suíomhanna? Is fearr é a mhíniú trí shamplaí.</p>\n<section id=\"associating-content-with-multiple-sites\">\n<h3>Ábhar a cheangal le suíomhanna iolracha<a class=\"heading-anchor\" href=\"#associating-content-with-multiple-sites\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Bhí na suíomhanna <a class=\"reference external\" href=\"https://www2.ljworld.com/\">LJworld.com</a> agus Lawrence.com á oibriú ag an eagraíocht nuachta céanna - nuachtán Lawrence Journal-World i Lawrence, Kansas. Dhírigh LJworld.com ar nuacht, agus dhírigh Lawrence.com ar siamsaíocht áitiúil. Ach uaireanta bhí eagarthóirí ag iarraidh alt a fhoilsiú ar* an bheirt suíomhanna.</p>\n<p>Ba é an bealach naif chun an fhadhb a réiteach ná a cheangal ar tháirgeoirí láithreáin an scéal céanna a fhoilsiú faoi dhó: uair amháin le haghaidh LJworld.com agus arís do Lawrence.com. Ach tá sé sin neamhéifeachtach do tháirgeoirí láithreáin, agus tá sé iomarcach cóipeanna iolracha den scéal céanna a stóráil sa bhunachar sonraí.</p>\n<p>Cuireann réiteach níos fearr deireadh leis an dúbailt ábhair: Úsáideann an dá shuíomh an bunachar sonraí alt céanna, agus tá baint ag alt le suíomh amháin nó níos mó. I dtéarmaíocht samhail Django, léirítear é sin ag a: class: ~Django.db.Models.ManyTomanyField sa tsamhail <code class=\"docutils literal notranslate\">Article</code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.contrib.sites.models</span> <span class=\"kn\">import</span> Site\n<span class=\"kn\">from</span> <span class=\"nn\">django.db</span> <span class=\"kn\">import</span> models\n\n\n<span class=\"k\">class</span> <span class=\"nc\">Article</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Model<span class=\"p\">):</span>\n    headline <span class=\"o\">=</span> models<span class=\"o\">.</span>CharField<span class=\"p\">(</span>max_length<span class=\"o\">=</span><span class=\"mi\">200</span><span class=\"p\">)</span>\n    <span class=\"c1\"># ...</span>\n    sites <span class=\"o\">=</span> models<span class=\"o\">.</span>ManyToManyField<span class=\"p\">(</span>Site<span class=\"p\">)</span>\n</code></pre></div>\n<p>Cuireann sé seo roinnt rudaí i gcrích go deas:</p>\n<ul>\n<li><p>Ligeann sé do tháirgeoirí an láithreáin gach ábhar a chur in eagar - ar an dá shuíomh - i gcomhéadan amháin (riarachán Django).</p></li>\n<li><p>Ciallaíonn sé nach gá an scéal céanna a fhoilsiú faoi dhó sa bhunachar sonraí; níl ach taifead amháin aige sa bhunachar sonraí.</p></li>\n<li><p>Ligeann sé d'fhorbróirí láithreáin an cód amharc Django céanna a úsáid don dá shuíomh. Seiceálann an cód amharc a thaispeánann scéal ar leith chun a chinntiú go bhfuil an scéal iarrtha ar an suíomh reatha. Breathnaíonn sé rud éigin mar seo:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.contrib.sites.shortcuts</span> <span class=\"kn\">import</span> get_current_site\n\n\n<span class=\"k\">def</span> <span class=\"nf\">article_detail</span><span class=\"p\">(</span>request<span class=\"p\">,</span> article_id<span class=\"p\">):</span>\n    <span class=\"k\">try</span><span class=\"p\">:</span>\n        a <span class=\"o\">=</span> Article<span class=\"o\">.</span>objects<span class=\"o\">.</span>get<span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span>article_id<span class=\"p\">,</span> sites__id<span class=\"o\">=</span>get_current_site<span class=\"p\">(</span>request<span class=\"p\">)</span><span class=\"o\">.</span>id<span class=\"p\">)</span>\n    <span class=\"k\">except</span> Article<span class=\"o\">.</span>DoesNotExist<span class=\"p\">:</span>\n        <span class=\"k\">raise</span> Http404<span class=\"p\">(</span><span class=\"s2\">&quot;Article does not exist on this site&quot;</span><span class=\"p\">)</span>\n    <span class=\"c1\"># ...</span>\n</code></pre></div>\n</li>\n</ul>\n</section>\n<section id=\"associating-content-with-a-single-site\">\n<h3>Ábhar a cheangal le suíomh amháin<a class=\"heading-anchor\" href=\"#associating-content-with-a-single-site\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Ar an gcaoi chéanna, is féidir leat samhail a cheangal leis an tsamhail:class: ~django.contrib.sites.models.site i gcaidreamh go leor le duine, ag baint úsáid:class: ~django.db.models.foreignKey.</p>\n<p>Mar shampla, mura gceadaítear alt ach ar shuíomh amháin, úsáideann tú samhail mar seo:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.contrib.sites.models</span> <span class=\"kn\">import</span> Site\n<span class=\"kn\">from</span> <span class=\"nn\">django.db</span> <span class=\"kn\">import</span> models\n\n\n<span class=\"k\">class</span> <span class=\"nc\">Article</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Model<span class=\"p\">):</span>\n    headline <span class=\"o\">=</span> models<span class=\"o\">.</span>CharField<span class=\"p\">(</span>max_length<span class=\"o\">=</span><span class=\"mi\">200</span><span class=\"p\">)</span>\n    <span class=\"c1\"># ...</span>\n    site <span class=\"o\">=</span> models<span class=\"o\">.</span>ForeignKey<span class=\"p\">(</span>Site<span class=\"p\">,</span> on_delete<span class=\"o\">=</span>models<span class=\"o\">.</span>CASCADE<span class=\"p\">)</span>\n</code></pre></div>\n<p>Tá na buntáistí céanna aige seo mar a thuairiscítear sa chuid deireanach.</p>\n</section>\n<section id=\"hooking-into-the-current-site-from-views\">\n<span id=\"hooking-into-current-site-from-views\"></span><h3>Ag dul isteach sa suíomh reatha ó thuairimí<a class=\"heading-anchor\" href=\"#hooking-into-the-current-site-from-views\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Is féidir leat creat na suíomhanna i do thuairimí Django a úsáid chun rudaí áirithe a dhéanamh bunaithe ar an suíomh ina bhfuil an radharc á ghlaoch. 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=\"nn\">django.conf</span> <span class=\"kn\">import</span> settings\n\n\n<span class=\"k\">def</span> <span class=\"nf\">my_view</span><span class=\"p\">(</span>request<span class=\"p\">):</span>\n    <span class=\"k\">if</span> settings<span class=\"o\">.</span>SITE_ID <span class=\"o\">==</span> <span class=\"mi\">3</span><span class=\"p\">:</span>\n        <span class=\"c1\"># Do something.</span>\n        <span class=\"k\">pass</span>\n    <span class=\"k\">else</span><span class=\"p\">:</span>\n        <span class=\"c1\"># Do something else.</span>\n        <span class=\"k\">pass</span>\n</code></pre></div>\n<p>It's fragile to hardcode the site IDs like that, in case they change. The\ncleaner way of accomplishing the same thing is to check the current site's\ndomain:</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=\"nn\">django.contrib.sites.shortcuts</span> <span class=\"kn\">import</span> get_current_site\n\n\n<span class=\"k\">def</span> <span class=\"nf\">my_view</span><span class=\"p\">(</span>request<span class=\"p\">):</span>\n    current_site <span class=\"o\">=</span> get_current_site<span class=\"p\">(</span>request<span class=\"p\">)</span>\n    <span class=\"k\">if</span> current_site<span class=\"o\">.</span>domain <span class=\"o\">==</span> <span class=\"s2\">&quot;foo.com&quot;</span><span class=\"p\">:</span>\n        <span class=\"c1\"># Do something</span>\n        <span class=\"k\">pass</span>\n    <span class=\"k\">else</span><span class=\"p\">:</span>\n        <span class=\"c1\"># Do something else.</span>\n        <span class=\"k\">pass</span>\n</code></pre></div>\n<p>Tá an buntáiste aige seo freisin a sheiceáil an bhfuil creat na suíomhanna suiteáilte, agus a: class: ~django.contrib.sites.requests.requestsite sampla a thabhairt ar ais mura bhfuil sé.</p>\n<p>Mura bhfuil rochtain agat ar an réad iarratais, is féidir leat an modh <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>get_current () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>de bhainisteoir an tsamhail:class: ~django.contrib.sites.models.site a úsáid. Ba cheart duit a chinntiú ansin go bhfuil an socrú: setting: SITE_ID i do chomhad socruithe. Tá an sampla seo coibhéiseach leis an gceann roimhe seo:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.contrib.sites.models</span> <span class=\"kn\">import</span> Site\n\n\n<span class=\"k\">def</span> <span class=\"nf\">my_function_without_request</span><span class=\"p\">():</span>\n    current_site <span class=\"o\">=</span> Site<span class=\"o\">.</span>objects<span class=\"o\">.</span>get_current<span class=\"p\">()</span>\n    <span class=\"k\">if</span> current_site<span class=\"o\">.</span>domain <span class=\"o\">==</span> <span class=\"s2\">&quot;foo.com&quot;</span><span class=\"p\">:</span>\n        <span class=\"c1\"># Do something</span>\n        <span class=\"k\">pass</span>\n    <span class=\"k\">else</span><span class=\"p\">:</span>\n        <span class=\"c1\"># Do something else.</span>\n        <span class=\"k\">pass</span>\n</code></pre></div>\n</section>\n<section id=\"getting-the-current-domain-for-display\">\n<h3>An fearainn reatha a fháil le taispeáint<a class=\"heading-anchor\" href=\"#getting-the-current-domain-for-display\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Tá feidhmiúlacht foláirimh ríomhphoist ag LJworld.com agus Lawrence.com araon, a ligeann do léitheoirí clárú chun fógraí a fháil nuair a tharlaíonn nuacht. Tá sé bunúsach go leor: Síníonn léitheoir suas ar fhoirm gréasáin agus faigheann sé ríomhphost láithreach ag rá, “Go raibh maith agat as do shíntiús.”</p>\n<p>Bheadh sé neamhéifeachtach agus iomarcach an cód próiseála sínithe seo a chur i bhfeidhm faoi dhó, mar sin úsáideann na suíomhanna an cód céanna taobh thiar de na radhairc. Ach caithfidh an fógra “go raibh maith agat as síniú” a bheith difriúil do gach suíomh. Trí rudaí:class: ~django.contrib.sites.models.site a úsáid, is féidir linn an fógra “go raibh maith agat” a thiomsú chun luachanna an láithreáin reatha a úsáid: attr: ~django.contrib.sites.models.site.name agus:attr: ~django.contrib.sites.models.site.domain.</p>\n<p>Seo sampla den chuma atá ar an radharc láimhseála foirme:</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=\"nn\">django.contrib.sites.shortcuts</span> <span class=\"kn\">import</span> get_current_site\n<span class=\"kn\">from</span> <span class=\"nn\">django.core.mail</span> <span class=\"kn\">import</span> send_mail\n\n\n<span class=\"k\">def</span> <span class=\"nf\">register_for_newsletter</span><span class=\"p\">(</span>request<span class=\"p\">):</span>\n    <span class=\"c1\"># Check form values, etc., and subscribe the user.</span>\n    <span class=\"c1\"># ...</span>\n\n    current_site <span class=\"o\">=</span> get_current_site<span class=\"p\">(</span>request<span class=\"p\">)</span>\n    send_mail<span class=\"p\">(</span>\n        <span class=\"s2\">&quot;Thanks for subscribing to </span><span class=\"si\">%s</span><span class=\"s2\"> alerts&quot;</span> <span class=\"o\">%</span> current_site<span class=\"o\">.</span>name<span class=\"p\">,</span>\n        <span class=\"s2\">&quot;Thanks for your subscription. We appreciate it.</span><span class=\"se\">\\n\\n</span><span class=\"s2\">-The </span><span class=\"si\">%s</span><span class=\"s2\"> team.&quot;</span>\n        <span class=\"o\">%</span> <span class=\"p\">(</span>current_site<span class=\"o\">.</span>name<span class=\"p\">,),</span>\n        <span class=\"s2\">&quot;editor@</span><span class=\"si\">%s</span><span class=\"s2\">&quot;</span> <span class=\"o\">%</span> current_site<span class=\"o\">.</span>domain<span class=\"p\">,</span>\n        <span class=\"p\">[</span>user<span class=\"o\">.</span>email<span class=\"p\">],</span>\n    <span class=\"p\">)</span>\n\n    <span class=\"c1\"># ...</span>\n</code></pre></div>\n<p>Ar Lawrence.com, tá an líne ábhair ag an ríomhphost seo “Go raibh maith agat as liostáil le foláirimh lawrence.com.” Ar LJworld.com, tá an t-ábhar ag an ríomhphost “Go raibh maith agat as liostáil le foláirimh LJworld.com.” Téann an rud céanna le comhlacht teachtaireachta an ríomhphoist.</p>\n<p>Tabhair faoi deara gur bealach níos solúbtha fós (ach níos troma) chun é seo a dhéanamh ná córas teimpléad Django a úsáid. Ag glacadh leis go bhfuil eolairí teimpléad éagsúla ag Lawrence.com agus LJworld.com (:setting: DIRS &lt;TEMPLATES-DIRS&gt;), d'fhéadfá feirm a dhéanamh amach chuig an gcóras teimpléid mar sin:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.core.mail</span> <span class=\"kn\">import</span> send_mail\n<span class=\"kn\">from</span> <span class=\"nn\">django.template</span> <span class=\"kn\">import</span> loader\n\n\n<span class=\"k\">def</span> <span class=\"nf\">register_for_newsletter</span><span class=\"p\">(</span>request<span class=\"p\">):</span>\n    <span class=\"c1\"># Check form values, etc., and subscribe the user.</span>\n    <span class=\"c1\"># ...</span>\n\n    subject <span class=\"o\">=</span> loader<span class=\"o\">.</span>get_template<span class=\"p\">(</span><span class=\"s2\">&quot;alerts/subject.txt&quot;</span><span class=\"p\">)</span><span class=\"o\">.</span>render<span class=\"p\">({})</span>\n    message <span class=\"o\">=</span> loader<span class=\"o\">.</span>get_template<span class=\"p\">(</span><span class=\"s2\">&quot;alerts/message.txt&quot;</span><span class=\"p\">)</span><span class=\"o\">.</span>render<span class=\"p\">({})</span>\n    send_mail<span class=\"p\">(</span>subject<span class=\"p\">,</span> message<span class=\"p\">,</span> <span class=\"s2\">&quot;editor@ljworld.com&quot;</span><span class=\"p\">,</span> <span class=\"p\">[</span>user<span class=\"o\">.</span>email<span class=\"p\">])</span>\n\n    <span class=\"c1\"># ...</span>\n</code></pre></div>\n<p>Sa chás seo, bheadh ort comhaid teimpléad:file: subject.txt agus:file: message.txt a chruthú d'eolairí teimpléad LJworld.com agus Lawrence.com araon. Tugann sé sin níos mó solúbthachta duit, ach tá sé níos casta freisin.</p>\n<p>Is smaoineamh maith é leas a bhaint as na rudaí:class: ~django.contrib.sites.models.site a oiread agus is féidir, chun castacht agus iomarcaíocht neamhriachtanach a bhaint.</p>\n</section>\n<section id=\"getting-the-current-domain-for-full-urls\">\n<h3>An fearainn reatha a fháil le haghaidh URLanna iomlána<a class=\"heading-anchor\" href=\"#getting-the-current-domain-for-full-urls\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Tá coinbhinsiún <code class=\"docutils literal notranslate\">get_absolute_url () ``Django go deas chun URL d'earraí a fháil gan an t-ainm fearainn, ach i gcásanna áirithe b'fhéidir gur mhaith leat an URL iomlán a thaispeáint - le ``https: //</code> agus an fearainn agus gach rud - do réad. Chun seo a dhéanamh, is féidir leat creat na láithreáin a úsáid. Sampla:</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=\"nn\">django.contrib.sites.models</span> <span class=\"kn\">import</span> Site\n<span class=\"gp\">&gt;&gt;&gt; </span>obj <span class=\"o\">=</span> MyModel<span class=\"o\">.</span>objects<span class=\"o\">.</span>get<span class=\"p\">(</span><span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"mi\">3</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>obj<span class=\"o\">.</span>get_absolute_url<span class=\"p\">()</span>\n<span class=\"go\">&#39;/mymodel/objects/3/&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>Site<span class=\"o\">.</span>objects<span class=\"o\">.</span>get_current<span class=\"p\">()</span><span class=\"o\">.</span>domain\n<span class=\"go\">&#39;example.com&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"s2\">&quot;https://</span><span class=\"si\">%s%s</span><span class=\"s2\">&quot;</span> <span class=\"o\">%</span> <span class=\"p\">(</span>Site<span class=\"o\">.</span>objects<span class=\"o\">.</span>get_current<span class=\"p\">()</span><span class=\"o\">.</span>domain<span class=\"p\">,</span> obj<span class=\"o\">.</span>get_absolute_url<span class=\"p\">())</span>\n<span class=\"go\">&#39;https://example.com/mymodel/objects/3/&#39;</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"enabling-the-sites-framework\">\n<span id=\"id1\"></span><h2>Creat na láithreáin a chumasú<a class=\"heading-anchor\" href=\"#enabling-the-sites-framework\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Chun creat na láithreáin a chumasú, lean na céimeanna seo:</p>\n<ol class=\"arabic\">\n<li><p>Cuir <code class=\"docutils literal notranslate\">django.contrib.sites'</code> le do shocrú: INSTALLED_APPS.</p></li>\n<li><p>Sainmhínigh a: socrú: SITE_ID socrú:</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>SITE_ID <span class=\"o\">=</span> <span class=\"mi\">1</span>\n</code></pre></div>\n</li>\n<li><p>Rith: DjaDmin: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>imirce <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>.</p></li>\n</ol>\n<p><code class=\"docutils literal notranslate\">django.contrib.sites</code> cláraíonn a:data: ~django.db.models.signals.post_migrate láimhseálaí comhartha a chruthaíonn suíomh réamhshocraithe darb ainm <code class=\"docutils literal notranslate\">example.com</code> leis an bhfearann <code class=\"docutils literal notranslate\">example.com</code>. Cruthófar an suíomh seo freisin tar éis Django an bunachar sonraí tástála a chruthú. &lt;data-migrations&gt;Chun an t-ainm agus an fearainn ceart a shocrú do do thionscadal, is féidir leat a:ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>imirce sonraí <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>a úsáid.</p>\n<p>D'fhonn freastal ar shuíomhanna éagsúla i dtáirgeadh, chruthófá comhad socruithe ar leithligh le gach <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>SITE_ID` (b'fhéidir allmhairiú ó chomhad socruithe coiteann chun socruithe roinnte a dhúbailt) agus ansin sonraigh an oiriúna:envvar: DJANGO_SETTINGS_MODULE do gach suíomh.</p>\n</section>\n<section id=\"caching-the-current-site-object\">\n<h2>An réad reatha <code class=\"docutils literal notranslate\">`Láithreach</code> a chaitheamh a chaitheamh<a class=\"heading-anchor\" href=\"#caching-the-current-site-object\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>De réir mar a stóráiltear an suíomh reatha sa bhunachar sonraí, d'fhéadfadh ceist bunachar sonraí a bheith mar thoradh ar gach glao chuig <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>site.objects.get_current () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>. Ach tá Django beagán níos cliste ná sin: ar an gcéad iarratas, cuirtear an suíomh reatha a chosc, agus filleann aon ghlao ina dhiaidh sin na sonraí taiscéadaithe in ionad an bunachar sonraí a bhualadh.</p>\n<p>Más mian leat ceist bunachar sonraí a chur i bhfeidhm ar chúis ar bith, is féidir leat a rá le Django an taisce a ghlanadh ag baint úsáide as Site.Objects.clear_cache () `:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"c1\"># First call; current site fetched from database.</span>\ncurrent_site <span class=\"o\">=</span> Site<span class=\"o\">.</span>objects<span class=\"o\">.</span>get_current<span class=\"p\">()</span>\n<span class=\"c1\"># ...</span>\n\n<span class=\"c1\"># Second call; current site fetched from cache.</span>\ncurrent_site <span class=\"o\">=</span> Site<span class=\"o\">.</span>objects<span class=\"o\">.</span>get_current<span class=\"p\">()</span>\n<span class=\"c1\"># ...</span>\n\n<span class=\"c1\"># Force a database query for the third call.</span>\nSite<span class=\"o\">.</span>objects<span class=\"o\">.</span>clear_cache<span class=\"p\">()</span>\ncurrent_site <span class=\"o\">=</span> Site<span class=\"o\">.</span>objects<span class=\"o\">.</span>get_current<span class=\"p\">()</span>\n</code></pre></div>\n</section>\n<section id=\"the-currentsitemanager\">\n<h2>An <code class=\"docutils literal notranslate\">Currentsitemanager</code><a class=\"heading-anchor\" href=\"#the-currentsitemanager\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.sites.managers.CurrentSiteManager\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-prename descclassname\">managers.</span><span class=\"sig-name descname\">CurrentSiteManager</span><a class=\"heading-anchor\" href=\"#django.contrib.sites.managers.CurrentSiteManager\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Má tá ról lárnach ag: Class: ~django.contrib.sites.models.site i d'iarratas, smaoinigh ar an gcabhrach: class: ~django.contrib.sites.managers.currentsiteManager a úsáid i do mhúnla (í). Is samhail é: doc: bainisteor a scagann a cheisteanna go huathoibríoch chun &lt;/topics/db/managers&gt; rudaí a bhaineann leis an reatha: class: ~django.contrib.sites.models.site a áireamh.</p>\n<aside class=\"admonition-mandatory-setting-site-id admonition\" role=\"note\">\n<p class=\"admonition-title\">Riachtanas: Socrú: SITE_ID</p>\n<p>Ní féidir an CurrentSiteManager` inúsáidte ach nuair a shainmhínítear an socrúit:setting: SITE_ID i do shocruithe.</p>\n</aside>\n<p>Úsáid:Class: ~django.contrib.sites.managers.currentSiteManager tríd é a chur le do mhúnla go sainráite. Mar shampla:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.contrib.sites.models</span> <span class=\"kn\">import</span> Site\n<span class=\"kn\">from</span> <span class=\"nn\">django.contrib.sites.managers</span> <span class=\"kn\">import</span> CurrentSiteManager\n<span class=\"kn\">from</span> <span class=\"nn\">django.db</span> <span class=\"kn\">import</span> models\n\n\n<span class=\"k\">class</span> <span class=\"nc\">Photo</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Model<span class=\"p\">):</span>\n    photo <span class=\"o\">=</span> models<span class=\"o\">.</span>FileField<span class=\"p\">(</span>upload_to<span class=\"o\">=</span><span class=\"s2\">&quot;photos&quot;</span><span class=\"p\">)</span>\n    photographer_name <span class=\"o\">=</span> models<span class=\"o\">.</span>CharField<span class=\"p\">(</span>max_length<span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n    pub_date <span class=\"o\">=</span> models<span class=\"o\">.</span>DateField<span class=\"p\">()</span>\n    site <span class=\"o\">=</span> models<span class=\"o\">.</span>ForeignKey<span class=\"p\">(</span>Site<span class=\"p\">,</span> on_delete<span class=\"o\">=</span>models<span class=\"o\">.</span>CASCADE<span class=\"p\">)</span>\n    objects <span class=\"o\">=</span> models<span class=\"o\">.</span>Manager<span class=\"p\">()</span>\n    on_site <span class=\"o\">=</span> CurrentSiteManager<span class=\"p\">()</span>\n</code></pre></div>\n<p>Leis an tsamhail seo, cuirfidh Photo.Objects.all () ``gach rud ``Photo` ar ais sa bhunachar sonraí, ach ní thabharfaidh <code class=\"docutils literal notranslate\">Photo.on_site.all () ``ach na rudaí ``Photo</code> a bhaineann leis an suíomh reatha ar ais, de réir an socruithe: SITE_ID.</p>\n<p>Cuir bealach eile, tá an dá ráiteas seo coibhéiseach:</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>Photo<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>site<span class=\"o\">=</span>settings<span class=\"o\">.</span>SITE_ID<span class=\"p\">)</span>\nPhoto<span class=\"o\">.</span>on_site<span class=\"o\">.</span>all<span class=\"p\">()</span>\n</code></pre></div>\n<p>How did <a class=\"reference internal\" href=\"#django.contrib.sites.managers.CurrentSiteManager\" title=\"django.contrib.sites.managers.CurrentSiteManager\"><code class=\"xref py py-class docutils literal notranslate\">CurrentSiteManager</code></a>\nknow which field of <code class=\"docutils literal notranslate\">Photo</code> was the\n<a class=\"reference internal\" href=\"#django.contrib.sites.models.Site\" title=\"django.contrib.sites.models.Site\"><code class=\"xref py py-class docutils literal notranslate\">Site</code></a>? By default,\n<a class=\"reference internal\" href=\"#django.contrib.sites.managers.CurrentSiteManager\" title=\"django.contrib.sites.managers.CurrentSiteManager\"><code class=\"xref py py-class docutils literal notranslate\">CurrentSiteManager</code></a> looks for\neither a <a class=\"reference internal\" href=\"/ga/6.1/ref/models/fields/#django.db.models.ForeignKey\" title=\"django.db.models.ForeignKey\"><code class=\"xref py py-class docutils literal notranslate\">ForeignKey</code></a> called\n<code class=\"docutils literal notranslate\">site</code> or a\n<a class=\"reference internal\" href=\"/ga/6.1/ref/models/fields/#django.db.models.ManyToManyField\" title=\"django.db.models.ManyToManyField\"><code class=\"xref py py-class docutils literal notranslate\">ManyToManyField</code></a> called\n<code class=\"docutils literal notranslate\">sites</code> to filter on. If you use a field named something other than\n<code class=\"docutils literal notranslate\">site</code> or <code class=\"docutils literal notranslate\">sites</code> to identify which\n<a class=\"reference internal\" href=\"#django.contrib.sites.models.Site\" title=\"django.contrib.sites.models.Site\"><code class=\"xref py py-class docutils literal notranslate\">Site</code></a> objects your object is\nrelated to, then you need to explicitly pass the custom field name as\na parameter to\n<a class=\"reference internal\" href=\"#django.contrib.sites.managers.CurrentSiteManager\" title=\"django.contrib.sites.managers.CurrentSiteManager\"><code class=\"xref py py-class docutils literal notranslate\">CurrentSiteManager</code></a> on your\nmodel. The following model, which has a field called <code class=\"docutils literal notranslate\">publish_on</code>,\ndemonstrates this:</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=\"nn\">django.contrib.sites.models</span> <span class=\"kn\">import</span> Site\n<span class=\"kn\">from</span> <span class=\"nn\">django.contrib.sites.managers</span> <span class=\"kn\">import</span> CurrentSiteManager\n<span class=\"kn\">from</span> <span class=\"nn\">django.db</span> <span class=\"kn\">import</span> models\n\n\n<span class=\"k\">class</span> <span class=\"nc\">Photo</span><span class=\"p\">(</span>models<span class=\"o\">.</span>Model<span class=\"p\">):</span>\n    photo <span class=\"o\">=</span> models<span class=\"o\">.</span>FileField<span class=\"p\">(</span>upload_to<span class=\"o\">=</span><span class=\"s2\">&quot;photos&quot;</span><span class=\"p\">)</span>\n    photographer_name <span class=\"o\">=</span> models<span class=\"o\">.</span>CharField<span class=\"p\">(</span>max_length<span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n    pub_date <span class=\"o\">=</span> models<span class=\"o\">.</span>DateField<span class=\"p\">()</span>\n    publish_on <span class=\"o\">=</span> models<span class=\"o\">.</span>ForeignKey<span class=\"p\">(</span>Site<span class=\"p\">,</span> on_delete<span class=\"o\">=</span>models<span class=\"o\">.</span>CASCADE<span class=\"p\">)</span>\n    objects <span class=\"o\">=</span> models<span class=\"o\">.</span>Manager<span class=\"p\">()</span>\n    on_site <span class=\"o\">=</span> CurrentSiteManager<span class=\"p\">(</span><span class=\"s2\">&quot;publish_on&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Má dhéanann tú iarracht a úsáid:class: ~django.contrib.sites.managers.currentSiteManager agus ainm réimse nach bhfuil ann a chur ar aghaidh, ardóidh Django <code class=\"docutils literal notranslate\">ValueError</code>.</p>\n<p>Mar fhocal scoir, tabhair faoi deara gur dócha go mbeidh tú ag iarraidh “Bainisteoir” gnáth (neamh-shonrach don láithreán) a choinneáil ar do mhúnla, fiú má úsáideann tú: class: ~django.contrib.sites.Managers.CurrentSiteManager. Mar a mhínítear in:doc: doiciméadú bainisteora”, má shain&lt;/topics/db/managers&gt; mhíníonn tú bainisteoir de láimh, ansin ní chruthóidh Django an bainisteoir uathoibríoch ``objects = Models.manager () duit. Tabhair faoi deara freisin go n-úsáideann codanna áirithe de Django - eadhon, suíomh riaracháin Django agus tuairimí cineálacha - cibé bainisteoir a shainmhínítear <em>chéad</em> sa tsamhail, mar sin más mian leat go mbeadh rochtain ag do shuíomh riaracháin ar gach rud (ní amháin cinn suíomh-shonrach), cuir <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>objects = Models.manager () i do mhúnla, sula sainmhíníonn tú: `~django.contrib.current.sites.managers.tSiteManager.</p>\n</section>\n<section id=\"site-middleware\">\n<span id=\"id2\"></span><h2>Láithreán Middleware<a class=\"heading-anchor\" href=\"#site-middleware\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Má úsáideann tú an patrún seo go minic:</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=\"nn\">django.contrib.sites.models</span> <span class=\"kn\">import</span> Site\n\n\n<span class=\"k\">def</span> <span class=\"nf\">my_view</span><span class=\"p\">(</span>request<span class=\"p\">):</span>\n    site <span class=\"o\">=</span> Site<span class=\"o\">.</span>objects<span class=\"o\">.</span>get_current<span class=\"p\">()</span>\n    <span class=\"o\">...</span>\n</code></pre></div>\n<p>Chun athrá a sheachaint, cuir: class: django.contrib.sites.middleware.currentsiteMiddleware chuig:setting: MIDDLEWARE. Socraíonn an middleware an tréith <code class=\"docutils literal notranslate\">suite</code> ar gach réad iarratais, ionas gur féidir leat <code class=\"docutils literal notranslate\">request.site</code> a úsáid chun an suíomh reatha a fháil.</p>\n</section>\n<section id=\"how-django-uses-the-sites-framework\">\n<h2>Conas a úsáideann Django creat na suíomhanna<a class=\"heading-anchor\" href=\"#how-django-uses-the-sites-framework\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Cé nach bhfuil sé ag teastáil go n-úsáideann tú creat na suíomhanna, spreagtar go láidir é, toisc go mbaineann Django leas as i gcúpla áit. Fiú mura bhfuil do shuiteáil Django ag cumhachtú ach suíomh amháin, ba cheart duit an dá soicind a thógáil chun réad an láithreáin a chruthú le do <code class=\"docutils literal notranslate\">fearainn</code> agus ainm `, agus díriú ar a ID i do shuíomh: SITE_ID.</p>\n<p>Seo mar a úsáideann Django creat na suíomhanna:</p>\n<ul class=\"simple\">\n<li><p>Sa chreat: mod: atreoruithe &lt;django.contrib.redirects&gt;, tá baint ag gach réad atreoraithe le suíomh áirithe. Nuair a chuardaíonn Django atreorú, cuireann sé an suíomh reatha san áireamh.</p></li>\n<li><p>Sa chreat: mod: flatpages &lt;django.contrib.flatpages&gt;, tá baint ag gach leathanach cothrom le suíomh áirithe. Nuair a chruthaítear leathanach cothrom, sonraíonn tú ai:class: ~django.contrib.sites.models.site, agus seiceálann seiceál:class: ~django.contrib.flatpages.middleware.flatpageFallBackmiddleware an suíomh reatha chun leathanaigh réidh a aisghabháil le taispeáint.</p></li>\n<li><p>Sa chreat sindiciúcháin: mod:&lt;django.contrib.syndication&gt;, tá rochtain go huathoibríoch ag na teimpléid le haghaidh <code class=\"docutils literal notranslate\">title</code> agus <code class=\"docutils literal notranslate\">description</code> ar athróg <code class=\"docutils literal notranslate\">{{site}}</code>, arb é an:class: ~django.contrib.sites.models.site réad a léiríonn an láithreán reatha. Chomh maith leis sin, úsáidfidh an crúca chun URLanna míreanna a sholáthar an réad <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>fearainn <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>ón réad reatha:class: ~django.contrib.sites.models.site mura sonraíonn tú fearann láncháilithe.</p></li>\n<li><p>Sa chreat:mod: fíordheimhniúcháin &lt;django.contrib.auth&gt;, :class: django.contrib.auth.views.loginView téann an t-ainm reatha:class: ~django.contrib.sites.models.site chuig an teimpléad mar <code class=\"docutils literal notranslate\">{{site_name}}</code>.</p></li>\n<li><p>Úsáideann an dearcadh aicearra (<code class=\"docutils literal notranslate\">django.contrib.contenttypes.views.shortcut</code>) réad reatha: class: ~django.contrib.sites.models.site agus URL réada á ríomh.</p></li>\n<li><p>Sa chreat riaracháin, úsáideann an nasc “amharc ar an láithreán” an reatha:class: ~django.contrib.sites.models.site chun an fearainn don láithreán a atreoróidh sé chuig a oibriú amach.</p></li>\n</ul>\n</section>\n<section id=\"requestsite-objects\">\n<h2><code class=\"docutils literal notranslate\">Iarrata</code> rudaí<a class=\"heading-anchor\" href=\"#requestsite-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p id=\"id3\">Baineann roinnt: doc: feidhmchláir django.contrib &lt;/ref/contrib/index&gt; leas as creat na láithreáin ach déantar iad a ailtiriú ar bhealach nach gá uir* creat na suíomhanna atá le suiteáil i do bhunachar sonraí. (Níl daoine áirithe ag iarraidh, nó níl* in* an tábla bunachar sonraí breise a éilíonn creat na láithreáin a shuiteáil.) Maidir leis na cásanna sin, soláthraíonn an creat aicme a:class: django.contrib.sites.requests.requestsite, ar féidir é a úsáid mar fhilleadh nuair nach bhfuil creat na suíomhanna tacaíochta le bunachar sonraí ar fáil.</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.sites.requests.RequestSite\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-prename descclassname\">requests.</span><span class=\"sig-name descname\">RequestSite</span><a class=\"heading-anchor\" href=\"#django.contrib.sites.requests.RequestSite\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Aicme a roinneann an príomh-chomhéadan de:class: ~django.contrib.sites.models.site (ie, tá tréithe <code class=\"docutils literal notranslate\">domain</code> agus <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>ainm <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>aige) ach a fhaigheann a chuid sonraí ó réad django:class: ~django.http.httpRequest seachas ó bhunachar sonraí.</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.sites.requests.RequestSite.__init__\">\n<span class=\"sig-name descname\">__init__</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">request</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.sites.requests.RequestSite.__init__\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Socraíonn na tréithe <code class=\"docutils literal notranslate\">`ainm ``agus `domain</code> don luach de:meth: ~django.http.httpRequest.get_host.</p>\n</dd></dl>\n\n</dd></dl>\n\n<p>A <a class=\"reference internal\" href=\"#django.contrib.sites.requests.RequestSite\" title=\"django.contrib.sites.requests.RequestSite\"><code class=\"xref py py-class docutils literal notranslate\">RequestSite</code></a> object has a similar\ninterface to a normal <a class=\"reference internal\" href=\"#django.contrib.sites.models.Site\" title=\"django.contrib.sites.models.Site\"><code class=\"xref py py-class docutils literal notranslate\">Site</code></a> object,\nexcept its <a class=\"reference internal\" href=\"#django.contrib.sites.requests.RequestSite.__init__\" title=\"django.contrib.sites.requests.RequestSite.__init__\"><code class=\"xref py py-meth docutils literal notranslate\">__init__()</code></a>\nmethod takes an <a class=\"reference internal\" href=\"/ga/6.1/ref/request-response/#django.http.HttpRequest\" title=\"django.http.HttpRequest\"><code class=\"xref py py-class docutils literal notranslate\">HttpRequest</code></a> object. It's able to deduce\nthe <code class=\"docutils literal notranslate\">domain</code> and <code class=\"docutils literal notranslate\">name</code> by looking at the request's domain. It has\n<code class=\"docutils literal notranslate\">save()</code> and <code class=\"docutils literal notranslate\">delete()</code> methods to match the interface of\n<a class=\"reference internal\" href=\"#django.contrib.sites.models.Site\" title=\"django.contrib.sites.models.Site\"><code class=\"xref py py-class docutils literal notranslate\">Site</code></a>, but the methods raise\n<a class=\"reference external\" href=\"https://docs.python.org/3/library/exceptions.html#NotImplementedError\" title=\"(in Python v3.14)\"><code class=\"xref py py-exc docutils literal notranslate\">NotImplementedError</code></a>.</p>\n</section>\n<section id=\"get-current-site-shortcut\">\n<h2>Aicearra <code class=\"docutils literal notranslate\">get_current_site</code><a class=\"heading-anchor\" href=\"#get-current-site-shortcut\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Faoi dheireadh, chun cód titim athchleachtach a sheachaint, soláthraíonn an creat feidhm a:func: django.contrib.sites.shortcuts.get_current_site.</p>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.sites.shortcuts.get_current_site\">\n<span class=\"sig-prename descclassname\">shortcuts.</span><span class=\"sig-name descname\">get_current_site</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">request</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.sites.shortcuts.get_current_site\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Feidhm a sheiceálann an bhfuil <code class=\"docutils literal notranslate\">django.contrib.sites</code> suiteáilte agus a thugann an rud reatha: class: ~django.contrib.sites.models.site nó a:class: ~django.contrib.sites.requestsite réad reatha bunaithe ar an iarratas. Breathnaíonn sé suas ar an suíomh reatha bunaithe ar:meth: request.get_host () &lt;django.http.HttpRequest.get_host&gt;`mura sainmhínítear an socrú:setting: `SITE_ID.</p>\n<p>Féadfaidh fearann agus calafort araon a chur ar ais ag: meth: request.get_host () &lt;django.http.HttpRequest.get_host&gt;`nuair a bhíonn calafort sonraithe go sainráite ag an gceannteideal Óstach, m.sh. ``example.com:80`. I gcásanna den sórt sin, má theipeann ar an cuardach toisc nach n-oireann an t-óstach taifead sa bhunachar sonraí, déantar an calafort a dhíriú agus déantar an cuardach a athbhreithniú leis an gcuid fearainn amháin. Ní bhaineann sé seo le:class: ~django.contrib.sites.requests.requestsite a úsáidfidh an t-óstach neamh-mhodhnaithe i gcónaí.</p>\n</dd></dl>\n\n</section>","rootId":"module-django.contrib.sites","toc":[{"title":"Úsáid samplach","anchor":"example-usage","children":[{"title":"Ábhar a cheangal le suíomhanna iolracha","anchor":"associating-content-with-multiple-sites","children":[]},{"title":"Ábhar a cheangal le suíomh amháin","anchor":"associating-content-with-a-single-site","children":[]},{"title":"Ag dul isteach sa suíomh reatha ó thuairimí","anchor":"hooking-into-the-current-site-from-views","children":[]},{"title":"An fearainn reatha a fháil le taispeáint","anchor":"getting-the-current-domain-for-display","children":[]},{"title":"An fearainn reatha a fháil le haghaidh URLanna iomlána","anchor":"getting-the-current-domain-for-full-urls","children":[]}]},{"title":"Creat na láithreáin a chumasú","anchor":"enabling-the-sites-framework","children":[]},{"title":"An réad reatha `Láithreach a chaitheamh a chaitheamh","anchor":"caching-the-current-site-object","children":[]},{"title":"An Currentsitemanager","anchor":"the-currentsitemanager","children":[]},{"title":"Láithreán Middleware","anchor":"site-middleware","children":[]},{"title":"Conas a úsáideann Django creat na suíomhanna","anchor":"how-django-uses-the-sites-framework","children":[]},{"title":"Iarrata rudaí","anchor":"requestsite-objects","children":[]},{"title":"Aicearra get_current_site","anchor":"get-current-site-shortcut","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/sitemaps","title":"Creat an léarscáileáin","url":"/ga/6.1/ref/contrib/sitemaps/"},"next":{"docname":"ref/contrib/staticfiles","title":"An aip staticfiles`","url":"/ga/6.1/ref/contrib/staticfiles/"},"formats":{"html":"/ga/6.1/ref/contrib/sites/","markdown":"/ga/6.1/ref/contrib/sites.md","json":"/ga/6.1/ref/contrib/sites.json"},"source":"https://github.com/django/django/blob/stable/6.1.x/docs/ref/contrib/sites.txt","official":"https://docs.djangoproject.com/ga/6.1/ref/contrib/sites/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}