---
title: "Nótaí scaoilte Django 1.4"
version: 5.2
locale: ga
source: https://docs.djangoproject.com/ga/5.2/releases/1.4/
canonical: https://djangodocs.dev/ga/5.2/releases/1.4/
---
# Nótaí scaoilte Django 1.4

*23 Márta, 2012*

Fáilte go dtí Django 1.4!

Clúdaíonn na nótaí scaoilte seo na:ref: gnéithe nua \<whats-new-1.4\>, chomh maith le roinnt athruithe: ref: athruithe neamh-chomhoiriúnacha ar chúl\<backwards-incompatible-1.4\> a mbeidh tú ag iarraidh a bheith ar an eolas fúthu agus tú ag uasghrádú ó Django 1.3 nó leaganacha níos sine. \<deprecated-features-1.4\>Tá roinnt gnéithe titim againn freisin, atá mionsonraithe in:ref: ár bplean díghabhála \<deprecation-removed-in-1.4\>, agus chuireamaire:ref: tús leis an bpróiseas díghabhála do roinnt gnéithe.

## Forbhreathnú

Is é an ghné nua is mó i Django 1.4 ná tacaíocht do chriosanna ama \_ agus dáta/amanna á láimhseáil. Nuair a bheidh sé cumasaithe, stóráilfidh an Django seo dáta/amanna in UTC, úsáidfidh sé rudaí atá ar an eolas faoi chrios ama go hinmheánach, agus aistrfidh siad iad chuig criosanna ama áitiúla úsáideoirí le taispeáint.

Má tá tú ag uasghrádú ar thionscadal atá ann cheana go Django 1.4, d'fhéadfadh go mbeadh cúram ag aistriú go dtí an modh feasach ar an gcrios ama: ní cheadaíonn an modh nua roinnt iompar sách lasc a nglacíodh leis. \<time-zones-faq\>Molaimid do dhuine ar bith atá ag uasghrádú chun seiceáil ar an: ref: treoir imirce crios ama \`agus an:ref: \`Ceisteanna Coitianta Time-zone\<time-zones-migration-guide\> le haghaidh leideanna úsáideacha.

I measc na ngnéithe nua suntasacha eile i Django 1.4 tá:

