---
title: "Creat an léarscáileáin"
version: 6.1
locale: ga
source: https://docs.djangoproject.com/ga/6.1/ref/contrib/sitemaps/
canonical: https://djangodocs.dev/ga/6.1/ref/contrib/sitemaps/
---
# Creat an léarscáileáin

Tagann Django le creat giniúna láithreáin ardleibhéil chun comhaid [sitemap](https://www.sitemaps.org/) XML a chruthú.

## Forbhreathnú

Is comhad XML é léarscáil an láithreán gréasáin ar do shuíomh Gréasáin a insíonn innéacsóirí inneall cuardaigh cé chomh minic a athraíonn do leathanaigh agus cé chomh tábhachtach agus atá leathanaigh áirithe maidir le leathanaigh eile ar do shuíomh. Cuidíonn an fhaisnéis seo le hinnill chuardaigh do láithreán a

Déanann creat láithreán gréasáin Django cruthú an chomhad XML seo a uathoibriú trí ligean duit an fhaisnéis seo a chur in iúl i gcód Python.

Oibríonn sé cosúil le Django: doc: creat sindication \</ref/contrib/syndication\>. Chun léarscáil an léarscáileáin a chruthú, scríobh a:class: ~django.contrib.sitemaps.siteMap rang agus dírigh air i d:doc: URLCon\</topics/http/urls\> f.

## Suiteáil

Chun an aip léarscáileáin a shuiteáil, lean na céimeanna seo:

1. Cuir `django.contrib.sitemaps'` le do shocrú: INSTALLED\_APPS.
2. Déan cinnte go bhfuil cúltaca `DjangoTemplates` ag do shuíomh: setting: TEMPLATES a bhfuil a roghanna `APP_DIRS` socraithe go `True`. Tá sé ann de réir réamhshocraithe, mar sin ní bheidh ort é seo a athrú ach má tá an socrú sin athraithe agat.
3. \<django.contrib.sites\>Déan cinnte go bhfuil creat:mod: sites suiteáilte agat.

(Nóta: Ní shuiteálann an feidhmchlár léarscáileáin aon táblaí bunachar sonraí. Is é an t-aon chúis a chaithfidh sé dul chuig: setting: INSTALLED\_APPS ionas gur féidir leis an lódóir teimpléad:func: ~django.template.loaders.app\_directories.loader na teimpléid réamhshocraithe a aimsiú.)

## Tionscnamh

#### `views.sitemap(request, sitemaps, section=None, template_name='sitemap.xml', content_type='application/xml')`

Chun giniúint léarscáileán gréasáin a ghníomhachtú ar do shuíomh Django, cuir an líne seo le duit:doc: URLConf:: \</topics/http/urls\>

```
from django.contrib.sitemaps.views import sitemap

path(
    "sitemap.xml",
    sitemap,
    {"sitemaps": sitemaps},
    name="django.contrib.sitemaps.views.sitemap",
)
```

Insíonn sé seo le Django léarscáil an léarscáileáin a thógáil nuair a fhaigheann cliant rochtain aith:file: /sitemap.xml.

Níl ainm an chomhaid léarscáileáin tábhachtach, ach tá an suíomh. Ní innéacfaidh innill chuardaigh ach naisc i do léarscáil gréasáin don leibhéal reatha URL agus thíos. Mar shampla, má tá: file: sitemap.xml ina gcónaí i d'eolaire fréimhe, féadfaidh sé tagairt a dhéanamh ar aon URL ar do shuíomh. Mar sin féin, má tá do léarscáil an léarscáileáin ina g:file: /content/sitemap.xml, ní fhéadfaidh sé tagairt a dhéanamh ach URLanna a thosaíonn la:file: /content/.

Tógann an dearcadh léarscáileáin argóint breise riachtanach: `{'sitemaps': sitemaps}`. Ba chóir go mbeadh ```sitemaps ``ina fhoclóir a mhapálann lipéad gearrchuid (m.sh., ``blog``` nó `nuacht`) chuig a aicme:class: ~django.contrib.sitemaps.sitemap (m.sh., `BlogSitemap` nó `NewsSitemap`). Féadfaidh sé léarscáil freisin chuig ranga\*teacht\* de a:class: ~django.contrib.sitemaps.sitemap (m.sh., BlogSitemap (some\_var) ).

