---
title: "Teanga teimpléad Django"
version: 5.2
locale: ga
source: https://docs.djangoproject.com/ga/5.2/ref/templates/language/
canonical: https://djangodocs.dev/ga/5.2/ref/templates/language/
---
# Teanga teimpléad Django

Míníonn an doiciméad seo comhréir teanga an chórais teimpléid Django. Má tá tú ag lorg peirspictíochta níos teicniúla ar an gcaoi a n-oibríonn sé agus conas é a leathnú, féach:doc: /ref/templates/api.

Tá teanga teimpléad Django deartha chun cothromaíocht a bhaint amach idir cumhacht agus éascaíocht. Tá sé deartha chun mothú compordach dóibh siúd a úsáidtear ag obair le HTML. Má tá aon nochtadh agat do theangacha teimpléad téacs-bhunaithe eile, mar shampla [Smarty](https://www.smarty.net/) nó [Jinja2](https://palletsprojects.com/p/jinja/), ba chóir go mbraitheann tú i gceart sa bhaile le teimpléid Django.

> **Fealsúnacht**
>
> Má tá cúlra agat sa chlárú, nó má tá tú cleachtaithe le teangacha a mheascann cód cláir go díreach i HTML, beidh tú ag iarraidh a chur i gcuimhne nach Python leabaithe i HTML amháin atá córas teimpléad Django. Tá sé seo de réir dearaidh: tá sé i gceist ag an gcóras teimpléid cur i láthair a chur in iúl, ní loighic
>
> Soláthraíonn córas teimpléad Django clibeanna a fheidhmíonn ar an gcosúil le roinnt tógáil cláraithe -- an:ttag: if \`tag le haghaidh tástálacha boolean, a:ttag: \`for tag le haghaidh lúpa, srl. - ach ní fhorghníomhtar iad seo go simplí mar an cód Python comhfhreagrach, agus ní fhorghníomhaíonn an córas teimpléid abairtí treallach Python. Ní thacaítear ach leis na clibeanna, na scagairí agus na comhréiteach atá liostaithe thíos de réir réamhshocraithe (cé gur féidir leat: doc: do chuid síntí féin a chur leis an teanga \</howto/custom-template-tags\> teimpléid de réir mar is gá).

## Teimpléid

Is comhad téacs é teimpléad. Féadann sé aon fhormáid téacs-bhunaithe a ghiniúint (HTML, XML, CSV, srl.).

Tá **athróga** i dteimpléad, a gcuirtear luachanna in ionad nuair a dhéantar an teimpléad a mheas, agus **clibe**, a rialaíonn loighic an teimpléid.

Seo thíos teimpléad íosta a léiríonn cúpla buneilimintí. Déanfar gach eilimint a mhíniú níos déanaí sa doiciméad seo.

```html+django
{% extends "base_generic.html" %}

{% block title %}{{ section.title }}{% endblock %}

{% block content %}
<h1>{{ section.title }}</h1>

{% for story in story_list %}
<h2>
  <a href="{{ story.get_absolute_url }}">
    {{ story.headline|upper }}
  </a>
</h2>
<p>{{ story.tease|truncatewords:"100" }}</p>
{% endfor %}
{% endblock %}
```

> **Fealsúnacht**
>
> Cén fáth teimpléad téacs-bhunaithe a úsáid in ionad ceann XML bunaithe (cosúil le TAL Zope)? Theastaigh uainn go mbeadh teanga teimpléid Django inúsáidte le haghaidh níos mó ná teimpléid XML/HTML amháin. Is féidir leat teanga an teimpléid a úsáid le haghaidh aon fhormáid téacs-bhunaithe mar ríomhphoist, JavaScript agus CSV.

## Athróga

Breathnaíonn athróga mar seo: `{{athróg}}`. Nuair a thagann an t-inneall teimpléid le hathróg, déanann sé an t-athróg sin a mheas agus cuireann sé an toradh in ionad é Is éard atá i ainmneacha athraitheacha aon teaglaim de charachtair alfa-uimhriúla agus an béim (`"_"`) ach ní fhéadfaidh sé tosú le béim, agus b'fhéidir nach bhfuil sé ina uimhir. Tá an ponc (`”. “`) le feiceáil freisin i rannáin athraitheacha, cé go bhfuil brí speisialta aige sin, mar a léirítear thíos. Tábhachtach, \* ní féidir leat spásanna nó carachtair poncaíochta a bheith agat in ainmneacha athraitheacha. \*

Úsáid ponc (.\`) chun rochtain a fháil ar thréithe athróg.

> **Taobh thiar de na radhairc**
>
> Go teicniúil, nuair a thagann an córas teimpléid le ponc, déanann sé iarracht na cuardaigh seo a leanas, san ord seo:
>
> - Cuardach foclóra
> - Cuardach tréithe nó modh
> - Cuardach innéacs uimhriúil
>
> Má tá an luach mar thoradh air inghlaoch, tugtar air gan aon argóintí. Is é toradh an ghlao an luach teimpléid.
>
> Is féidir leis an ordú cuardaigh seo a bheith ina chúis le roinnt iompar gan choinne le rudaí a sháraíonn cuardach foclóra Mar shampla, smaoinigh ar an snippet cód seo a leanas a dhéanann iarracht lúbadh thar collections.defaultdict\`:
>
> ```html+django
> {% for k, v in defaultdict.items %}
>     Do something with k and v here...
> {% endfor %}
> ```
>
> Toisc go dtarlaíonn cuardach foclóra ar dtús, cuireann an t-iompar sin isteach agus soláthraíonn sé luach réamhshocraithe in ionad an modh beartaithe .items () a úsáid. Sa chás seo, smaoinigh ar thiontú go foclóir ar dtús.

Sa sampla thuas, cuirfear an tréith `title` den réad ```roinn ``in ionad``` {{section.title}} .

Má úsáideann tú athróg nach bhfuil ann, cuirfidh an córas teimpléid luach an rogha `string_if_invalid` isteach, atá socraithe go "(an teaghrán folamh) de réir réamhshocraithe.

Tabhair faoi deara go léirmhínítear “barra” i abairt teimpléid cosúil le `{{foo.bar}}` mar shreang litriúil agus gan úsáid luach an athróg “barra”, má tá ceann ann i gcomhthéacs an teimpléid.

Ní fhéadfar rochtain a fháil ar thréithe athraitheacha a thosaíonn le béim toisc go meastar go príobháideach iad de ghnáth.

## Scagairí

Is féidir leat athróga a mhodhnú le taispeáint trí\*\*scagairí\*\* a úsáid.

Breathnaíonn scagairí mar seo: `{{ainm|níos ísle}}`. Taispeánann sé seo luach an athróg `{{name}}` tar éis é a scagadh tríd an scagair:tfilter: lower, a athraíonn téacs go litreacha beaga. Úsáid píopa (| \`) chun scagaire a chur i bhfeidhm.

Is féidir scagairí a “slabhraithe.” \<p\>Cuirtear aschur scagaire amháin i bhfeidhm ar an gcéad cheann eile. `` {{text|escape|linebreaks}} `is idiom coitianta é chun ábhar téacs a éalú, ansin sosanna líne a thiontú go clibeanna` ``.

Tugann roinnt scagairí argóintí. Breathnaíonn argóint scagaire mar seo: `{{bio|truncatewords:30}}`. Taispeánfaidh sé seo an chéad 30 focal den athróg `bio`.

Ní mór argóintí scagaire ina bhfuil spásanna a lua; mar shampla, chun liosta le camóga agus spásanna a bheith agat le `{{list|join:”, "}}`.

Soláthraíonn Django thart ar seasca scagaire teimpléad ionsuite \<ref-templates-builtins-filters\>Is féidir leat gach rud fúthu a léamh in:ref: tagairt scagaire ionsuite . Chun blas a thabhairt duit ar na rudaí atá ar fáil, seo cuid de na scagairí teimpléid is coitianta a úsáidtear:

**[`default`](/ga/5.2/ref/templates/builtins/#std-templatefilter-default)**

  Má tá athróg bréagach nó folamh, bain úsáid as réamhshocrú tugtha. Seachas sin, bain úsáid as luach an athróg. Mar shampla:

  ```html+django
  {{ value|default:"nothing" }}
  ```

  Mura gcuirtear `luach` ar fáil nó mura bhfuil sé folamh, taispeánfaidh an méid thuas “aon rud ”.

**[`length`](/ga/5.2/ref/templates/builtins/#std-templatefilter-length)**

  Tugann sé ar ais fad an luacha. Oibríonn sé seo le haghaidh teaghráin agus liostaí araon. Mar shampla:

  ```html+django
  {{ value|length }}
  ```

  Más é `luach` `['a', 'b', 'c', 'd']`, is é `4` an t-aschur.

**[`filesizeformat`](/ga/5.2/ref/templates/builtins/#std-templatefilter-filesizeformat)**

  Formáidigh an luach cosúil le méid comhaid “inléite don duine” (ie `'13 KB'`, `4.1 MB'`, `` `102 bytes' ``, srl.). Mar shampla:

  ```html+django
  {{ value|filesizeformat }}
  ```

  Más é “luach” 123456789, is é `117.7 MB` an t-aschur.

Arís, níl ach cúpla sampla seo; féach an:ref: tagairt scagaire ionsuite \<ref-templates-builtins-filters\>\`don liosta iomlán.

Is féidir leat do scagairí teimpléad saincheaptha féin a chruthú freisin; féach: doc: /howto/custom-template-tags.

> **See also**
>
> Is féidir le comhéadan riaracháin Django tagairt iomlán a áireamh de gach clib teimpléad agus scagairí atá ar fáil do shuíomh ar leith. Féach: doc: /ref/contrib/admin/admindocs.

## Clibeanna

Breathnaíonn clibeanna mar seo: `{% tag%}`. Tá clibeanna níos casta ná athróga: Cruthaíonn cuid acu téacs san aschur, sreabhadh rialaithe roinnt trí lúb nó loighic a dhéanamh, agus luchtaíonn cuid acu faisnéis sheachtrach isteach sa teimpléad le húsáid ag athróga níos déanaí.

Teastaíonn clibeanna tosaigh agus deireadh ó roinnt clibeanna (ie `{% tag%}... tag content... {% endtag%}`).

Loingíonn Django le thart ar dhá dhosaen clibeanna teimpléad ionsuite. \<ref-templates-builtins-tags\>Is féidir leat gach rud fúthu a léamh in:ref: tagairt clibeanna ionsuite . Chun blas a thabhairt duit ar na rudaí atá ar fáil, seo cuid de na clibeanna is coitianta a úsáidtear:

**[`for`](/ga/5.2/ref/templates/builtins/#std-templatetag-for)**

  Lúb thar gach mír i sraith. Mar shampla, chun liosta lúthchleasaithe a chuirtear ar fáil in athlete\_list\` a thaispeáint:

  ```html+django
  <ul>
  {% for athlete in athlete_list %}
      <li>{{ athlete.name }}</li>
  {% endfor %}
  </ul>
  ```

**[`if`](/ga/5.2/ref/templates/builtins/#std-templatetag-if), `elif`, and `else`**

  Déanann sé athróg a mheas, agus má tá an athróg sin “fíor” taispeántar ábhar an bhloc:

  ```html+django
  {% if athlete_list %}
      Number of athletes: {{ athlete_list|length }}
  {% elif athlete_in_locker_room_list %}
      Athletes should be out of the locker room soon!
  {% else %}
      No athletes.
  {% endif %}
  ```

  Sa mhéid thuas, mura bhfuil `athlete_list` folamh, taispeánfar líon na lúthchleasaithe ag an athróg `{{athlete_list|length}}`. Seachas sin, mura bhfuil athlete\_in\_locker\_room\_list\` folamh, taispeánfar an teachtaireacht “Ba chóir go mbeadh lúthchleasaithe amach...”. Má tá an dá liosta folamh, taispeánfar “Gan lúthchleasaithe.”

  Is féidir leat scagairí agus oibreoirí éagsúla a úsáid freisin sa chlib: ttag: if:

  ```html+django
  {% if athlete_list|length > 1 %}
     Team: {% for athlete in athlete_list %} ... {% endfor %}
  {% else %}
     Athlete: {{ athlete_list.0.name }}
  {% endif %}
  ```

  Cé go n-oibríonn an sampla thuas, bí ar an eolas go bhfilleann an chuid is mó de na scagairí teimpléid teaghráin, mar sin de ghnáth ní oibreoidh comparáidí matamaitice :tfilter: Is eisceacht é fad.

**[`block`](/ga/5.2/ref/templates/builtins/#std-templatetag-block) and [`extends`](/ga/5.2/ref/templates/builtins/#std-templatetag-extends)**

  Socraigh [oidhreacht teimpléad](#id1) (féach thíos), bealach cumhachtach chun “boilerplate” a ghearradh síos i dteimpléid.

Arís, níl an méid thuas ach rogha den liosta iomlán; féach an:ref: tagairt clibeanna ionsuite \<ref-templates-builtins-tags\>\`don liosta iomlán.

Is féidir leat do chlibeanna teimpléad saincheaptha féin a chruthú freisin; féach: doc: /howto/custom-template-tags.

> **See also**
>
> Is féidir le comhéadan riaracháin Django tagairt iomlán a áireamh de gach clib teimpléad agus scagairí atá ar fáil do shuíomh ar leith. Féach: doc: /ref/contrib/admin/admindocs.

## Tuairimí

Chun trácht a dhéanamh amach cuid de líne i dteimpléad, bain úsáid as an gcomhréir tráchtaireachta: `{# #}`.

Mar shampla, rinneadh an teimpléad seo mar `'hello'`:

```html+django
{# greeting #}hello
```

Is féidir aon chód teimpléid a bheith i dtrácht, neamhbhailí nó nach bhfuil. Mar shampla:

```html+django
{# {% if foo %}bar{% else %} #}
```

Ní féidir an comhréir seo a úsáid ach le haghaidh tuairimí aonlíne (ní cheadaítear aon línte nua idir na teorainneacha `{#` agus #}\`). Más gá duit trácht a dhéanamh ar chuid illíne den teimpléad, féach an clibe:ttag: comment.

## Teimpléad oidhreacht

Is é an chuid is cumhachtaí - agus dá bhrí sin an chuid is casta - d'inneall teimpléad Django ná oidhreacht teimpléad. Ligeann oidhreacht teimpléad duit teimpléad “cnámharlaigh” bonn a thógáil ina bhfuil na heilimintí coitianta go léir de do shuíomh agus a shainmhíníonn t\*\*bloic\*\* ar féidir le teimpléid leanaí a ath

Breathnaímid ar oidhreacht teimpléid trí thosú le sampla:

```html+django
<!DOCTYPE html>
<html lang="en">
<head>
    <link rel="stylesheet" href="style.css">
    <title>{% block title %}My amazing site{% endblock %}</title>
</head>

<body>
    <div id="sidebar">
        {% block sidebar %}
        <ul>
            <li><a href="/">Home</a></li>
            <li><a href="/blog/">Blog</a></li>
        </ul>
        {% endblock %}
    </div>

    <div id="content">
        {% block content %}{% endblock %}
    </div>
</body>
</html>
```

Sainmhíníonn an teimpléad seo, a thabharfaimid base.html\`, doiciméad cnámharlaigh HTML a d'fhéadfá a úsáid le haghaidh leathanach dhá cholún. Is obair teimpléid “leanbh” é na bloic folmha a líonadh le hábhar.

Sa sampla seo, sainmhíníonn an clibe:ttag: bloc trí bhloc ar féidir le teimpléid leanaí a líonadh isteach. Is é an clibe:ttag: bloc go léir ná insint don inneall teimpléid go bhféadfadh teimpléad leanbh na codanna sin den teimpléad a shárú.

D'fhéadfadh cuma seo a bheith ar theimpléad linbh:

```html+django
{% extends "base.html" %}

{% block title %}My amazing blog{% endblock %}

{% block content %}
{% for entry in blog_entries %}
    <h2>{{ entry.title }}</h2>
    <p>{{ entry.body }}</p>
{% endfor %}
{% endblock %}
```

Is é an clib: ttag: extens an eochair anseo. Insíonn sé don inneall teimpléid go leathnaíonn an teimpléad seo teimpléad eile. Nuair a dhéanann an córas teimpléid measúnú ar an teimpléad seo, aimsíonn sé an tuismitheoir ar dtús - sa chás seo, "base.html”.

Ag an bpointe sin, tabharfaidh inneall an teimpléid faoi deara na trí chlib: ttag: bloc i base.html\` agus cuirfidh ábhar an teimpléid linbh in ionad na bloic sin. Ag brath ar luach `blog_entries`, d'fhéadfadh cuma ar an aschur:

```html+django
<!DOCTYPE html>
<html lang="en">
<head>
    <link rel="stylesheet" href="style.css">
    <title>My amazing blog</title>
</head>

<body>
    <div id="sidebar">
        <ul>
            <li><a href="/">Home</a></li>
            <li><a href="/blog/">Blog</a></li>
        </ul>
    </div>

    <div id="content">
        <h2>Entry one</h2>
        <p>This is my first entry.</p>

        <h2>Entry two</h2>
        <p>This is my second entry.</p>
    </div>
</body>
</html>
```

Tabhair faoi deara ós rud é nár sainmhínigh an teimpléad linbh an bloc ```taobharra`, go n-úsáidtear an luach ón teimpléad tuismitheora ina ionad. Úsáidtear ábhar laistigh de chlib ``{% block%}``` i dteimpléad tuismitheora mar fhriotán i gcónaí.

Is féidir leat an oiread leibhéil oidhreachta a úsáid agus is gá. Bealach coitianta amháin chun oidhreacht a úsáid ná an cur chuige trí leibhéal seo a leanas:

- Cruthaigh teimpléad base.html\` a choinníonn príomh-chuma agus mothú do shuíomh.
- Cruthaigh teimpléad ```Base_SectionName.html ``do gach “rannóg” de do shuíomh. Mar shampla, ``base_news.html```, `base_sports.html`. Leathnaíonn na teimpléid seo go léir `base.html` agus folaíonn stílea/dearadh roinn-shonrach.
- Cruthaigh teimpléid aonair do gach cineál leathanaigh, mar shampla alt nuachta nó iontráil blag. Leathnaíonn na teimpléid seo an teimpléad roinn cuí

Uasmhéadaíonn an cur chuige seo athúsáid cód agus cuidíonn sé le míreanna a chur le réimsí ábhar roinnte, mar shampla nascleanúint ar fud an ranná

Seo roinnt leideanna chun oibriú le oidhreacht:

- Má úsáideann tú: ttag: {% leathnaíonn%}\<extends\> i dteimpléad, ní mór gurb é an chéad chlib teimpléad sa teimpléad sin. Ní oibreoidh oidhreacht teimpléid, ar shlí eile.
- Tuilleadh: TTag: Tá clibeanna {% block%}\<block\> i do theimpléid bonn níos fearr. Cuimhnigh, ní gá le teimpléid leanaí gach bloc tuismitheora a shainiú, ionas gur féidir leat réamhshocruithe réasúnta a líonadh isteach i roinnt bloic, ansin na cinn a theastaíonn uait a shainiú níos déanaí. Is fearr níos mó crúcaí a bheith agat ná níos lú crúcaí.
- Má aimsíonn tú féin ag dúbailt ábhar i roinnt teimpléid, is dócha go gciallaíonn sé gur chóir duit an t-ábhar sin a bhogadh go {% block%} i dteimpléad tuismitheoirí.
- Más gá duit ábhar an bhloc a fháil ón teimpléad tuismitheora, déanfaidh an athróg `{{block.super}}` an cleas. Tá sé seo úsáideach más mian leat cur le hábhar tuismitheoirí bloc in ionad é a shárú go hiomlán. Ní éalófar sonraí a cuireadh isteach ag baint úsáide as `{{block.super}}` go huathoibríoch (féach an chéad roinn eile \_), ós rud é go raibh sé éalaithe cheana féin, más gá, sa teimpléad tuismitheora.
- Trí úsáid a bhaint as an ainm teimpléid céanna a bhfuil tú ag oidhreacht uaidh, is \<extends\>féidir: ttag: {%%} a úsáid chun teimpléad a oidhreacht ag an am céanna agus é a shárú. In éineacht le `{{block.super}}`, is féidir leis seo a bheith ina bhealach cumhachtach chun saincheaptha beaga a dhéanamh. Féach:ref: extending\_an\_overridden\_template sna teimpléid Overriding \* Conas le haghaidh sampla iomlán.
- Ní féidir athróga a cruthaíodh lasmuigh de a:ttag: {% block%}\<block\> ag baint úsáide as an gclib teimpléad as comhréiteach taobh istigh den bhloc. Mar shampla, ní dhéanann an teimpléad seo aon rud:

  ```html+django
  {% translate "Title" as title %}
  {% block content %}{{ title }}{% endblock %}
  ```
- Le haghaidh léiteachta breise, is féidir leat *ainm* a thabhairt go roghnach do chlib `{% endblock%}`. Mar shampla:

  ```html+django
  {% block content %}
  ...
  {% endblock content %}
  ```

  I dteimpléid níos mó, cabhraíonn an teicníc seo leat a fheiceáil cé na clibeanna `{% block%}` atá á dhúnadh.
- [`{% block %}`](/ga/5.2/ref/templates/builtins/#std-templatetag-block) tags are evaluated first. That's why the content
  of a block is always overridden, regardless of the truthiness of surrounding
  tags. For example, this template will *always* override the content of the
  `title` block:

  ```html+django
  {% if change_title %}
      {% block title %}Hello!{% endblock title %}
  {% endif %}
  ```

Mar fhocal scoir, tabhair faoi deara nach féidir leat clibeanna iolracha: ttag: bloc a shainiú leis an ainm céanna sa teimpléad céanna. Tá an teorannú seo ann toisc go n-oibríonn bloc clib sa “dá threo”. Is é sin, ní sholáthraíonn bloc clib ach poll le líonadh - sainmhíníonn sé freisin an t-ábhar a líonann an poll san *tuismitheoir*. Dá mbeadh dhá chlib den chineál céanna: ttag: bloc i dteimpléad, ní bheadh a fhios ag tuismitheoir an teimpléid sin cén ceann de ábhar na mbloic le húsáid.

## Éalú uathoibríoch HTML

Agus HTML á ghiniúint agat ó theimpléid, tá baol ann i gcónaí go mbeidh carachtair san athróg a théann i bhfeidhm ar an HTML mar thoradh air Mar shampla, smaoinigh ar an mblúirt teimpléid seo

```html+django
Hello, {{ name }}
```

Ar dtús, is cosúil gur bealach neamhdhíobhálach é seo chun ainm úsáideora a thaispeáint, ach smaoinigh ar cad a tharlódh dá gcuirfeadh an t-úsáideoir a ainm isteach mar seo:

```html+django
<script>alert('hello')</script>
```

Leis an luach ainm seo, déanfaí an teimpléad a léiriú mar:

```html+django
Hello, <script>alert('hello')</script>
```

... rud a chiallaíonn go gcuirfeadh an brabhsálaí bosca foláirimh JavaScript!

Ar an gcaoi chéanna, cad a tharlaíonn má bhí siombail `'<'` san ainm, mar seo?

```html
<b>username
```

Bheadh teimpléad rindreáilte mar seo mar thoradh air sin:

```html+django
Hello, <b>username
```

... rud a d'fhágfadh, ina dhiaidh sin, go mbeadh an chuid eile den leathanach gréasáin i dtrom!

Is léir, níor cheart muinín a bheith ag sonraí a chuirtear isteach ag úsáideoirí go dall agus a chur isteach go díreach i do leathanaigh ghréasáin, toisc go bhféadfadh úsáideoir mailíseach poll den chineál seo a úsáid chun rudaí a d'fhéad Tugtar ionsaí [Cross Site Scripting](https://en.wikipedia.org/wiki/Cross-site_scripting) (XSS) ar an gcineál seo saothrú slándála.

Chun an fhadhb seo a sheachaint, tá dhá rogha agat:

- Ceann amháin, is féidir leat a chinntiú go rith gach athróg neamhiontaofa tríd an scagair:tfilter: escape (doiciméadaithe thíos), a athraíonn carachtair HTML a d'fhéadfadh a bheith díobhálach go cinn neamhdhíobhálacha. Ba é seo an réiteach réamhshocraithe i Django dá chéad chúpla bliain, ach is í an fhadhb ná go gcuireann sé an t-ualach ar\* uis\*, an forbróir/údar teimpléid, chun a chinntiú go bhfuil tú ag éalú ó gach rud. Tá sé éasca dearmad a dhéanamh ar shonraí a éalú.
- Dá cheann, is féidir leat leas a bhaint as éalú uathoibríoch HTML Django. Déanann an chuid eile den chuid seo cur síos ar an gcaoi a n-oibríonn éalú uath

De réir réamhshocraithe i Django, éalaíonn gach teimpléad aschur gach clib athraitheach go huathoibríoch. Go sonrach, éalaítear na cúig charachtar seo:

- Déantar `<` a thiontú go `<`
- Tiontaítear \>\` go \>\`
- Tiontaítear ````` ````(luachan aonair) go ``` `````
- Déantar ```"``(luachan dúbailte) a thiontú go```"\`\`
- Tiontaítear & \`\`go \`&\`

Arís, cuirimid béim go bhfuil an t-iompar seo ar siúl de réir réamhshocraithe. Má tá córas teimpléad Django á úsáid agat, tá tú cosanta.

### Conas é a mhúchadh

Mura dteastaíonn uait go n-éalfaí sonraí go huathoibríoch, ar leibhéal in aghaidh an láithreáin, in aghaidh an teimpléid nó in aghaidh an leibhéal athraithe, is féidir leat iad a mhúchadh ar bheal

Cén fáth ar mhaith leat é a mhúchadh? Mar gheall ar uaireanta, tá sonraí i n-athróga teimpléid a thugtar agat\* a léiriú mar HTML amh, agus sa chás sin níl tú ag iarraidh go n-éalfaí a n-ábhar. Mar shampla, d'fhéadfá blob HTML a stóráil i do bhunachar sonraí agus gur mhaith leat é sin a leabú go díreach i do theimpléad. Nó, b'fhéidir go bhfuil tú ag úsáid córas teimpléad Django chun téacs ar\* ní\* HTML a tháirgeadh - cosúil le teachtaireacht ríomhphoist, mar shampla.

#### Maidir le hathróga aonair

Chun éalú uathoibríoch a dhíchumasú le haghaidh athróg aonair, bain úsáid as an scagair:tfilter: safe:

```html+django
This will be escaped: {{ data }}
This will not be escaped: {{ data|safe }}
```

Smaoinigh ar *sábháilte* mar ghearrthóg d'*sábháilte ó éalú tuilleadh* nó *is féidir é a léirmhíniú go sábháilte mar HTML*. \<b\>Sa sampla seo, má tá ``` `sonraí `` ``` , is é an t-aschur:

```html+django
This will be escaped: &lt;b&gt;
This will not be escaped: <b>
```

#### Le haghaidh bloic teimpléad

Chun éalú uathoibríoch le haghaidh teimpléad a rialú, fillte an teimpléad (nó cuid áirithe den teimpléad) sa chlibe:ttag: autoescape, mar shampla:

```html+django
{% autoescape off %}
    Hello {{ name }}
{% endautoescape %}
```

Glacann an clibe:ttag: autoescape `on` nó `off` mar argóint. Uaireanta, b'fhéidir gur mhaith leat éalú uathoibríoch a chur i bhfeidhm nuair a bheadh sé faoi mhíchumas Seo teimpléad sampla:

```html+django
Auto-escaping is on by default. Hello {{ name }}

{% autoescape off %}
    This will not be auto-escaped: {{ data }}.

    Nor this: {{ other_data }}
    {% autoescape on %}
        Auto-escaping applies again: {{ name }}
    {% endautoescape %}
{% endautoescape %}
```

Cuireann an chlib éalaithe uathoibríoch a éifeacht ar theimpléid a leathnaíonn an ceann reatha chomh maith le teimpléid atá san áireamh tríd an gclibe:ttag: include, díreach cosúil le gach bloc chlib. Mar shampla:

*`Base.html`*

```html+django
{% autoescape off %}
<h1>{% block title %}{% endblock %}</h1>
{% block content %}
{% endblock %}
{% endautoescape %}
```

*`Child.html`*

```html+django
{% extends "base.html" %}
{% block title %}This &amp; that{% endblock %}
{% block content %}{{ greeting }}{% endblock %}
```

\<b\>Toisc go bhfuil éalú uathoibríoch a mhúchadh sa bhonn teimpléad, múchfar é freisin sa teimpléad linbh, agus mar thoradh air sin beidh an HTML rindreáilte seo a leanas nuair a bhíonn an teaghrán Dia duit!\</b\> :

```html+django
<h1>This &amp; that</h1>
<b>Hello!</b>
```

### Nótaí

Go ginearálta, ní gá d'údair teimpléid a bheith buartha faoi éalú go huathoibríoch go mór. Caithfidh forbróirí ar thaobh Python (daoine a scríobhann tuairimí agus scagairí saincheaptha) smaoineamh ar na cásanna nár chóir sonraí a éalú, agus sonraí a mharcáil go cuí, mar sin rudaí Just Work sa teimpléad.

Má tá teimpléad á chruthú agat a d'fhéadfaí a úsáid i gcásanna nach bhfuil tú cinnte an bhfuil éalú uathoibríoch cumasaithe, ansin cuir scagair:tfilter: escape le haon athróg a chaithfidh éalú. Nuair a bhíonn éalú uathoibríoch ar siúl, níl aon chontúirt ann go ndéanfaidh an scagair:tfilter: éalú \`sonraí \*éalú dúbailte\* - ní dhéanann an scagair:tfilter: \`éalú difear do athróga uathoibríoch éalaithe.

### Litríochtaí teaghráin agus éalú uathoibríoch

Mar a luaigh muid níos luaithe, is féidir argóintí scagaire a bheith ina teaghráin:

```html+django
{{ data|default:"This is a string literal." }}
```

Cuirtear gach litríl teaghrán isteach \*\* gan aon éalú uathoibríoch isteach sa teimpléad - gníomhaíonn siad amhail is dá gcuirfí iad uile tríd an scagaire: tfilter: safe. Is é an réasúnaíocht atá taobh thiar de seo ná go bhfuil an t-údar teimpléid i smacht ar an méid a théann isteach sa sreang liteartha, ionas gur féidir leo a chinntiú go bhfuil an téacs éalaithe i gceart nuair a scríobhtar

Ciallaíonn sé seo go scríobhfá:

```html+django
{{ data|default:"3 &lt; 2" }}
```

... seachas:

```html+django
{{ data|default:"3 < 2" }}  {# Bad! Don't do this. #}
```

Ní dhéanann sé seo difear don rud a tharlaíonn do shonraí a thagann ón athróg féin. Éalaítear ábhar an athróg go huathoibríoch fós, más gá, toisc go bhfuil siad lasmuigh de smacht údar an teimpléid.

## Glaonna modh a rochtain

Tá an chuid is mó de na glaonna modh atá ceangailte le rudaí ar fáil ó theimpléid laisti Ciallaíonn sé seo go bhfuil rochtain ag teimpléid ar i bhfad níos mó ná tréithe ranga amháin (cosúil le hainmneacha réimse) agus athróga a rith isteach ó thuairimí Mar shampla, soláthraíonn an ORM Django comhréire:ref: "entry\_set” \<topics-db-queries-related\>\`chun bailiúchán rudaí a bhaineann le heochair eachtrach a aimsiú. Dá bhrí sin, i bhfianaise samhail ar a dtugtar “trácht” le príomhchaidreamh eachtrach le samhail ar a dtugtar “tasc” is féidir leat lúb trí gach trácht atá ceangailte le tasc ar leith mar seo:

```html+django
{% for comment in task.comment_set.all %}
    {{ comment }}
{% endfor %}
```

Ar an gcaoi chéanna, soláthraíonn :doc: QuerySets modh\</ref/models/querysets\> count () chun líon na rudaí atá iontu a chomhaireamh. Dá bhrí sin, is féidir leat comhaireamh de na tuairimí go léir a bhaineann leis an tasc reatha a fháil le:

```html+django
{{ task.comment_set.all.count }}
```

Is féidir leat rochtain a fháil ar mhodhanna atá sainmhínithe agat go sainráite ar do chuid samhlacha féin:

*`models.py`*

```python
class Task(models.Model):
    def foo(self):
        return "bar"
```

*`Teimpléad.html`*

```html+django
{{ task.foo }}
```

Toisc go gcuireann Django teorainn d'aon ghnó ar an méid próiseála loighic atá ar fáil i dteanga na teimpléid, ní féidir argóintí a chur ar aghaidh chuig glaonna modh a rochtaítear orthu ó laistigh Ba chóir sonraí a ríomh i radhairc, ansin a chur chuig teimpléid le taispeáint.

## Clib saincheaptha agus leabharlanna scagaire

Soláthraíonn feidhmchláir áirithe leabharlanna clibeanna saincheaptha Chun rochtain a fháil orthu i dteimpléad, cinntigh go bhfuil an feidhmchlár in:setting: INSTALLED\_APPS (chuirfimid django.contrib.humanize' leis an sampla seo), agus ansin úsáid an clibe:ttag: \`load i dteimpléad:

```html+django
{% load humanize %}

{{ 45000|intcomma }}
```

Sa mhéid thuas, luchtaíonn an clibe:ttag: load leabharlann clibeanna `humanize`, rud a fhágann go bhfuil an scagaire intcomma\` ar fáil le húsáid ansin. Má tá: mod: django.contrib.admindocs cumasaithe agat, is féidir leat dul i gcomhairle leis an réimse doiciméadaithe i do riarachán chun liosta na leabharlanna saincheaptha i do shuiteáil a fháil.

Is féidir leis an gclibe:ttag: load ilainmneacha leabharlainne a thógáil, scartha le spásanna. Sampla:

```html+django
{% load humanize i18n %}
```

Féach: doc: /howto/custom-template-tags le haghaidh faisnéise maidir le do leabharlanna teimpléad saincheaptha féin a scríobh.

### Leabharlanna saincheaptha agus oidhreacht te

Nuair a luchtaíonn tú leabharlann clibeanna saincheaptha nó scagaire, ní chuirtear na clibeanna/scagairí ar fáil ach don teimpléad reatha - ní aon teimpléid tuismitheora nó leanbh ar feadh an chonair oidhreachta teimpléad.

Mar shampla, má tá `{% load humanize%}` i teimpléad `foo.html`, ní bheidh rochtain ag teimpléad leanbh (m.sh., ceann a bhfuil `{% leathnaíonn "foo.html"%}`) ní bheidh rochtain ar na clibeanna agus na scagairí teimpléad daonnaithe. Tá an teimpléad leanbh freagrach as a {% load humanize%} féin.

Is gné é seo ar mhaithe le cothabháil agus sláine.

> **See also**
>
> **[The Templates Reference](/ga/5.2/ref/templates/)**
>
>   Clúdaíonn sé clibeanna ionsuite, scagairí ionsuite, ag baint úsáide as teanga teimpléad malartach, agus