- Roinnt feabhsuithe ORM, lena n-áirítear [SELECT FOR UPDATE taca](#select-for-update-support), an cumas [mórchóir](#model-objects-bulk-create-in-the-orm) tacair mhóra sonraí le haghaidh feidhmíochta feabhsaithe, agus [QuerySet.prefetch\_related](#queryset-prefetch-related), modh chun rudaí gaolmhara a luchtú i réimsí ina nd:meth: ~django.db.models.queryset.select.select.queryset.select.select.Ní oibríonn \_related.
- Roinnt breiseanna slándála deas, lena n-áirítear [hashing pasfhocal feabhsaithe](#improved-password-hashing) (ina bhfuil tacaíocht [PBKDF2](https://en.wikipedia.org/wiki/PBKDF2) agus [bcrypt](https://en.wikipedia.org/wiki/Bcrypt)), [uirlisí nua le haghaidh síniú cripteagrafac](#improved-password-hashing), roinnt feabhsuithe CSRF [\_, agus \`cosaint clickjacking simplí](#tools-for-cryptographic-signing).
- 'leagan amach tionscadail réamhshocraithe nuashonraithe agus manage.py\`\_ a bhaineann an “draíocht” ó leaganacha roimhe seo. Agus dóibh siúd nach dtaitníonn an leagan amach nua dóibh, is féidir leat [teimpléid tionscadail agus aipeanna saincheapaithe](#updated-default-project-layout-and-manage-py) a úsáid ina ionad sin!
- Tacaíocht do chreataí tástála in-bhrabhsálaí \_ (cosúil le [Selenium](https://www.selenium.dev/)).
- ... agus go leor eile; [féach thíos](#what-s-new-in-django-1-4)!

Nuair is féidir déanaimid iarracht gnéithe nua a thabhairt isteach ar bhealach atá comhoiriúnach ar gcúl de réir [ár mbeartas cobhsaíochta API](/ga/5.2/misc/api-stability/). Mar a tharla le heisiúintí roimhe seo, áfach, long Django 1.4 le roinnt mionathruithe ; ba chóir do dhaoine atá ag uasghrádú ó leaganacha níos sine de Django an liosta sin a léamh go cúramach.

## Comhoiriúnacht Python

Tá tacaíocht do Python 2.4 titim ag Django 1.4. Is é Python 2.5 anois an leagan Python íosta riachtanach. Déantar tástáil agus tacaítear le Django ar Python 2.5, 2.6 agus 2.7.

Níor cheart go mbíonn tionchar ag an athrú seo ach ar líon beag úsáideoirí Django, mar tá formhór na ndíoltóirí córais oibriúcháin inniu ag seoladh Python 2.5 nó níos nuaí mar a leagan réamhshoc Má tá Python 2.4 á úsáid agat fós, áfach, beidh ort cloí le Django 1.3 go dtí gur féidir leat uasghrádú a dhéanamh. Per:doc: ár mbeartas tacaíochta ', leanfaidh \</internals/release-process\> Django 1.3 ag fáil tacaíochta slándála go dtí go scaoilfear Django 1.5.

Ní thacaíonn Django le Python 3.x ag an am seo. Ag pointe éigin roimh scaoileadh Django 1.4, tá sé beartaithe againn doiciméad a fhoilsiú ina leagtar amach ár n-amlíne iomlán chun Python 2.x a dhíspreagadh agus bogadh go Python 3.x.

## Cad atá nua i Django 1.4

### Tacaíocht do chriosanna ama

I leaganacha roimhe seo, d’úsáid Django dáta/amanna “naive” (is é sin, dáta/amanna gan crios ama gaolmhar), rud a fhágann gur faoi gach forbróir é a léirmhíniú cad a chiallaíonn dáta/am tugtha “i ndáiríre”. Is féidir leis seo a bheith ina chúis le gach cineál fabhtanna subtle a bhaineann le crios ama.

I Django 1.4, is féidir leat Django a aistriú go modh níos ceart, atá feasach ar chrios ama anois. Sa mhodh seo, stóráilíonn Django faisnéis dáta agus ama i UTC sa bhunachar sonraí, úsáideann sé rudaí dáta-ama atá ar an eolas ó chrios ama go hinmheánach agus aistríonn sé iad go crios ama an úsáideora deiridh i dteimpléid agus i bhfoirmeacha. I measc na gcúiseanna chun an ghné seo a úsáid tá:

- Taispeántas dáta agus ama a shaincheapadh d'úsáideoirí ar fud an domhain.
- Dáta a stóráil in UTC le haghaidh iniomparthacht bunachar sonraí agus idir-inoibritheacht (Ní bhaineann an argóint seo le PostgreSQL, toisc go stórálann sé stampaí ama cheana féin le faisnéis chrios ama i Django 1.3.)
- Fadhbanna éillithe sonraí a sheachaint ar aistrithe DST.

Cumasaítear tacaíocht crios ama de réir réamhshocraithe i dtionscadail nua a cruthaíodh le:djadmin: startproject. \<time-zones-migration-guide\>Más mian leat an ghné seo a úsáid i dtionscadal atá ann cheana, léigh an:ref: treoir imirce\`. \<time-zones-faq\>Má bhíonn fadhbanna agat, tá cabhrach ann: ref: Ceisteanna Coitianta .

### Tacaíocht do chreataí tástála in-bhrabhsála

Tacaíonn Django 1.4 le comhtháthú le creataí tástála in-bhrabhsálaí cosúil le [Selenium](https://www.selenium.dev/). Ligeann an rang bonn nua:class: django.test.liveservertestcase duit na hidirghníomhaíochtaí idir foircinn tosaigh agus cúl do shuíomh a thástáil níos cuimsitheach. Féach an:class: doiciméadú \<django.test.LiveServerTestCase\>\`le haghaidh tuilleadh sonraí agus samplaí nithiúla.

### Leagan amach tionscadail réamhshocraithe nuashonraithe agus manage.py\`

Seoltar Django 1.4 le leagan amach réamhshocraithe tionscadail nuashonraithe agus comhad `manage.py` don ordú bainistíochta : djadmin: startproject. Réitíonn siad seo roinnt fadhbanna leis an láimhseáil `manage.py` roimhe seo ar chonairí allmhairithe Python a d'eascair allmhairí dúbailte, deacracht ag bogadh ó fhorbairt go himscaradh, agus saincheisteanna cosáin eile a bhí deacair le dífhabhtú.

Tugadh na manage.py roimhe seo ar fheidhmeanna atá díscoite anois, agus dá bhrí sin ba cheart do thionscadail a uasghrádú go Django 1.4 a “manage.py” a nuashonrú. (Leanfaidh an sean-stíl manage.py\` ag obair mar a bhí roimhe seo go dtí Django 1.6. I 1.5 ardóidh sé `DeprecationWarning`).

Ba chóir go mbeadh cuma seo ar an gcomhad nua manage.py a mholtar:

```
#!/usr/bin/env python
import os, sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "{{ project_name }}.settings")

    from django.core.management import execute_from_command_line

    execute_from_command_line(sys.argv)
```

Ba chóir ainm pacáiste Python an tionscadail iarbhír a chur in ionad `{{project_name}}`.

Má iompórtáiltear nó má dhéantar socruithe, URLConfs agus aipeanna laistigh den tionscadal ag úsáid réimír ainm an tionscadail (m.sh. `myproject.settings`, ROOT\_URLCONF = “myproject.urls", srl.), ní mór an manage.py nua a aistriú suas, mar sin tá sé lasmuigh den phacáiste tionscadail seachas in aice le settings.py\` agus \`\`urls.py\`.

Mar shampla, leis an leagan amach seo a leanas:

```text
manage.py
mysite/
    __init__.py
    settings.py
    urls.py
    myapp/
        __init__.py
        models.py
```

D'fhéadfá `mysite.settings`, mysite.urls\`, agus mysite.myapp\` a iompórtáil, ach ní `settings`, `urls`, nó myapp\` mar mhodúil barrleibhéil.

Is féidir aon rud a allmhairítear mar mhodúl barrleibhéil a chur in aice leis an manage.py nua. Mar shampla, chun myapp\` a dhícheangal ón modúl tionscadail agus é a iompórtáil mar myapp\`, cuir lasmuigh den eolaire `mysite/` é:

```text
manage.py
myapp/
    __init__.py
    models.py
mysite/
    __init__.py
    settings.py
    urls.py
```

Má iompórtar an cód céanna go neamhchomhsheasmhach (áiteanna áirithe le réimír an tionscadail, áiteanna áirithe gan é), beidh gá na hallmhairí a ghlanadh agus iad ag aistriú chuig an manage.py nua.

### Teimpléid tionscadail agus aip saincheaptha

Tá rogha --teimpléad anois ag na horduithe bainistíochta: djadmin: startapp agus:djadmin: startproject chun cosán nó URL a shonrú chuig aip saincheaptha nó teimpléad tionscadail.

Mar shampla, úsáidfidh Django an eolaire `/path/to/my_project_template` nuair a ritheann tú an t-ordú seo a leanas:

```shell
django-admin.py startproject --template=/path/to/my_project_template myproject
```

Is féidir leat eolaire ceann scríbe a sholáthar anois mar an dara argóint chuig an dá cheann:djadmin: startapp agus:djadmin: startproject:

```shell
django-admin.py startapp myapp /path/to/new/app
django-admin.py startproject myproject /path/to/new/project
```

Le haghaidh tuilleadh faisnéise, féach an doiciméad:djadmin: startapp agus:djadmin: startproject.

### Tacaíocht WSGI feabhsaithe

Cuireann an t-ordú bainistíochta: DJADmin: startproject modúl a:file: wsgi.py anois le leagan amach tosaigh an tionscadail, ina bhfuil feidhmchlár simplí WSGI is féidir a úsáid le haghaidh: doc: imscaradh le freastalaithe aipeanna\</howto/deployment/wsgi/index\> WSGI'.

Tacaíonn \<runserver\>an: DJAdmin: “freastalaí forbartha ionsuite” anois le glaoch WSGI atá sainmhínithe go seachtrach a úsáid, rud a fhágann gur féidir runserver\` a reáchtáil leis an gcumraíocht WSGI céanna a úsáidtear le haghaidh imscaradh. Ligeann an socrú nua:setting: WSGI\_APPLICATION duit a chumrú a úsáideann WSGI callable:djadmin: runserver.

(Cumhdaíonn an t-ordú bainistíochta runfcgi\` go hinmheánach an WSGI cumraithe inghlaonta trí:setting: WSGI\_APPLICATION.)

### Tacaíocht ROGHNAIGH LE HAGHAIDH NUASHONRÚ \`\`

\<django.db.models.query.QuerySet.select\_for\_update\>Cuimsíonn Django 1.4 modh a:meth: QuerySet.Select\_for\_Update () \`, a ghineann \`\`SELECT... LE HAGHAIDH NUASHONRÚ \`\`fiosrúchán SQL. Glasálfaidh sé seo sraitheanna go dtí deireadh an idirbheart, rud a chiallaíonn nach féidir le hidirbhearta eile sraitheanna a mheaitseáil le ceist \`FOR UPDATE\` a mhodhnú nó a scriosadh.

Le haghaidh tuilleadh sonraí, féach an doiciméadú le haghaidh: meth: ~django.db.models.query.queryset.select\_for\_update.

### `Model.objects.bulk_create` sa ORM

Ligeann an modh seo duit rudaí iomadúla a chruthú níos éifeachtaí D'fhéadfadh méaduithe suntasacha feidhmíochta a bheith mar thoradh air má tá go leor rudaí agat.

Baineann Django úsáid as seo go hinmheánach, rud a chiallaíonn go bhfaca sochar feidhmíochta roinnt oibríochtaí (mar shampla socrú bunachar sonraí do shraith tástála) mar thoradh air sin.

Féach na docs: meth: ~django.db.models.query.queryset.bulk\_create le haghaidh tuilleadh faisnéise.

### `QuerySet.Prefetch_Related`

Cosúil le:meth: ~django.db.models.query.queryset.select\_related ach le straitéis dhifriúil agus raon feidhme níos leithne, cuireadh :meth: ~django.db.models.query.queryset.prefetch\_related chuirte:class: ~django.db.models.query.queryset. Tugann an modh seo `QuerySet` nua ar ais a fhaighfidh gach ceann de na cuardaigh ghaolmhara sonraithe i mbaisc amháin a luaithe a thosaíonn an cheist á mheas. Murab ionann agus `select_related`, déanann sé na páirtí i Python, ní sa bhunachar sonraí, agus tacaíonn sé le caidrimh go leor, GenericForeignKey\` agus go leor eile. Ligeann sé seo duit fadhb feidhmíochta an-choitianta a shocrú ina gcríochnaíonn do chód ag déanamh ceisteanna bunachar sonraí O (n) (nó níos measa) má tá go leor rudaí gaolmhara ag rudaí ar do phríomh-QuerySet gach ceann acu a chaithfidh tú a fháil freisin.

### Hashing pasfhocal feabhsaithe

Stórálann córas auth Django (`django.contrib.auth`) pasfhocail ag baint úsáide as algartam aon-bhealaigh. Úsáideann Django 1.3 an algartam [SHA1](https://en.wikipedia.org/wiki/SHA1), ach léirigh luasanna próiseálaí agus ionsaithe teoiriciúla ag méadú nach bhfuil SHA1 chomh slán agus is mian linn. Dá bhrí sin, tugann Django 1.4 córas nua stórála pasfhocal isteach: de réir réamhshocraithe úsáideann Django anois algartam [PBKDF2](https://en.wikipedia.org/wiki/PBKDF2) (mar a mhol [NIST](https://csrc.nist.gov/publications/detail/sp/800-132/final)). Is féidir leat algartam difriúil a roghnú go héasca freisin (lena n-áirítear an algartam [bcrypt](https://en.wikipedia.org/wiki/Bcrypt) coitianta). Le haghaidh tuilleadh sonraí, féach:ref: auth\_password\_storage.

### HTML5 doctype

Tá an riarachán agus teimpléid cuachta eile tar éis aistriú againn chun an doctype HTML5 a úsáid. Cé go mbeidh Django cúramach comhoiriúnacht le brabhsálaithe níos sine a choinneáil, ciallaíonn an t-athrú seo gur féidir leat aon ghnéithe HTML5 a theastaíonn uait a úsáid i leathanaigh riaracháin gan bailíocht HTML a chailleadh nó na teimpléid a chuirtear ar fáil chun an doctype a athrú.

### Liostaigh scagairí i gcomhéadan admin

Roimh Django 1.4, lig an aip: mod: ~django.contrib.admin duit scagairí liosta athraithe a shonrú trí chuardach réimse a shonrú, ach níor chead sé duit scagairí saincheaptha a chruthú. Ceartaíodh é seo le API simplí (a úsáidtear go hinmheánach roimhe seo agus ar a dtugtar “FilterSpec”). Le haghaidh tuilleadh sonraí, féach an doiciméadú le haghaidh: attr: \`~django.contrib.admin.modeladmin.list\_filter.

### Sórtáil iolrach i gcomhéadan admin

Tacaíonn an liosta athraithe riaracháin anois le sórtáil ar iliomad colún Tá meas aige ar gach gné den tréith: attr: ~django.contrib.admin.modelAdmin.Ordering, agus tá sórtáil ar iliomad colúin trí chliceáil ar cheanntásca deartha chun aithris a dhéanamh ar iompar GUIanna deisce. Chuireamar modh a:meth: ~django.contrib.admin.modeladmin.get\_ordering freisin chun an t-ordú a shonrú go dinimiciúil (ie, ag brath ar an iarratas).

### Modhanna nua `ModelAdmin`

Chuireamar modh a:meth: ~django.contrib.admin.modeladmin.save\_related leis: mod: ~django.contrib.admin.modelAdmin chun saincheapadh a éascú ar an gcaoi a shábháiltear rudaí gaolmhara sa riarachán.

Cumasaíonn dhá mhodh nua eile: ~django.contrib.admin.modelAdmin, :meth: ~django.contrib.admin.modeladmin.get\_list\_display agus:meth: ~django.contrib.admin.modeladmin.get\_list\_display\_links saincheapadh dinimiciúil réimsí agus naisc a thaispeántar ar an liosta athraithe admin.

### Meas ar línte riaracháin ceadanna úsáideora

Ní cheadaíonn inlínte riaracháin anois ach na gníomhartha sin a bhfuil cead ag an úsáideoir dóibh. Maidir le caidrimh ManyTomany\` le samhail idirmheánach a chruthaítear go huathoibríoch (nach bhfuil a cheadanna féin aige), cinneann an cead athraithe don tsamhail ghaolmhar an bhfuil cead ag an úsáideoir caidrimh a chur leis, a athrú nó a scriosadh.

### Uirlisí le haghaidh síniú cripteagrafach

Cuireann Django 1.4 API leibhéal íseal le haghaidh luachanna a shíniú agus API ardleibhéil chun fianáin sínithe a shocrú agus a léamh, ceann de na húsáidí is coitianta a bhaineann le síniú feidhmchláir ghréasáin.

Féach na doiciméid [síniú cripteagrafach](/ga/5.2/topics/signing/) le haghaidh tuilleadh eolais.

### Cúlcheann seisiúin bunaithe ar fhianán

Tugann Django 1.4 inneall seisiún fianán-bhunaithe isteach a úsáideann na huirlisí le haghaidh :doc: síniú cripteagrafach \</topics/signing\> chun sonraí an tseisiúin a stóráil i mbrabhsálaí an chliaint.

> **Warning**
>
> Déanann an freastalaí sonraí an tseisiúin a shíniú agus a bhailíochtú, ach níl siad criptithe. Ciallaíonn sé seo gur féidir le húsáideoir féachaint ar aon sonraí atá stóráilte sa seisiún ach nach féidir leo é a athrú. Léigh na doiciméid le haghaidh soiléirithe breise le do thoil roimh úsáid a bhaint as an inneall seo.

\<cookie-session-backend\>Féach na doiciméad:ref: cúltaca seisiúin bunaithe ar fianáin le haghaidh tuilleadh faisnéise.

### Draoi foirm nua

Cuireadh cur i bhfeidhm nua in ionad an FormWizard roimhe seo ó django.contrib.formtools\` bunaithe ar na tuairimí ranga-bhunaithe a tugadh isteach i Django 1.3. Tá API stórála in-phlugáilte aige agus ní éilíonn sé ar an draoi dul timpeall réimsí i bhfolach do gach céim roimhe seo.

Seolann Django 1.4 le cúltaca stórála bunaithe ar sheisiún agus cúltaca stórála bunaithe ar fhianán. Úsáideann an dara ceann na huirlisí le haghaidh: doc: síniú cripteagrafach' a tugadh isteach i Django 1.4 freisin chun staid an draoi a stóráil i bhfi\</topics/signing\> anáin an úsáideora.

### `` `reverse_lazy ``

Cuireadh leagan meastóireachta go leisciúil de reverse () chun ligean aisiompú URL a úsáid sula luchtaítear URLConf an tionscadail.

### Patrúin URL a aistriú

Is féidir le Django réimír teanga a lorg anois sa URLPattern agus an fheidhm chúntóra nua:func: ~django.conf.urls.i18n.i18n\_patterns á úsáid agat. Is féidir anois patrúin URL inaistrithe a shainiú ag baint úsáide as django.utils.translation.ugettext\_lazy () . Féach:ref: url-idirnáisiúnach le haghaidh tuilleadh faisnéise faoin réimír teanga agus conas patrúin URL a idirnáisiúnú.

### Tacaíocht aistriúcháin chomhthéacsúil do `{% trans%}` agus `{% blocktrans%}`

Leathnaíodh an taca \<contextual-markers\>íocht: Ref: aistriúchán comhthéacsúil \`a tugadh isteach i Django 1.3 tríd an bhfeidhm \`\`pgettext\` chuig clibeanna teimpléad:ttag: trans agus:ttag: blocktrans ag baint úsáide as an eochairfhocal nua `context`.

### UrlConf kwargs inúsáidte `SingleObjectMixin`

Cuireadh dhá thréith nua, :attr: pk\_url\_kwarg \`agus:attr: \<django.views.generic.detail.SingleObjectMixin.pk\_url\_kwarg\>slug\_url\_kwarg , la:class: \`~django.views.generic.detail.singleObjectMixin chun saincheapadh argóintí eochairfhocal URLConf a úsáidtear le haghaidh tuairimí cineálacha réad aonair a chumas \<django.views.generic.detail.SingleObjectMixin.slug\_url\_kwarg\>ú.

### Clibeanna teimpléad sannadh

Cuireadh feidhm chúntóra nua `assignment_tag` le Template.Library\` chun clibeanna teimpléad a stóráil sonraí in athróg comhthéacs sonraithe a éascú.

### Tacaíocht `*args` agus kwargs d'fheidhmeanna cúntóra clibeanna teimpléad

Féadfaidh na feidhmeanna cúntóra teimpléad:ref: simple\_tag \<howto-custom-template-tags-simple-tags\>, :ref: inclusion\_tag agus feidhmeanna cúntóra teimpléad `<howto-custom-template-tags-inclusion-tags>assignment_tag` nua-tugadh isteach glacadh anois le haon líon argóintí seasaimh nó eochairfhocal. Mar shampla:

```
@register.simple_tag
def my_tag(a, b, *args, **kwargs):
    warning = kwargs["warning"]
    profile = kwargs["profile"]
    ...
    return ...
```

Ansin, sa teimpléad, féadfar aon líon argóintí a chur chuig an gclib teimpléid. Mar shampla:

```html+django
{% my_tag 123 "abcd" book.title warning=message|lower profile=user.profile %}
```

### Gan aon eisceachtaí a fhilleadh i mód TEMPLATE\_DEBUG\`

I leaganacha roimhe seo de Django, aon uair a bhí an socrú ```TEMPLATE_DEBUG` ``True```, filleadh in TemplateSyntaxError\` aon eisceacht a ardaíodh le linn rindreáil teimpléad (fiú eisceachtaí nach mbaineann le comhréiteach teimpléad) agus ath-ardaíodh. Rinneadh é seo d'fhonn faisnéis mhionsonraithe suíomh foinse teimpléad a sholáthar ar an leathanach dífhabhtú 500.

I Django 1.4, níl eisceachtaí fillte a thuilleadh. Ina áit sin, tá an eisceacht bhunaidh anótáilte leis an bhfaisnéis fhoinse. Ciallaíonn sé seo go bhfuil eisceachtaí a ghabháil ó rindreáil teimpléid comhsheasmhach anois beag beann ar luach ```TEMPLATE_DEBUG`, agus ní gá ``TemplateSyntaxError``` a ghabháil agus a dhífhilleadh d'fhonn earráidí eile a ghabháil.

### scagaire teimpléad `truncatechars`

Déanann an scagaire nua seo sreang a ghearradh nach mbeidh níos faide ná an líon sonraithe carachtair. Críochnaíonn teaghráin ghearrtha le seicheamh ellipsis inaistrithe (“...”). Féach an doiciméadú le haghaidh: tfilter: truncatechars le haghaidh tuilleadh sonraí.

### Clib teimpléad static\`

\<django.contrib.staticfiles\>Tá clib teimpléad nua `static` ag an aip contrib staticfiles \`chun tagairt a dhéanamh do chomhaid a shábháiltear leis an gcúltaca stórála \`\`STATICFILES\_STORAGE\`. \<staticfiles-from-cdn\>Úsáideann sé modh url an chúltaca stórála agus dá bhrí sin tacaíonn sé le gnéithe chun cinn mar: ref: comhaid a sheirbheáil ó sheirbhís scamall .

### Cúlcheann stórála `CachedStaticFilesStorage`

\<django.contrib.staticfiles\>Tá cúltaca `django.contrib.staticfiles.storage.cachedStaticFilesStorage` ag an aip contrib staticfiles \`anois a choscann na comhaid a shábhálann sé (agus an t-ordú bainistíochta: djadmin: \`collectstatic á rith) trí hash MD5 d'ábhar an chomhaid a chur leis an ainm comhaid. Mar shampla, sábhálfaí an comhad `css/styles.css` mar css/styles.55e7cbb9ba48.css\`

### Cosaint clickjacking simplí

Chuireamar lárearraí leis chun cosaint éasca a sholáthar in aghaidh [clickjacking](https://en.wikipedia.org/wiki/Clickjacking) ag baint úsáide as an gceanntásc `X-Frame-Options`. Níl sé cumasaithe de réir réamhshocraithe ar chúiseanna comhoiriúnachta ar gcúl, ach is cinnte go mbeidh tú ag iarraidh :doc: a chumasú \</ref/clickjacking/\> chun cabhrú leis an bpoll slándála sin a phlugáil le haghaidh brabhsálaithe a thacaíonn leis an gceanntásc.

### Feabhsuithe CSRF

Tá feabhsuithe éagsúla déanta againn ar ár ngnéithe CSRF, lena n-áirítear maisitheoir: func: ~django.views.decorators.csrf.ensure\_csrf\_cookie, ar féidir leo cabhrú le suíomhanna Ajax-heavy; cosaint d'iarratais PUT agus DELETE; agus an:setting: \`CSRF\_COOKIE\_PATH, socruithe is féidir le slándáil agus úsáideacht cosanta CSRF a fheabhsú. Féach na:doc: CSRF docs le haghaidh tuilleadh eolais \</ref/csrf\>.

### Scagadh tuairisc earráide

Chuireamar dhá mhaisitheoir feidhm leis, :func: ~django.views.decorators.debug.sensitive\_variables agus:func: ~django.views.decorators.debug.sensitive\_post\_parameters, chun na hathróga áitiúla agus paraiméadair POST a dheimhniú a d'fhéadfadh faisnéis íogair a bheith ann agus ba chóir iad a scagadh as tuarascálacha earráide.

Déantar gach paraiméadar POST a scagadh go córasach anois as tuarascálacha earráide le haghaidh tuairimí áirithe (`login`, password\_reset\_confirm\`, password\_change\` agus `add_view` in:mod: django.contrib.auth.views, chomh maith le `user_change_password` san aip admin) chun faisnéis íogair a chosc mar shampla pasfhocail úsáideora.

\<custom-error-reports\>Is féidir leat an scagadh réamhshocraithe a shárú nó a shaincheapadh trí scríobh a:ref: scagaire saincheapaithe. \<filtering-error-reports\>Le haghaidh tuilleadh faisnéise féach na doiciméid ar:ref: Tuarascálacha earráide scagtha .

### Tacaíocht leathnaithe IPv6

Is féidir le Django 1.4 seoltaí IPv6 a láimhseáil níos fearr anois leis an réimse múnla nua:class: ~django.db.models.genericipAddressField, :class: ~django.forms.genericipAddressField agus na bailíoróir:data: ~django.core.validators.validate\_ipv46\_address agus:data: ~django.core.validators.validate\_ipv46\_address agus:data: ~django.core.validators.validate\_ipv46\_address agus:data: ~django.djan.go.core.validators.validate\_ipv6\_seolads.

### Comparáidí HTML i dtástálacha

Tá roinnt cúntóirí anois ag na bunaicmí in:mod: django.test chun HTML a chur i gcomparáid gan difríochtaí neamhábhartha i spás bán, luach/ordú argóintí agus dúnadh clibeanna féin-dhúnadh. Is féidir leat HTML a chur i gcomparáid go díreach leis na dearbhóidí nua:meth: ~django.test.simpletestCase.asserthtmlequal agus:meth: ~django.test.simpletestcase.asserthtmlNoteQual, nó an bhratach html=True\` a úsáid le:meth: ~django.test.simpletestCase.AssertAssertAssertAssertAssertAssertAssertAssertX \`agus:meth: \`~django.test.simpletestCase.assertNotContains chun tástáil a dhéanamh an bhfuil blúir HTML ar leith i bhfreagra an chliaint. \<assertions\>Féach doiciméadach:ref: dearbhóireachtaí le haghaidh tuilleadh eolais.

### Dhá teaghráin formáid dáta nua

Cuireadh dhá fhormáid nua: tfilter: dáta le húsáid i scagairí teimpléad, clibeanna teimpléad agus:doc: /topics/i18n/formatting:

- `e` \- ainm an chrios ama den réad dáta-ama tugtha
- -- uimhir na bliana ISO 8601

Déan cinnte do thoil do chuid comhad formáid saincheaptha a nuashonrú má \<custom-format-files\>tá e\` nó `` `i sreang formáide iontu. Mar shampla ní éalaigh formáid logánaithe na Spáinne roimhe seo ach an carachtar formáide `d ``:

```
DATE_FORMAT = r"j \de F \de Y"
```

Ach anois caithfidh sé éalú freisin `e` agus :

```
DATE_FORMAT = r"j \d\e F \d\e Y"
```

Le haghaidh tuilleadh faisnéise, féach an doiciméadach:tfilter: date.

### Mionghnéithe

Cuimsíonn Django 1.4 roinnt feabhsuithe níos lú ar fiú a thabhairt faoi deara:

- Stacktrace níos inúsáidte ar an leathanach teicniúil 500. Déantar frámaí sa rian cruach a thagann tagairt do chód creat Django a laghdú amach, agus cuirtear béim beagán ar fhrámaí sa chód feidhmchláir. Fágann an t-athrú seo go bhfuil sé níos éasca stacktrace a scanadh le haghaidh saincheisteanna i gcód feidhmchláir.
- [Tacaíocht tablespace](/ga/5.2/topics/db/tablespaces/) in PostgreSQL.
- Ainmneacha inoiriúnaithe le haghaidh: meth: ~django.template.library.simple\_tag.
- Sa doiciméadú, leathanach cabhrach: doc: léirmheas slándála' \</topics/security\>.
- Tá an fheidhm `django.contrib.auth.models.check_password` aistrithe chuig an modúl:mod: django.contrib.auth.hashers. Oibreoidh é a iompórtáil ón sean-áit fós, ach ba cheart duit d'allmhairí a nuashonrú.
- Tá rogha `--clear` anois ag an ordú bainistíochta: DjaDmin: collectstatic chun gach comhad ag an gceann scríbe a scriosadh sula ndéanfar na comhaid statacha a chóipeáil nó a nascadh.
- Is féidir anois daingneáin ina bhfuil tagairtí tosaigh a luchtú agus MySQL á n-úsáid agat le hinneall bunachar sonraí InnoDB.
- Cuireadh láimhseálaí nua 403 freagra leis mar 'django.views.defaults.permission\_denied'. Is féidir leat do láimhseálaí féin a shocrú trí luach: data: \`django.conf.urls.handler403 a shocrú. Féach an doiciméadú fao:ref: the 403 (HTTP Forbidden) view \<http\_forbidden\_view\>\`le haghaidh tuilleadh faisnéise.
- \<jslex\>Úsáideann an ordú:djaDmin: makemessages foclóir nua agus níos cruinne, :pypi: JSLEX , chun teaghráin inaistrithe a bhaint as comhaid JavaScript.
- Glacann an chlib teimpléad:ttag: trans argóint roghnach as anois chun a bheith in ann teaghrán aistriúcháin a aisghabháil gan é a thaispeáint ach athróg comhthéacs teimpléad a shocrú ina ionad.
- Tacaíonn an clib teimpléad:ttag: if \`anois le clásail \`\`{% elif%}\`.
- Má tá d'aip Django taobh thiar de sheachfhreastalaí, b'fhéidir go mbeadh an socrú nua:setting: SECURE\_PROXY\_SSL\_HEADER úsáideach duit. Réitíonn sé an fhadhb a bhaineann le do sheachfhreastalaí “ag ithe” an bhfíric gur tháinig iarratas isteach trí HTTPS. Ach bain úsáid as an socrú seo ach má tá a fhios agat cad atá á dhéanamh agat.
- Seoltar leagan nua, simple-théacs, den leathanach earráide inmheánach cód stádais HTTP 500 nuair a sheirbheáltar nuair:socrú: “Debug” `True` chuig an gcliant anois nuair a bhraitheann Django gur tháinig an t-iarratas i gcód JavaScript. (Úsáidtear is\_ajax () chuige seo.)

  Cosúil lena mhacasamhail HTML, tá bailiúchán píosaí éagsúla faisnéise ann faoi staid an fheidhmchláir.

  Ba chóir go mbeadh sé seo níos éasca léamh agus idirghníomhaíocht á dhifhabhtú le JavaScript taobh an chliaint.
- Cuireadh an rogha: rogha: makemessages --no-location leis.
- Athraigh cúltaca taisce `locmem` chun `pickle.highest_protocol` a úsáid chun comhoiriúnacht níos fearr leis na cúltaca taisce eile.
- Tacaíocht bhreise san ORM chun ceisteanna `SELECT` a ghiniúint ina bhfuil `DISTINCT ON`.

  Glacann an modh ````different () ```QuerySet```` anois le liosta roghnach d'ainmneacha réimse samhail. Má shonraítear é, ansin tá an ráiteas `DISTINCT` teoranta do na réimsí seo. Ní thacaítear leis seo ach i PostgreSQL.

  Le haghaidh tuilleadh sonraí, féach an doiciméadú le haghaidh: meth: ~django.db.models.query.queryset.Distinct.
- Cuirfidh an leathanach logála isteach riaracháin nasc athshocraithe pasfhocal má chuireann tú URL leis an ainm ``admin_password_reset'` i do `urls.py``, mar sin tá sé i bhfad níos éasca anois an mheicníocht athshocraithe pasfhocal ionsuite a phlugáil isteach agus é a chur ar fáil. Le haghaidh sonraí, féach:ref: auth\_password\_reset.
- Is féidir le cúltaca bunachar sonraí MySQL úsáid a bhaint as an ngné savepoint a chuirtear i bhfeidhm ag leagan MySQL 5.0.3 nó níos nuaí leis an inneall stórála InnoDB.
- Is féidir anois luachanna tosaigh a chur chuig na foirmeacha samhail atá mar chuid de fhoirmeacha samhail agus foirmeacha samhail inlíne araon mar a thugtar ar ais ó fheidhmeanna monarchan modelformset\_factory\` agus `inlineformset_factory` faoi seach díreach mar atá le foirmeacha rialta. Mar sin féin, ní bhaineann luachanna tosaigh ach le foirmeacha breise, i.e. iad siúd nach bhfuil ceangailte le samhail shampla atá ann cheana.
- \<django.contrib.sitemaps.Sitemap.protocol\>Is féidir leis an creat léarscáileanna láithreáin naisc HTTPS a láimhseáil anois ag baint úsáide as an tréith aicme nua:attr: SiteMap.protocol .
- Fo-aicme nua:class: Django.Test.SimpleTestCase de:class: UnitTest.TestCase atá níos éadroime ná: Class: Django.Test.TestCase agus cuideachta. Is féidir leis a bheith úsáideach i dtástálacha nach gá bunachar sonraí a bhualadh. Féach:ref: testcase\_hierarchy\_diagram .

## Athruithe neamh-chomhoiriúnacha ar ais i 1.4

### Tá socrú SECRET\_KEY ag teastáil

Déanann rith Django le socrú folamh nó eol:setting: SECRET\_KEY a dhíchumasú go leor de chosaintí slándála Django agus d'fhéadfadh leochaileachtaí iargúlta a fhorghníomhú cód a bheith mar thoradh air. Níor chóir aon suíomh Django a reáchtáil riamh gan a: socrú: SECRET\_KEY.

I Django 1.4, ag tosú Django le folamh: setting: SECRET\_KEY ardóidh `DeprecationWarning`. I Django 1.5, ardóidh sé eisceacht agus diúltóidh Django tosú. Déantar é seo a luasghéarú beagán ón ngnáthchosán mar gheall ar dhéine na n-iarmhairtí a bhaineann le Django a reáchtáil le no:setting: SECRET\_KEY.

### django.contrib.admin \`\`

Tá an aip riaracháin san áireamh ```django.contrib.admin ``seolta le fada le tacar réamhshocraithe comhaid statacha mar JavaScript, íomhánna agus bileoga stíle. Chuir Django 1.3 aip contrib nua ``django.contrib.staticfiles``` leis chun comhaid den sórt sin a láimhseáil ar bhealach cineálach agus sainmhínigh coinbhinsiúin do chomhaid statacha atá san áireamh in aipeanna.

Ag tosú i Django 1.4, leanann comhaid statacha an riaracháin an coinbhinsiún seo freisin, chun na comhaid a dhéanamh níos éasca a imscaradh. I leaganacha roimhe seo de Django, bhí sé coitianta freisin socrú ```ADMIN_MEDIA_PREFIX ``a shainiú chun díriú ar an URL ina gcónaíonn comhaid statacha an riaracháin ar fhreastalaí gréasáin. Tá an socrú seo caite anois agus tá an socrú níos ginearálta:setting: `STATIC_URL` ina ionad. Beidh Django ag súil anois go bhfaighidh tú na comhaid statacha riaracháin faoin URL ``<STATIC_URL>/admin/```.

Má d'úsáid tú conair URL do `ADMIN_MEDIA_PREFIX` roimhe seo (m.sh. `/ meáin/`) déan cinnte go bhfuil :an socrú:STATIC\_URL agus : socrú:STATIC\_ROOT cumraithe agus go bhfreastalaíonn do fhreastalaí gréasáin ar na comhaid sin i gceart. Leanann an freastalaí forbartha ag freastal ar na comhaid riaracháin díreach mar a bhí roimhe seo. Léigh an [comhaid statacha howto](/ga/5.2/howto/static-files/) le haghaidh tuilleadh sonraí.

Má tá do ADMIN\_MEDIA\_PREFIX\` socraithe ar fearann ar leith (m.sh. `http://media.example.com/admin/`), déan cinnte do shuíomh: STATIC\_URL a shocrú go dtí an URL ceart - mar shampla, `http://media.example.com/`.

> **Warning**
>
> Má tá tú ag brath go hiontach ar chonair na gcomhaid statacha riaracháin laistigh de chód foinse Django, beidh ort an cosán sin a nuashonrú. Bogadh na comhaid ó:file: django/contrib/admin/media/ chuig: file: django/contrib/admin/static/admin/.

### Brabhsálaithe tacaithe don riarachán

Ní raibh beartas soiléir ag Django maidir leis na brabhsálaithe a thacaíonn an aip riaracháin. Déanann ár mbeartas nua cleachtais atá ann cheana a fhoirmiú: Ba chóir go gcuirfeadh brabhsálaí YUI a Grád A eispéireas riaracháin lánfheidhmiúil a sholáthar, seachas suntasach Internet Explorer 6, nach dtacaítear leis a thuilleadh.

Scaoilte breis agus 10 mbliana ó shin, cuireann IE6 go leor teorainneacha ar fhorbairt gréasáin nua-aimsear Is iad impleachtaí praiticiúla an bheartais seo ná go bhfuil saor ó rannpháirtithe an riarachán a fheabhsú gan breithniú ar na teorainneacha seo.

Níl aon tionchar ag an mbeartas nua seo ar shuíomhanna a fhorbraíonn tú ag úsáid Django. Ní bhaineann sé ach leis an riarthóir Django. Thig leat aipeanna a fhorbairt atá comhoiriúnach le haon raon brabhsálaithe.

### Deilbhíní riaracháin bainte

Mar chuid d'iarracht feidhmíocht agus inúsáidteacht comhéadan sórtála liosta athraithe an riaracháin a fheabhsú agus:attr: cothrománach \`agus:attr: giu \<django.contrib.admin.ModelAdmin.filter\_horizontal\>irléidí \`ingearach\<django.contrib.admin.ModelAdmin.filter\_vertical\> “scagaire”, baineadh roinnt comhad deilbhín agus grúpaíodh ina dhá chomhad sprite.

Go sonrach: 'selector-add.gif\`\`, selector-addall.gif\`, selector-remove.gif\`, selector-removeall.gif\`, selector\_stacked-add.gif\` agus `selector_stacked-remove.gif`, selector\_stacked-remove.gif\` i selector-icons.gif\`; agus ``Cuireadh `arrow-up.gif`` agus `arrow-down.gif` le chéile ina `sorting-icons.gif`.

Má d'úsáid tú na deilbhíní sin chun an riarachán a shaincheapadh, ansin beidh ort do dheilbhíní féin a chur in ionad iad nó na comhaid a fháil ó scaoileadh roimhe seo.

### Ainmneacha ranga CSS i bhfoirmeacha riaracháin

Chun coinbhleachtaí le hainmneacha ranga CSS coitianta eile (m.sh. “cnaipe”) a sheachaint, chuireamar réimír (“field-”) le gach ainm ranga CSS a ghintear go huathoibríoch ó ainmneacha réimse na bhfoirme sna príomhfhoirmeacha riaracháin, foirmeacha inlíne cruachta agus cealla inlíne táblaí. Beidh ort an réimír sin a chur san áireamh i do bhileoga stíl saincheaptha nó i gcomhaid JavaScript má d'úsáid tú ainmneacha réimse simplí roimhe seo mar roghnóirí do stíleanna saincheaptha nó claochlú JavaScript.

### Comhoiriúnacht le sean-sonraí síni

D'athraigh Django 1.3 na meicníochtaí sínithe cripteagrafacha a úsáidtear i roinnt áiteanna i Django. Cé gur choinnigh Django 1.3 bacainní a ghlacfadh le hashes a tháirgtear ag na modhanna roimhe seo, baintear na fallbacks seo i Django 1.4.

Mar sin, má dhéanann tú uasghrádú go Django 1.4 go díreach ó 1.2 nó níos luaithe, féadfaidh tú píosaí áirithe sonraí a síníodh go cripteagrafach a chailltear/neamhbhailí ag baint úsáide as sean-mhodh. Chun é seo a sheachaint, bain úsáid as Django 1.3 ar dtús ar feadh tréimhse ama chun ligean do na sonraí sínithe dul in éag go nádúrtha. Tá na codanna atá buailte mionsonraithe thíos, le 1) na hiarmhairtí a bhaineann le neamhaird a dhéanamh ar an gcomhairle seo agus 2) an méid ama a theastaíonn uait chun Django 1.3 a rith chun na sonraí dul in éag nó go mbeidh siad neamhábhartha.

- Seiceáil sláine sonraí `contrib.sessions`

  - Iarmhairtí: Déanfar an t-úsáideoir logáil amach, agus caillfear sonraí seisiúin.
  - Tréimhse ama: Sainmhínithe ag:setting: SESSION\_COOKIE\_AGE.
- Hash athshocraithe pasfhocal `contrib.auth`

  - Iarmhairtí: Ní oibreoidh naisc athshocraithe pasfhocal ó roimh an uasghrádú.
  - Tréimhse ama: Sainmhínithe ag `PASSWORD_RESET_TIMEOUT_DAYS`.

Hais a bhaineann le foirmeacha: tá saolré i bhfad níos giorra acu seo agus níl siad ábhartha ach amháin don fhuinneog ghairid ina bhféadfadh úsáideoir foirm arna giniúint ag an gcás Django réamh-uasghrádaithe a líonadh agus iarracht a dhéanamh í a chur isteach sa chás uasghrádaithe Django:

- Foirm hash slándála `contrib.comments`

  - Iarmhairtí: Feicfidh an t-úsáideoir an earráid bailíochtaithe “Theip ar hash slándála.”
  - Tréimhse ama: An méid ama a bhfuil tú ag súil go dtógfaidh úsáideoirí foirmeacha tráchta a líonadh.
- Hash slándála `FormWizard`

  - Iarmhairtí: Feicfidh an t-úsáideoir earráid faoin bhfoirm atá in éag agus seolfar ar ais chuig an gcéad leathanach den draoi, ag cailleadh na sonraí a iontráiltear go dtí seo.
  - Tréimhse ama: An méid ama a bhfuil tú ag súil go dtógfaidh úsáideoirí na foirmeacha atá buailte ag líonadh.
- Seiceáil CSRF

  - Nóta: Is fallback Django 1.1 é seo i ndáiríre, ní Django 1.2, agus ní bhaineann sé ach amháin má tá tú ag uasghrádú ó 1.1.
  - Iarmhairtí: Feicfidh an t-úsáideoir earráid 403 le haon fhoirm POST faoi chosaint CSRF.
  - Tréimhse ama: An méid ama a bhfuil súil agat leis an úsáideoir a ghlacadh chun foirmeacha den sórt sin a líonadh.
- Seicheamh uasghrádaithe pasfhocal úsáideora `contrib.auth`

  - Iarmhairtí: Déanfar pasfhocal gach úsáideora a nuashonrú go hash pasfhocal níos láidre nuair a bheidh sé scríofa chuig an mbunachar sonraí i 1.4. Ciallaíonn sé seo má dhéanann tú uasghrádú go 1.4 agus ansin caithfidh tú íosghrádú go 1.3, ní bheidh leagan 1.3 in ann na pasfhocail nuashonraithe a léamh.
  - Leigheas: Socraigh: Socrú: PASSWORD\_HASHERS chun do hashing pasfhocal bunaidh a úsáid nuair a dhéanann tú uasghrádú ar dtús go 1.4. Tar éis duit a dhearbhú go n-oibríonn d'aip go maith le Django 1.4 agus ní bheidh ort rolladh ar ais go 1.3, cumasaigh na hashes pasfhocal nua.

### `django.contrib.flatpages`

Ag tosú i 1.4, ní chuireann an:class: ~django.contrib.flatpages.middleware.flatPageFallBackMiddleware ach slash rianaithe agus atreoraíonn sé má thagraíonn an URL mar thoradh air sin do leathanach cothrom atá ann cheana. Mar shampla, iarraidh `/notaflatpageoravalidurl` i leagan roimhe seo, atreoródh sé chuig `/notaflatpageoravalidurl/`, a d'ardódh 404 ina dhiaidh sin. Ag iarraidh `/notaflatpageoravalidurl` anois ardófar 404 láithreach.

Chomh maith leis sin, tá athatreoruithe ar ais ag flatpages buan anois (le 301 cód stádais), chun iompraíocht: class: ~django.middleware.common.commonMiddleware a mheaitseáil.

### Sraitheadh de:class: ~datetime.datetime agus:class: ~datetime.time

Mar thoradh ar thacaíocht crios ama, agus de réir sonraíocht ECMA-262, rinneamar athruithe ar an serializer JSON:

- Cuimsíonn sé an crios ama le haghaidh rudaí dáta-am feasacha. Ardaíonn sé eisceacht maidir le rudaí ama feasacha.
- Cuimsíonn sé milleasoicind le haghaidh rudaí dáta agus ama. Tá roinnt caillteanas cruinneas ann fós, toisc go stórálann Python micrea-soicind (6 dhigit) agus ní thacaíonn JSON ach le milleasoicind (3 dhigit). Mar sin féin, tá sé níos fearr ná microsoicind a dhiúscairt go hiomlán.

D'athraíomar an serializer XML chun an formáid ISO8601 a úsáid le haghaidh dáta-amanna. Úsáidtear an litir T \`\`chun an chuid dáta a scaradh ón gcuid ama, in ionad spás. Tá faisnéis crios ama san áireamh sa fhormáid \`\`\[+-\] HH:MM\`.

Cé go n-úsáideann na sraitheoirí na formáidí nua seo anois agus iad ag cruthú daingneáin, is féidir leo daingneáin a úsáideann an seanfhormáid a luchtú fós.

### Athraíodh `supports_timezone` go `False` do SQLite

Ba é `True` an ghné bhunachar sonraí `supports_timezone` do SQLite. Go deimhin, má shábháil tú réad am dáta feasach, stóráil SQLite teaghrán a chuimsigh fritháireamh UTC. Mar sin féin, rinneadh neamhaird den fhritháireamh seo agus an luach á luchtú ar ais ón mbunachar sonraí, rud a d'fhéadfadh na sonraí a éilliú.

I gcomhthéacs tacaíochta crios ama, athraíodh an bratach seo go False, agus stóráiltear amanna dáta anois gan faisnéis crios ama i SQLite. Nuair: Setting: Is é USE\_TZ False\`, má dhéanann tú iarracht réad dáta-ama feasach a shábháil, ardaíonn Django eisceacht.

### `MySQLDB`-eisceachtaí sonracha

D'ardaigh cúltaca MySQL go stairiúil `MySQLDB.OperationalError` nuair a spreag ceist eisceacht. Tá an fabht seo socraithe againn, agus argaimid anois:exc: django.db.databaseError ina ionad. Má bhí tú ag tástáil le haghaidh MySQLDB.OperationalError\`, beidh ort do chlásal except a nuashonrú.

### Suíomh snáithe nasc bunachar sonraí

Bhí rudaí DatabaseWrapper\` (ie na rudaí nasc dá dtagraíonn `django.db.connection` agus ```django.db.connexions ["some_alias"] ``) a bhí snáith-áitiúil. Is rudaí domhanda iad anois d'fhonn iad a roinnt idir snáitheanna iolracha. Cé go bhfuil na rudaí ceangail aonair domhanda anois, tá an foclóir ``django.db.connections` a thagraíonn na rudaí sin fós snáithe áitiúil. Dá bhrí sin mura n-úsáideann tú ach an ORM nó ``DatabaseWrapper.cursor ()``` ansin tá an t-iompar fós mar an gcéanna le roimhe seo. Tabhair faoi deara, áfach, nach dtagraíonn django.db.connection\` go díreach don réad réamhshocraithe `DatabaseWrapper` níos mó agus gur seachfhreastalaí é anois chun rochtain a fháil ar thréithe an réada sin. Más gá duit rochtain a fháil ar an réad iarbhír `DatabaseWrapper`, bain úsáid as `django.db.connexions [DEFAULT_DB_ALIAS]` ina ionad.

Mar chuid den athrú seo, cumasaítear gach nasc bunúsach SQLite anois le haghaidh comhroinnt snáithe féideartha (tríd an tréith `Check_SAME_Thread=False` a rith le ```pysqlite ``). Caomhníonn ``DatabaseWrapper``` an t-iompar roimhe seo, áfach, trí chomhroinnt snáithe a dhíchumasú de réir réamhshocraithe, mar sin ní dhéanann sé difear d'aon chód atá ann cheana atá ag brath amháin ar an ORM nó ar\`\` DatabaseWrapper.cursor () .

Faoi dheireadh, cé go bhfuil sé indéanta anois naisc a rith idir snáitheanna, ní dhéanann Django aon iarracht rochtain ar an gcúltaca bunúsach a shioncronú. Sainmhínítear iompar comhréireachta ag an gcur chun feidhme cúltaca bunúsach. Seiceáil a gcáipéisíocht le haghaidh sonraí.

### Socrú `COMMENTS_BANNED_USERS_GROUP`

Tacaigh tuairimí Django go stairiúil le tuairimí grúpa úsáideoirí speisialta a eisiamh, ach níor dhoiciméadaíomar an ghné riamh i gceart agus níor fhorfheidhmigh muid an eisiamh i gcodanna eile den aip mar na clibeanna teimpléid. Chun an fhadhb seo a shocrú, bhain muid an cód ón rang beatha.

Má tá tú ag brath ar an ngné agus má theastaíonn uait an sean-iompar a chur ar ais, bain úsáid as bainisteoir samhail tráchta saincheaptha chun an grúpa úsáideoirí a eisiamh, mar seo:

```
from django.conf import settings
from django.contrib.comments.managers import CommentManager

class BanningCommentManager(CommentManager):
    def get_query_set(self):
        qs = super().get_query_set()
        if getattr(settings, "COMMENTS_BANNED_USERS_GROUP", None):
            where = [
                "user_id NOT IN (SELECT user_id FROM auth_user_groups WHERE group_id = %s)"
            ]
            params = [settings.COMMENTS_BANNED_USERS_GROUP]
            qs = qs.extra(where=where, params=params)
        return qs
```

Sábháil an bainisteoir samhail seo i d'aip tráchta saincheaptha (m.sh., i my\_comments\_app/managers.py\`) agus cuir do mhúnla aip trácht saincheaptha leis:

```
from django.db import models
from django.contrib.comments.models import Comment

from my_comments_app.managers import BanningCommentManager

class CommentWithTitle(Comment):
    title = models.CharField(max_length=300)

    objects = BanningCommentManager()
```

### Socruithe `` `IGNORABLE_404_STARTS `` agus `IGNORABLE_404_ENDS`

Go dtí Django 1.3, bhí sé in ann roinnt URLanna a eisiamh ó Django's:doc: 404 tuairisciú earráid trí réamhréamhacha a chur le `IGNORABLE_404_STARTS` agus iarmhairtí le IGNORABLE\_404\_ENDS\`\`\</howto/error-reporting\>.

I Django 1.4, cuirtear an dá shocrú seo in ionad:setting: IGNORABLE\_404\_URLS, ar liosta de nathanna rialta tiomsaithe é. Ní sheolfaidh Django ríomhphost le haghaidh earráidí 404 ar URLanna a mheaitseálann le haon cheann acu.

Ina theannta sin, bhí roinnt luachanna réamhshocraithe a bhí sách treallach ag na socruithe roimhe seo:

```
IGNORABLE_404_STARTS = ("/cgi-bin/", "/_vti_bin", "/_vti_inf")
IGNORABLE_404_ENDS = (
    "mail.pl",
    "mailform.pl",
    "mail.cgi",
    "mailform.cgi",
    "favicon.ico",
    ".php",
)
```

Ní ról Django é cinneadh a dhéanamh an bhfuil rannán `/cgi-bin/` oidhreachta nó ```favicon.ic` ag do shuíomh Gréasáin. Mar thoradh air sin, tá na luachanna réamhshocraithe de:setting: `IGNORABLE_404_URLS`, ``IGNORABLE_404_STARTS```, agus `IGNORABLE_404_ENDS` folamh anois.

Má tá `IGNORABLE_404_STARTS` nó `IGNORABLE_404_ENDS` saincheaptha agat, nó más mian leat an seanluach réamhshocraithe a choinneáil, ba cheart duit na línte seo a leanas a chur i do chomhad socruithe:

```
import re

IGNORABLE_404_URLS = (
    # for each <prefix> in IGNORABLE_404_STARTS
    re.compile(r"^<prefix>"),
    # for each <suffix> in IGNORABLE_404_ENDS
    re.compile(r"<suffix>$"),
)
```

Ná déan dearmad éalú le carachtair a bhfuil brí speisialta acu i léiriú rialta, mar shampla tréimhsí.

### Leathnaithe cosaint CSRF go PUT agus DELETE

Roimhe seo, thug Django's:doc: Cosaint CSRF \`cosaint ar fáil ach amháin i gcoinne iarratais POST. \</ref/csrf/\> Ós rud é go bhfuil úsáid modhanna PUT agus DELETE i bhfeidhmchláir AJAX ag éirí níos coitianta, déanaimid cosaint anois gach modh nach bhfuil sainmhínithe mar shábháilte ag: rfc: \`2616 \- ie, déanaimid díolmhaithe GET, HEAD, OPTIONS agus TRACE, agus cuirimid cosaint i bhfeidhm ar gach rud eile.

\<csrf-ajax\>Má tá modhanna PUT nó DELETE á úsáid agat in iarratais AJAX, féach le do thoil: ref: treoracha maidir le AJAX agus CSRF a úsáid .

### Glacann amharc athshocraithe pasfhocal anois le `subject_template_name`

Glacann an radharc `password_reset` i django.contrib.auth\` anois le paraiméadar `subject_template_name`, a chuirtear chuig an bhfoirm sábhála pasfhocal mar argóint eochairfhocal. Má tá an dearcadh seo á úsáid agat le foirm athshocraithe pasfhocal saincheaptha, ansin beidh ort a chinntiú go nglacann modh save () d'fhoirm leis an argóint eochairfhocal seo.

### `django.core.template_loaders`

Ba ailias é seo ar `django.template.loader` ó 2005, agus tá sé bainte againn gan rabhadh a astú mar gheall ar fhad an díghníomhaíochta. Má thagraíonn do chód seo fós, bain úsáid as `django.template.loader` ina ionad.

### `Django.db.models.fields.urlfield.verify_exists`

Baineadh an fheidhmiúlacht seo mar gheall ar shaincheisteanna feidhmíochta agus slándála nach féidir Ba chóir aon úsáid atá ann cheana de verify\_exists\` a bhaint.

### `Django.core.files.storage.storage.open`

Úsáidtear an modh oscailte\` den rang Stórála bonn chun paraiméadar doiléir `mixin` a thógáil a ligean duit bunaicmí an réada comhaid a fhilleadh a athrú go dinimiciúil. Tá sé seo bainte. Sa chás annamh a bhraith tú ar an bparaiméadar `mixin`, is féidir leat an rud céanna a bhaint amach go héasca tríd an modh oscailt a shárú, mar seo:

```
from django.core.files import File
from django.core.files.storage import FileSystemStorage

class Spam(File):
    """
    Spam, spam, spam, spam and spam.
    """

    def ham(self):
        return "eggs"

class SpamStorage(FileSystemStorage):
    """
    A custom file storage backend.
    """

    def open(self, name, mode="rb"):
        return Spam(open(self.path(name), mode))
```

### Úsáideann deserializer YAML anois yaml.safe\_load \`\`

Tá `yaml.load` in ann aon réad Python a thógáil, a d'fhéadfadh forghníomhú cód treallach a spreagadh má phróiseálann tú doiciméad YAML a thagann ó fhoinse neamhiontaofa. Níl an ghné seo riachtanach le haghaidh deserializer YAML Django, a bpríomhúsáid ná daingneáin atá comhdhéanta de rudaí simplí a luchtú. Cé gur sonraí iontaofa iad daingneáin, úsáideann an deserializer YAML anois yaml.safe\_load le haghaidh slándála breise.

### Tá an bratach httponly ag fianáin seisiúin anois de réir réamhshocraithe

Cuimsíonn fianáin seisiúin an tréith httponly anois de réir réamhshocraithe chun cabhrú le tionchar ionsaithe féideartha XSS a laghdú. Mar thoradh ar an athrú seo, níl sonraí fianán seisiúin, lena n-áirítear ```sessionid`, inrochtana a thuilleadh ó JavaScript i go leor brabhsálaithe. Le haghaidh comhoiriúnacht dhian ar chúl, bain úsáid as ``SESSION_COOKIE_HTTPONLY = False``` i do chomhad socruithe.

### Ní éalaíonn an scagair:tFilter: urlize gach URL a thuilleadh

Nuair a bhíonn seicheamh `%xx` i URL, áit a bhfuil dhá dhigit heicseachadúil iad `xx`, glacann: tfilter: urlize anois go bhfuil an URL éalaithe cheana féin agus nach gcuireann sé URL ag éalú arís. Tá sé seo mícheart do URLanna a bhfuil seicheamh `%xx` ag a bhfoirm neamh-luaite, ach ní dócha go dtarlóidh URLanna den sórt sin san fhiáin, toisc go ndéanfadh siad mearbhall ar bhrabhsálaithe freisin.

### `AssertTemplateUsed` agus `AssertTemplateNoTused` mar bhainisteoir comhthéacs

Is féidir anois a sheiceáil an úsáideadh teimpléad laistigh de bhloc cód le: meth: ~django.test.simpletestcase.assertTemplateUsed agus:meth: ~django.test.simpletestcase.assertTemplateNotUsed. Agus is féidir iad a úsáid mar bhainisteoir comhthéacs:

```
with self.assertTemplateUsed("index.html"):
    render_to_string("index.html")
with self.assertTemplateNotUsed("base.html"):
    render_to_string("index.html")
```

\<assertions\>Féach in:ref: dearbhú doiciméadú le haghaidh tuilleadh eolais.

### Naisc bhunachar sonraí tar éis an tsraith tástála

Ní dhéanfaidh an reathaí tástála réamhshocraithe na naisc bhunachar sonraí a athchóiriú a thuilleadh tar éis na tástálacha a chur i gcrích. Cuireann sé seo cosc ​​ar an mbunachar sonraí táirgeachta a bheith faoi lé snáitheanna féideartha a bheadh ​​fós ar siúl agus iarracht a dhéanamh naisc nua a chruthú.

Má bhí do chód ag brath ar naisc leis an mbunachar sonraí táirgeachta atá á chruthú tar éis tástálacha a fhorghníomhú, ansin is féidir leat an t-iompar roimhe seo a chur ar ais trí “DjangoTestRunner” a fho-aicmiú agus a mhodh teardown\_databases () a shárú.

### \<help\>Aschur de:djadmin: cabhair manage.py \`

: djadmin: manage.py cabhair \<help\>\`grúpaíonn orduithe atá ar fáil anois de réir feidhmchláir. Má bhí tú ag brath ar aschur an ordaithe seo - má dhéantar é a pháirseáil, mar shampla - ansin beidh ort do chód a nuashonrú. \<help\>Chun liosta de na horduithe bainistíochta go léir atá ar fáil a fháil i script, bain úsáid as: djadmin: manage.py help --orders ina ionad.

### Clib teimpléad leathnaíon\`

Roimhe seo, d'úsáid an clibe:ttag: extens modh buggy chun argóintí a pháirseáil, rud a d'fhéadfadh a bheith mar thoradh air go bhféadfadh sé argóint a mheas go míearrach mar shreang litriúil nuair nach raibh sé. Úsáideann sé anois `parser.compile_filter`, cosúil le clibeanna eile.

Níl inmheánacha an chlib mar chuid den API cobhsaí oifigiúil, ach ar mhaithe le nochtadh iomlán, an ExtendsNode. Tá athrú tagtha ar an sainmhíniú \_\_init\_\_\`, rud a d'fhéadfadh aon chlibeanna saincheaptha a úsáideann an rang seo a bhriseadh.

### Ní oibríonn luchtú roinnt daingneáin neamhiom

Roimh 1.4, cuireadh luach réamhshocraithe isteach le haghaidh réada daingneáin a raibh dáta nó dáta dáta ar leith in easnamh orthu nuair a socraíodh auto\_now nó auto\_now\_add don réimse. Ba rud é seo nár cheart a bheith ag obair, agus i 1.4 theipfidh ar lódáil daingneáin neamhiomlána den sórt sin. Toisc gur allmhairí amh iad daingneáin, ba cheart go sonrófaí go sainráite iad na luachanna réimse uile, beag beann ar na roghanna allamuigh ar an tsamhail.

### Multithreading Freastalaí Forbartha

Tá an freastalaí forbartha ilshreathaithe anois de réir réamhshocraithe. Úsáid an rogha:option: runserver --nothreading chun úsáid snáithe a dhíchumasú sa fhreastalaí forbartha:

```shell
django-admin.py runserver --nothreading
```

### Díchumasaithe tréithe i marcáil nuair a shocraítear modh sábhá

Roimh Django 1.4, cuireadh tréithe san áireamh in aon aschur marcála beag beann ar shuíomh modh sábháilte an scagaire. Le leagan\> 2.1 de leabharlann Python-Markdown, cuireadh rogha enable\_attributs leis. Nuair a chuirtear an argóint sábháilte chuig an scagaire marcdown, socraítear na roghanna `safe_mode=true` agus enable\_attributes=false araon. Má úsáideann tú leagan de leabharlann Python-Markdown níos lú ná 2.1, eisítear rabhadh go bhfuil an t-aschur neamhchinnte.

### Filleann FormMixin get\_initial foclóir sonrach don eocht

I Django 1.3, bhí an modh `get_initial` den range:class: django.views.generic.edit.formMixin ag tabhairt ar ais an bhfoclóir ranga `initial`. Socraíodh é seo chun cóip den fhoclóir seo a thabhairt ar ais, mar sin is féidir le cásanna foirme a gcuid sonraí tosaigh a mhodhnú gan dul isteach leis an athróg aicme.

## Gnéithe atá díscríofa i 1.4

### Seanstíleanna chun glaoch ar `cache_page` maisitheoir

Tá roinnt bealaí oidhreachta chun glaoch a ghlao:func: ~django.views.decorators.cache.cache\_page a dhíchur. Féach an doiciméadú le do thoil maidir leis an mbealach ceart chun an maisitheoir seo a úsáid.

### Tacaíocht do leaganacha PostgreSQL níos sine ná 8.2

Thit Django 1.3 tacaíocht do leaganacha PostgreSQL níos sine ná 8.0, agus mholamar leagan níos déanaí a úsáid mar gheall ar fheabhsuithe feidhmíochta agus, níos tábhachtaí fós, bhí deireadh na dtréimhsí tacaíochta suas sruth do 8.0 agus 8.1 gar (Samhain 2010).

Tógann Django 1.4 an beartas sin níos faide agus leagann sé 8.2 mar an leagan íosta PostgreSQL a thacaíonn sé go hoifigiúil.

### Déantar eisceachtaí iarratais logáilte anois i

Nuair a chuireamar leis: doc: tacaíocht logaithe' i Django i 1.3, aistríodh an tacaíocht ríomhphoist earráid riaracháin isteach in:class: \`django.utils.log.adminemailHandler \</topics/logging/\>, ceangailte leis an logger ```'django.request'`. D'fhonn iompar seanbhunaithe ríomhphoist earráide a choinneáil, níor glaoíodh ar an logálaí ``'django.request'` ach nuair:setting: `DEBUG` `False```.

Chun solúbthacht logála earráide le haghaidh iarratais a mhéadú, tugtar an logálaí django.request'\` anois beann ar an luach de:setting: DEBUG, agus tá an comhad socruithe réamhshocraithe do thionscadail nua anois scagaire ar leithligh ceangailte la:class: Django.utils.log.adminemailHandler chun ríomhphoist earráide riaracháin a chosc i mód DEBUG:

```
LOGGING = {
    # ...
    "filters": {
        "require_debug_false": {
            "()": "django.utils.log.RequireDebugFalse",
        }
    },
    "handlers": {
        "mail_admins": {
            "level": "ERROR",
            "filters": ["require_debug_false"],
            "class": "django.utils.log.AdminEmailHandler",
        }
    },
}
```

Má cruthaíodh do thionscadal roimh an athrú seo, ní chuimsíonn do shuíomh: 'LOGGING' an scagaire nua seo. D'fhonn comhoiriúnacht cúil a choinneáil, braithfidh Django nach bhfuil aon chuid filters' \`\`i do chumraíocht láimhseála \`\`\`mail\_admins' agus cuirfidh sé an scagaire seo duit go huathoibríoch agus eiseoidh sé rabhadh dí-dhíothaithe. Beidh sé seo ina rabhadh diúltaithe i Django 1.5, agus i Django 1.6 bainfear an shim comhoiriúnachta cúil go hiomlán.

Díchumasóidh aon eochair `'filters'` faoin láimhseálaí mail\_admins' an rabhadh shiam comhoiriúnachta cúil seo agus díghníomhú.

### `django.conf.urls.defaults`

Go dtí Django 1.3, bhí na feidhmeanna ```include () ``, `patrons ()```, agus ```url () ``, móis:data: `~django.conf.urls.handler404` agus:data: `~django.conf.urls.deftsaults``` lonnaithe i modúl `django.conf.urls.deftsaults`.

I Django 1.4, tá siad ina gcónaí in:mod: django.conf.urls.

### `django.contrib.databrowse`

Níor chonaic Databrowse forbairt ghníomhach le tamall anuas, agus ní thaispeánann sé seo aon chomhartha athraithe. Bhí moladh ann maidir le tionscadal GSOC \_ chun feidhmiúlacht databrowse a chomhtháthú sa riarachán, ach níor rinneadh aon dul chun cinn. Cé go bhfuil Databrowse imithe, is féidir feabhsú ar django.contrib.admin a sholáthraíonn tacar gné den chineál céanna fós.

Tá an cód a chumhachtaíonn Databrowse ceadúnaithe faoi na téarmaí céanna le Django féin, mar sin tá sé ar fáil le duine aonair nó grúpa é a ghlacadh mar thionscadal tríú páirtí.

### django.core.bainist.setup\_environment \`\`

Athraigh an fheidhm seo `sys.path` go sealadach d'fhonn an t-eolaire tuismitheora “tionscadal” a dhéanamh in-iompórtáilte faoin sean-leagan amach flat:djadmin: startproject. Tá an fheidhm seo imithe anois, mar ní theastaíonn a réamhshocruithe cosáin a thuilleadh leis an manage.py nua agus leagan amach tionscadail réamhshocraithe.

Níor doiciméadaíodh an fheidhm seo riamh ná mar chuid den API poiblí, ach moladh go forleathan é le húsáid chun “timpeallacht Django” a bhunú do script úsáideora. Ba chóir na húsáidí seo a chur in ionad trí athróg timpeallachta: envvar: DJANGO\_SETTINGS\_MODULE a shocrú nó úsáid: func: django.conf.settings.configure.

### `django.core.bainistéireach.execute_manager`

D'úsáid manage.py\` an fheidhm seo roimhe seo chun ordú bainistíochta a fhorghníomhú. Tá sé comhionann le `django.core.management.execute_from_command_line`, ach amháin go nglaonn sé ar ```setup_environment ``ar dtús, atá díscoite anois. Dá bhrí sin, tá `execute_manager``` díluanta freisin; is féidir `execute_from_command_line` a úsáid ina ionad. Níl aon cheann de na feidhmeanna seo a dhoiciméadú mar chuid den API poiblí, ach teastaíonn cosán díréireachta mar gheall ar úsáid i gcomhaid manage.py atá ann cheana.

### `is_safe` agus `needs_autoescape` tréithe scagairí teimpléad

Sainmhíníonn dhá bhratach, `is_safe` agus `needs_autoescape`, conas a idirghníomhaíonn gach scagaire teimpléad le hiompar éalaithe uathoibríoch Django. Ba ghnách iad a bheith ina thréithe den fheidhm scagaire:

```
@register.filter
def noop(value):
    return value

noop.is_safe = True
```

\<django.template.defaultfilters.stringfilter\>Mar sin féin, ba chúis leis an teicníc seo roinnt fadhbanna i dteannta le maisitheoirí, go háirithe: func: @stringfilter. \<django.template.Library.filter\>Anois, is argóintí eochairfhocal iad na bratacha de:meth: @register .filter:

```
@register.filter(is_safe=True)
def noop(value):
    return value
```

\<filters-auto-escaping\>Féach: tagairt: scagairí agus éalú uathoibríoch le haghaidh tuilleadh faisnéise.

### Leathnú cárta fiáin ar ainmneacha iarratais i `INSTALLED_APPS`

Go dtí Django 1.3, ghlac: INSTALLED\_APPS le cártaí fiáine in ainmneacha iarratais, cosúil le `django.contrib.*`. \<package\>Rinneadh an leathnú trí chur i bhfeidhm bunaithe ar chóras comhaid “ó allmhairiú\*”. Ar an drochuair, ní féidir é seo a dhéanamh go hiontaofa.

Ní dhoiciméadaíodh an t-iompar seo riamh. Ós rud é go bhfuil sé neamhpythonic, baineadh é i Django 1.4. Má bhraith tú air, ní mór duit do chomhad socruithe a chur in eagar chun d'iarratais go léir a liostáil go sainráite.

### Athainmnigh `HttpRequest.Raw_Post_Data` go `HttpRequest.body`

Ainmníodh an tréith seo go mearbhall ```HttpRequest.raw_post_data ``, ach chuir sé ar fáil i ndáiríre corp an iarratais HTTP. Athainmníodh é go `HttpRequest.body ``, agus tá ``HttpRequest.Raw_Post_Data``` díluaite.

### Socrú fabht django.contrib.sitemaps le himpleachtaí feidhmíochta féideartha

I leaganacha roimhe seo, rinneadh réada `Paginator` a úsáideadh i ranganna léarscáileanna suímh a thaisceadh, rud a d'fhéadfadh seanléarscáileanna láithreáin a bheith mar thoradh air. Bhaineamar an taisceadh as, mar sin cruthaíonn gach iarratas chuig léarscáil an tsuímh réad Paginator nua agus glaonn sé an modh [`items()`](/ga/5.2/ref/contrib/sitemaps/#django.contrib.sitemaps.Sitemap.items) den `fo-aicme léarscáil an láithreáin`. Ag brath ar a bhfuil á dhéanamh ag do mhodh `míreanna()`, d'fhéadfadh tionchar diúltach a bheith aige seo ar fheidhmíocht. Chun an tionchar feidhmíochta a mhaolú, smaoinigh ar an [creat taisce](/ga/5.2/topics/cache/) a úsáid laistigh d'fho-aicme `Mapa Láithreáin`.

### Leaganacha de Python-Markdown níos luaithe ná 2.1

Ní thacaíonn leaganacha de Python-Markdown níos luaithe ná 2.1 leis an rogha tréithe a dhíchumasú. Mar shaincheist slándála, ní thacóidh an aip contrib marcála le leaganacha níos luaithe den leabharlann seo i 1.5 faoi amlíne díscrúdaithe luathaithe.