## Ranganna `Sitemap`

A: Class: “~django.contrib.SiteMaps.SiteMap\` aicme Python é rang a léiríonn “cuid” d'iontrálacha i do léarscáil an léarscáileáin. Mar shampla, d'fhéadfadh rang amháin: class: ~django.contrib.sitemaps.sitemap iontrálacha uile do bhlag a léiriú, agus d'fhéadfadh ceann eile léiriú a dhéanamh ar na himeachtaí go léir i d'fhéilire imeachtaí.

Sa chás is simplí, cuirtear na codanna seo go léir le chéile i gceann amháin: file: sitemap.xml, ach is féidir an creat a úsáid freisin chun innéacs léarscáil an léarscáileáin a ghiniúint a thagann tagairt do chomhaid léarscáileáin aonair, ceann in aghaidh an roinn. (Féach Innéacs léarscáileáin a chruthú \_ thíos.)

[`Sitemap`](#django.contrib.sitemaps.Sitemap) classes must subclass
`django.contrib.sitemaps.Sitemap`. They can live anywhere in your codebase.

## Sampla

Glacaimis leis go bhfuil córas blag agat, le samhail Iontrála\`, agus ba mhaith leat go n-áireofaí do léarscáil an léir le d'iontrálacha blag aonair. Seo mar a d'fhéadfadh cuma ar do rang léarscáileán gréasáin:

```
from django.contrib.sitemaps import Sitemap
from blog.models import Entry

class BlogSitemap(Sitemap):
    changefreq = "never"
    priority = 0.5

    def items(self):
        return Entry.objects.filter(is_draft=False)

    def lastmod(self, obj):
        return obj.pub_date
```

Nóta:

- \<changefreq\>\<priority\>:attr: ~SiteMap.ChangeFreq agus:attr: ~SiteMap.Priority tréithe aicme iad a fhreagraíonn d'eilimintí \`\` agus , faoi seach. Is féidir iad a dhéanamh inghlaoch mar fheidhmeanna, mar: attr: ~SiteMap.LastMod a bhí sa sampla.
- [`items()`](#django.contrib.sitemaps.Sitemap.items) is a method that returns a [sequence](https://docs.python.org/3/glossary.html#term-sequence) or
  `QuerySet` of objects. The objects returned will get passed to any callable
  methods corresponding to a sitemap property ([`location`](#django.contrib.sitemaps.Sitemap.location),
  [`lastmod`](#django.contrib.sitemaps.Sitemap.lastmod), [`changefreq`](#django.contrib.sitemaps.Sitemap.changefreq), and
  [`priority`](#django.contrib.sitemaps.Sitemap.priority)).
- [`lastmod`](#django.contrib.sitemaps.Sitemap.lastmod) should return a [`datetime`](https://docs.python.org/3/library/datetime.html#datetime.datetime).
- There is no [`location`](#django.contrib.sitemaps.Sitemap.location) method in this example, but you
  can provide it in order to specify the URL for your object. By default,
  [`location`](#django.contrib.sitemaps.Sitemap.location) calls `get_absolute_url()` on each object
  and returns the result.

## Tagairt aicme `Sitemap`

#### `class Sitemap`

Is féidir le rang `Sitemap` na modhaí/tréithe seo a leanas a shainiú:

#### `items()`

**Required.** A method that returns a [sequence](https://docs.python.org/3/glossary.html#term-sequence) or `QuerySet`
of objects. The framework doesn't care what *type* of objects they are;
all that matters is that these objects get passed to the
[`location`](#django.contrib.sitemaps.Sitemap.location), [`lastmod`](#django.contrib.sitemaps.Sitemap.lastmod),
[`changefreq`](#django.contrib.sitemaps.Sitemap.changefreq) and [`priority`](#django.contrib.sitemaps.Sitemap.priority) methods.

#### `location`

Roghnach. \*\* Modh nó tréith.

If it's a method, it should return the absolute path for a given object
as returned by [`items()`](#django.contrib.sitemaps.Sitemap.items).

If it's an attribute, its value should be a string representing an
absolute path to use for *every* object returned by
[`items()`](#django.contrib.sitemaps.Sitemap.items).

Sa dá chás, ciallaíonn “cosán iomlán” URL nach bhfuil an prótacal nó an fearann san áireamh. Samplaí:

- Go maith: `'/foo/bar/'`
- Droch: `` `example.com/foo/bar/' ``
- Droch: `'https://example.com/foo/bar/ '`

If [`location`](#django.contrib.sitemaps.Sitemap.location) isn't provided, the framework will call
the `get_absolute_url()` method on each object as returned by
[`items`](#django.contrib.sitemaps.Sitemap.items).

Chun prótacal seachas `'http'` a shonrú, bain úsáid:attr: ~SiteMap.Protocol.

#### `lastmod`

Roghnach. \*\* Modh nó tréith.

If it's a method, it should take one argument -- an object as returned
by [`items()`](#django.contrib.sitemaps.Sitemap.items) -- and return that object's last-modified
date/time as a [`datetime`](https://docs.python.org/3/library/datetime.html#datetime.datetime).

If it's an attribute, its value should be a [`datetime`](https://docs.python.org/3/library/datetime.html#datetime.datetime)
representing the last-modified date/time for *every* object returned by
[`items()`](#django.contrib.sitemaps.Sitemap.items).

Má tá a:attr: ~SiteMap.lastMod ag gach mír i léarscáil an léarscáileáin, beidh ceannteideal `Last-Modified` ag an léarscáileán a ghineann: func: views.sitemap comhionann leis an lastmod\` is déanaí. Is féidir leat an: class: ~django.middleware.http.ConditionalGetMiddleware a ghníomhachtú chun a chur ar Django freagairt go cuí d'iarratais le ceannteideal `If-Modfied-Since` a chuirfidh cosc ar an léarscáil an léarscáil a sheoladh mura bhfuil sé athraithe.

#### `paginator`

\*\* Roghnach. \*\*

This property returns a [`Paginator`](/ga/6.1/ref/paginator/#django.core.paginator.Paginator) for
[`items()`](#django.contrib.sitemaps.Sitemap.items). If you generate sitemaps in a batch you may
want to override this as a cached property in order to avoid multiple
`items()` calls.

#### `changefreq`

Roghnach. \*\* Modh nó tréith.

If it's a method, it should take one argument -- an object as returned
by [`items()`](#django.contrib.sitemaps.Sitemap.items) -- and return that object's change
frequency as a string.

If it's an attribute, its value should be a string representing the
change frequency of *every* object returned by [`items()`](#django.contrib.sitemaps.Sitemap.items).

Is iad na luachanna féideartha le haghaidh: attr: ~SiteMap.ChangeFreq, cibé acu a úsáideann tú modh nó tréith, ná:

- 'i gcónaí'
- uaireanta uaireanta \`
- `` `'laeth' ``
- Seachtainiú'
- ```` ```míosúil ````
- bliantú'\`
- `` `'riam ``

#### `priority`

Roghnach. \*\* Modh nó tréith.

If it's a method, it should take one argument -- an object as returned
by [`items()`](#django.contrib.sitemaps.Sitemap.items) -- and return that object's priority as
either a string or float.

If it's an attribute, its value should be either a string or float
representing the priority of *every* object returned by
[`items()`](#django.contrib.sitemaps.Sitemap.items).

Luachanna samplacha le haghaidh: attr: ~SiteMap.Priority: `0.4`, 1.0\`. Is é `0.5` tosaíocht réamhshocraithe leathanaigh. Féach an doiciméadú sitemaps.org \_ le haghaidh tuilleadh eolais.

#### `protocol`

\*\* Roghnach. \*\*

Sainmhíníonn an tréith seo prótacal (`'http'` nó `https'`) na URLanna sa léarscáil an léarscáileáin. Mura bhfuil sé socraithe, úsáidtear an prótacal lena n-iarradh an léarscáil an léarscáileáin. Má tá an léarscáil an léarscáileáin tógtha lasmuigh de chomhthéacs iarratais, is é https'\` an réamhshocraithe.

#### `limit`

\*\* Roghnach. \*\*

Sainmhíníonn an tréith seo an líon uasta URLanna atá san áireamh ar gach leathanach den láithreán gréasáin. \< <https://www.sitemaps.org/protocol.html#index>\>Níor chóir go mbeadh a luach níos mó ná luach réamhshocraithe `50000`, is é sin an teorainn uachtarach a cheadaítear sa phrótacal Sitemaps \_.

#### `i18n`

\*\* Roghnach. \*\*

Tréith boolean a shainmhíníonn an cheart URLanna an léarscáileáin seo a ghiniúint ag baint úsáide as do chuid uil:setting: LANGUAGES. Is é an réamhshocrú `False`.

#### `languages`

\*\* Roghnach. \*\*

A: Téarma: seiche \<language code\>am de:téarma: cóid teanga \`le húsáid chun naisc mhalartacha a ghiniúint nuair a chumasaítear: attr: \`~SiteMap.I18N. Réamhshocraithe chuig: socrú: LANGUAGES.

#### `alternates`

\*\* Roghnach. \*\*

Tréith boolean. Nuair a úsáidtear iad i gcomhar le:attr: ~SiteMap.i18n beidh liosta de naisc mhalartacha ag gach ceann acu ag díriú ar leaganacha teanga eile ag baint úsáide as an tréith hreflang \`\_. Is é an réamhshocrú \`\`False\`.

#### `x_default`

\*\* Roghnach. \*\*

Tréith boolean. Nuair a bheidh True\` beidh iontráil `hreflang="x-default"` le luach de:setting: LANGUAGE\_CODE sna naisc malartacha a ghineann: ~SiteMap.Alternates. Is é an réamhshocrú `False`.

#### `get_latest_lastmod()`

Roghnach. \*\* Modh a thugann an luach is déanaí ar ais ag: attr: ~SiteMap.LastMod. \<sitemap-index-context-variables\>Úsáidtear an fheidhm seo chun an tréith `lastmod` a chur chuig: ref: Athróga comhthéacs innéacs Láithreáin Láithreáin .

De réir réamhshocraithe: meth: ~SiteMap.get\_Latest\_LastMod tuairisceann:

- Má tá: attr: ~SiteMap.LastMod tréith: :attr: ~SiteMap.LastMod.
- If [`lastmod`](#django.contrib.sitemaps.Sitemap.lastmod) is a method:
  The latest `lastmod` returned by calling the method with all
  items returned by [`items()`](#django.contrib.sitemaps.Sitemap.items).

#### `get_languages_for_item(item)`

Roghnach. \*\* Modh a thugann seicheamh na gcód teanga ar taispeántar an mír ina leith. De réir réamhshocraithe: meth: ~SiteMap.get\_Languages\_for\_item filleadh: attr: ~SiteMap.Languages.

## Aicearraí

Soláthraíonn creat an léarscáileáin rang áisiúlachta do chás coiteann:

#### `class GenericSitemap(info_dict, priority=None, changefreq=None, protocol=None)`

The [`django.contrib.sitemaps.GenericSitemap`](#django.contrib.sitemaps.GenericSitemap) class allows you to
create a sitemap by passing it a dictionary which has to contain at least
a `queryset` entry. This queryset will be used to generate the items
of the sitemap. It may also have a `date_field` entry that
specifies a date field for objects retrieved from the `queryset`.
This will be used for the [`lastmod`](#django.contrib.sitemaps.Sitemap.lastmod) attribute and
[`get_latest_lastmod()`](#django.contrib.sitemaps.Sitemap.get_latest_lastmod) methods in the generated sitemap.

Ceadaíonn argóintí eochairfhocal:: attr: :attr: ~SiteMap.ChangeFreq, agus:attr: ~SiteMap.Protocol argóintí eochairfhocal na tréithe seo a shonrú do gach URLanna.

### Sampla

Seo sampla de a:doc: URLConf ag baint úsáid:class: GenericSiteMap \</topics/http/urls\>:

```
from django.contrib.sitemaps import GenericSitemap
from django.contrib.sitemaps.views import sitemap
from django.urls import path
from blog.models import Entry

info_dict = {
    "queryset": Entry.objects.all(),
    "date_field": "pub_date",
}

urlpatterns = [
    # some generic view using info_dict
    # ...
    # the sitemap
    path(
        "sitemap.xml",
        sitemap,
        {"sitemaps": {"blog": GenericSitemap(info_dict, priority=0.6)}},
        name="django.contrib.sitemaps.views.sitemap",
    ),
]
```

## Láithreán Gréasáin le haghaidh radhairc statacha

Go minic ba mhaith leat craoltóirí inneall cuardaigh tuairimí a innéacsú nach leathanaigh mionsonraí réada ná leathanaigh cothroma iad. Is é an réiteach ainmneacha URL do na tuairimí seo a liostáil go sainráite i `items` agus glaoch ar: func: ~django.urls.reverse sa mhodh `suíomha` ar an láithreán gréasáin. Mar shampla:

```
# sitemaps.py
from django.contrib import sitemaps
from django.urls import reverse

class StaticViewSitemap(sitemaps.Sitemap):
    priority = 0.5
    changefreq = "daily"

    def items(self):
        return ["main", "about", "license"]

    def location(self, item):
        return reverse(item)

# urls.py
from django.contrib.sitemaps.views import sitemap
from django.urls import path

from .sitemaps import StaticViewSitemap
from . import views

sitemaps = {
    "static": StaticViewSitemap,
}

urlpatterns = [
    path("", views.main, name="main"),
    path("about/", views.about, name="about"),
    path("license/", views.license, name="license"),
    # ...
    path(
        "sitemap.xml",
        sitemap,
        {"sitemaps": sitemaps},
        name="django.contrib.sitemaps.views.sitemap",
    ),
]
```

## Innéacs léarscáil an láithreáin

#### `views.index(request, sitemaps, template_name='sitemap_index.xml', content_type='application/xml', sitemap_url_name='django.contrib.sitemaps.views.sitemap')`

Tá sé de chumas ag creat an léarscáileáin léarscáileáin innéacs léarscáileáin a chruthú a thagann tagairt do chomhaid léarscáileáin aonair, ceann in aghaidh gach roinn a shainmhínítear i do fhoclóir Is iad na difríochtaí amháin maidir le húsáid ná:

- Úsáideann tú dhá radharc i do URLConf: :func: django.contrib.sitemaps.views.index agus:func: django.contrib.sitemaps.views.sitemap.
- Ba chóir go dtógfadh argóint eochairfhocal `section` an dearcadh: django.contrib.sitemaps.views.sitemap.

Seo an chuma a bheadh ar na línte URLConf ábhartha don sampla thuas:

```
from django.contrib.sitemaps import views

urlpatterns = [
    path(
        "sitemap.xml",
        views.index,
        {"sitemaps": sitemaps},
        name="django.contrib.sitemaps.views.index",
    ),
    path(
        "sitemap-<section>.xml",
        views.sitemap,
        {"sitemaps": sitemaps},
        name="django.contrib.sitemaps.views.sitemap",
    ),
]
```

Ghinfidh sé seo comhad a:file: sitemap.xml go huathoibríoch a thagann tagairt don araon: file: sitemap-flatpages.xml agus:file: sitemap-blog.xml. Ní athraíonn na ranganna: Class: ~Django.Contrib.SiteMaps.Sitemap agus an dict Sitemaps ar chor ar bith.

If all sitemaps have a `lastmod` returned by
[`get_latest_lastmod()`](#django.contrib.sitemaps.Sitemap.get_latest_lastmod) the sitemap index will have a
`Last-Modified` header equal to the latest `lastmod`.

Ba chóir duit comhad innéacs a chruthú má tá níos mó ná 50,000 URL ag ceann de do léarscáileanna láithreáin. Sa chás seo, déanfaidh Django an léarscáil an léarscáil uathoibríoch, agus léireoidh an t-innéacs é sin.

Mura bhfuil tú ag úsáid an radharc léarscáileáin fanaile - mar shampla, má tá sé fillte le maisitheoir caching - ní mór duit d'amharc léarscáileáin a ainmniú agus `sitemap_url_name` a chur chuig an amharc innéacs:

```
from django.contrib.sitemaps import views as sitemaps_views
from django.views.decorators.cache import cache_page

urlpatterns = [
    path(
        "sitemap.xml",
        cache_page(86400)(sitemaps_views.index),
        {"sitemaps": sitemaps, "sitemap_url_name": "sitemaps"},
    ),
    path(
        "sitemap-<section>.xml",
        cache_page(86400)(sitemaps_views.sitemap),
        {"sitemaps": sitemaps},
        name="sitemaps",
    ),
]
```

## Saincheapadh teimpléad

Más mian leat teimpléad difriúil a úsáid do gach léarscáil an léarscáileáin nó innéacs léarscáileáin atá ar fáil ar do shuíomh, féadfaidh tú é a shonrú trí pharaiméadar `template_name` a chur chuig na tuairimí `sitemap` agus `index` tríd an URLConf:

```
from django.contrib.sitemaps import views

urlpatterns = [
    path(
        "custom-sitemap.xml",
        views.index,
        {"sitemaps": sitemaps, "template_name": "custom_sitemap.html"},
        name="django.contrib.sitemaps.views.index",
    ),
    path(
        "custom-sitemap-<section>.xml",
        views.sitemap,
        {"sitemaps": sitemaps, "template_name": "custom_sitemap.html"},
        name="django.contrib.sitemaps.views.sitemap",
    ),
]
```

Tugann na tuairimí seo ar ais: class: ~django.template.Response.TemplateResponse cásanna a ligeann duit na sonraí freagartha a shaincheapadh go héasca sula ndéantar iad a rindreáil. Le haghaidh tuilleadh sonraí, féach an:doc: TemplateResponse doiciméadúcháin \</ref/template-response\>.

### Athróga comhthéacs

Agus na teimpléid á shaincheapadh le haghaidh tuairimí: func: ~django.contrib.sitemaps.views.index agus:func: ~django.contrib.sitemaps.views.sitemap, is féidir leat brath ar na hathróga comhthéacs seo a leanas.

### Innéacs

Is é an t-athróg ```sitemaps ``liosta de na rudaí ina bhfuil an tréith ``suíomh``` agus `lastmod` do gach ceann de na léarscáileanna láithreáin. Nochtann gach URL na tréithe seo a leanas:

- `láithreach`: Suíomh (url & leathanach) an léarscáileáin.
- `lastmod`: Daonraithe ag an modh: meth: ~SiteMap.get\_Latest\_LastMod do gach léarscáil an léarscáileáin.

### Láithreán Gréasáin

Is é an t-athróg urlset\` liosta de URLanna ba chóir a bheith le feiceáil sa léarscáil an léarscáileáin. Nochtann gach URL tréithe mar a shainmhínítear san aicme:class: ~django.contrib.sitemaps.siteMap:

- `malartach`
- `Changefreq`
- `Míre`
- `lasmod`
- `suíomh`
- tosaíocht \`\`

Tá an tréith `alternates` ar fáil nuai:attr: ~SiteMap.I18n agus:attr: ~SiteMap.Alternates cumasaithe. Is liosta de leaganacha teanga eile é, lena n-áirítear an fillback roghnaí:attr: ~SiteMap.x\_default, do gach URL. Is foclóir é gach malartach le heochracha `láithreach` agus `lang_code`.

The `item` attribute has been added for each URL to allow more flexible
customization of the templates, such as [Google news sitemaps](https://support.google.com/news/publisher-center/answer/9606710). Assuming
Sitemap's [`items()`](#django.contrib.sitemaps.Sitemap.items) would return a list of items with
`publication_data` and a `tags` field something like this would
generate a Google News compatible sitemap:

```xml+django
<?xml version="1.0" encoding="UTF-8"?>
<urlset
  xmlns="https://www.sitemaps.org/schemas/sitemap/0.9"
  xmlns:news="https://www.google.com/schemas/sitemap-news/0.9">
{% spaceless %}
{% for url in urlset %}
  <url>
    <loc>{{ url.location }}</loc>
    {% if url.lastmod %}<lastmod>{{ url.lastmod|date:"Y-m-d" }}</lastmod>{% endif %}
    {% if url.changefreq %}<changefreq>{{ url.changefreq }}</changefreq>{% endif %}
    {% if url.priority %}<priority>{{ url.priority }}</priority>{% endif %}
    <news:news>
      {% if url.item.publication_date %}<news:publication_date>{{ url.item.publication_date|date:"Y-m-d" }}</news:publication_date>{% endif %}
      {% if url.item.tags %}<news:keywords>{{ url.item.tags }}</news:keywords>{% endif %}
    </news:news>
   </url>
{% endfor %}
{% endspaceless %}
</urlset>
```
