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

*26 Feabhra, 2013*

Fáilte go dtí Django 1.5!

Clúdaíonn na nótaí scaoilte seo na:ref: gnéithe nua \<whats-new-1.5\>, chomh maith le roinnt athruithe: ref: athruithe neamh-chomhoiriúnacha ar ais\<backwards-incompatible-1.5\> beidh tú ag iarraidh a bheith ar an eolas fúthu agus tú ag uasghrádú ó Django 1.4 nó leaganacha níos sine. \<deprecated-features-1.5\>Tá roinnt gnéithe titim againn freisin, atá mionsonraithe in:ref: ár bplean díghabhála \<deprecation-removed-in-1.5\>, 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.5 an [samhail Úsáideora inchumraithe](#configurable-user-model). Roimh Django 1.5, cuireadh iallach ar iarratais a bhí ag iarraidh creat auth Django a úsáid (:mod: django.contrib.auth) sainmhíniú Django ar “úsáideoir” a úsáid. I Django 1.5, is féidir leat an tsamhail ```Úsáideoir ``a mhalartú anois le haghaidh ceann a scríobhann tú féin. D'fhéadfadh sé seo a bheith ina síneadh simplí ar an tsamhail ``Úsáideoir ``atá ann cheana - mar shampla, d'fhéadfá réimse ID Twitter nó Facebook a chur leis -- nó d'fhéadfá ceann saincheaptha go hiomlán do do shuíomh a chur in ionad an ``Úsáideoir```.

Is é Django 1.5 an chéad eisiúint freisin le [tacaíocht Python 3](#python-3-support)! Táimid ag lipéadú ar an tacaíocht seo “turgnamhach” toisc nach measaimid go fóill go bhfuil sé réidh le táirgeadh, ach tá gach rud i bhfeidhm duit tosú ag iompar d'aipeanna chuig Python 3. Tacóidh ár gcéad eisiúint eile, Django 1.6, le Python 3 gan áirithintí.

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

- Glacann [tacaíocht chun fothacar de réimsí an mhúnla a shábháil](#support-for-saving-a-subset-of-model-s-fields) \- [`Model.save()`](/ga/6.1/ref/models/instances/#django.db.models.Model.save) anois le argóint \`\` update\_fields\`\`, rud a ligeann duit na réimsí a shonrú scríofa ar ais chuig an mbunachar sonraí nuair a ghlaonn tú ar `save()`. Is féidir leis seo cabhrú in oibríochtaí ard-concurrency, agus féadann sé feidhmíocht a fheabhsú.
- Tacaíocht níos fearr le haghaidh freagraí sruthú \<#explicit-streaming-responses\>\`\_ tríd an rang freagartha nua:class: ~django.http.StreamInghttPresponse.
- Tacaíonn [GeodJango](#geodjango) anois le PostGIS 2.0.
- ... agus níos mó; [féach thíos](#what-s-new-in-django-1-5).

Nuair is féidir déanaimid iarracht gnéithe nua a thabhairt isteach ar bhealach atá comhoiriúnach siar le [ár mbeartas cobhsaíochta API](/ga/6.1/misc/api-stability/). Mar a bhí le heisiúintí roimhe seo, áfach, long Django 1.5 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.

Gné scoite amháin is fiú a thabhairt faoi deara ná an t-aistriú go clib “stíl nua”: ttag: url. Roimh Django 1.3, léiríníodh comhréir mar ```{% url myview%} `go mícheart (mheas Django gur ainm liteartha radharc é ``"myview"`, ní athróg teimpléad darb ainm ``myview```). Thug Django 1.3 agus thuas an comhréir `{% load url ón todhchaí%}` isteach chun an t-iompar ceartaithe a thabhairt isteach ina bhfeictear `myview` mar athróg.

Is é an toradh a bhaineann leis seo ná mura bhfuil tú ag úsáid `{% load url from the future%}` i do theimpléid, beidh ort clibeanna mar `{% url myview%}` a athrú go `{% url “myview”%}`. Má bhí t\*\* ag baint úsáide as `{% load url ón todhchaí%}` is féidir leat an líne sin a bhaint faoi Django 1.5

## Comhoiriúnacht Python

Éilíonn Django 1.5 Python 2.6.5 nó os a chionn, cé go molaimid\*\* go hard\*\* Python 2.7.3 nó os a chionn. Tá tacaíocht do Python 2.5 agus thíos titim.

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.6 nó níos nuaí mar a leagan réamhshoc Má tá Python 2.5 á úsáid agat fós, áfach, beidh ort cloí le Django 1.4 go dtí gur féidir leat do leagan Python a uasghrádú. Per:doc: ár mbeartas tacaíochta , leanfaidh \</internals/release-process\> Django 1.4 ag fáil tacaíochta slándála go dtí go scaoilfear Django 1.6.

Ní ritheann Django 1.5 ar eisiúint deiridh Jython, toisc nach dtacaíonn an eisiúint is déanaí de Jython le Python 2.6 faoi láthair. Mar sin féin, cuireann Jython scaoileadh alfa ar fáil faoi láthair le tacaíocht 2.7, agus tacaíonn Django 1.5 leis an scaoileadh alfa sin.

### Tacaíocht Python 3

Tugann Django 1.5 tacaíocht isteach do Python 3 - go sonrach, Python 3.2 agus os a chionn. Tagann sé seo i bhfoirm bonn cód\*\*aonair\*\*; ní gá duit leagan difriúil de Django a shuiteáil ar Python 3. Ciallaíonn sé seo gur féidir leat feidhmchláir a scríobh dírithe ar Python 2 amháin, ach Python 3, nó feidhmchláir aonair a thacaíonn leis an dá ardán.

Mar sin féin, táimid ag lipéadú ar an tacaíocht seo “turgnamhach” anois: cé go bhfuair sé tástáil fhairsing trínár sraith tástála uathoibrithe, níl mórán tástála fíor faighte aige. Rinneamar ár ndícheall chun fabhtanna a dhíchur, ach ní féidir linn a bheith cinnte go gclúdaigh muid gach úsáid féideartha de Django.

Níl roinnt gnéithe de Django ar fáil toisc go mbraitheann siad ar bhogearraí tríú páirtí nár iompraíodh chuig Python 3 fós, lena n-áirítear:

- cúltaca bunachar sonraí MySQL (ag brath ar MySQLDB)
- [`ImageField`](/ga/6.1/ref/models/fields/#django.db.models.ImageField) (depends on PIL)
- [`LiveServerTestCase`](/ga/6.1/topics/testing/tools/#django.test.LiveServerTestCase) (depends on Selenium WebDriver)

Ina theannta sin, tá níos mó ná creat gréasáin Django; is éiceachóras de chomhpháirteanna inphlugáilte é. Ag an bpointe seo, is beag feidhmchlár tríú páirtí a iompraíodh chuig Python 3, mar sin ní dócha go mbeidh a spleáchas go léir sásta ag feidhmchlár saol fíor faoi Python 3.

Dá bhrí sin, táimid ag moladh nach n-úsáidfear Django 1.5 i dtáirgeadh faoi Python 3. Ina áit sin, bain úsáid as an deis seo chun feidhmchláir a iompar chuig Python 3. Más údar tú ar chomhpháirt inphlugáilte, molaimid duit tosú ag iompar anois.

Tá sé beartaithe againn tacaíocht den chéad scoth, réidh le táirgeadh a thairiscint do Python 3 inár gcéad eisiúint eile, Django 1.6.

## Cad atá nua i Django 1.5

### Múnla Úsáideora inchumraithe

I Django 1.5, is féidir leat do mhúnla féin a úsáid anois mar an siopa le haghaidh sonraí a bhaineann le húsáideoir. Má theastaíonn ainm úsáideora de do thionscadal le níos mó ná 30 carachtar, nó más mian leat ainmneacha úsáideora a stóráil i bhformáid seachas céadainm/ainm deiridh, nó más mian leat faisnéis phróifíle saincheaptha a chur ar do réad Úsáideora, is féidir leat é sin a dhéanamh anois.

Má tá feidhmchlár athúsáidte tríú páirtí agat a thagann tagairt don tsamhail Úsáideora, b'fhéidir go mbeidh ort roinnt athruithe a dhéanamh ar an mbealach a thagann tú tagairt do chásanna Ba chóir duit aon ghnéithe sonracha den tsamhail Úsáideora a bhfuil d'iarratas ag brath air a dhoiciméadú freisin.

Féach an:ref: doiciméadú ar mhúnlaí úsáideora saincheaptha \<auth-custom-user\>\`le haghaidh tuilleadh sonraí.

### Tacaíocht chun fo-thacar de réimsí an tsamhail a shábháil

Tá argóint nua eochairfhocail ag an modh [`Model.save()`](/ga/6.1/ref/models/instances/#django.db.models.Model.save) \`\` update\_fields\`\`. Trí úsáid a bhaint as an argóint seo ní féidir ach liosta roghnaithe de réimsí an mhúnla a shábháil. D’fhéadfadh sé seo a bheith úsáideach ar chúiseanna feidhmíochta nó nuair a dhéantar iarracht athruithe comhthráthacha a fhorscríobh a sheachaint.

Sábhálfaidh cásanna iarchurtha (iad siúd a luchtaithe ag ```.only () ``nó ``.defer ()```) na réimsí luchtaithe go huathoibríoch. Má shocraítear aon réimse de láimh tar éis an ualaigh, déanfar an réimse sin nuashonrú freisin ar shábháil.

\<django.db.models.Model.save () \>Féach an doiciméadú: meth: Model.save () le haghaidh tuilleadh sonraí.

### Cáscaíocht cásanna samhail ghaolmhara

Agus caidrimh á thrasú, seachnóidh an ORM rudaí a luchtaigh roimhe seo a athghabháil. Mar shampla, le samhlacha an rang teagaisc:

```pycon
>>> first_poll = Poll.objects.all()[0]
>>> first_choice = first_poll.choice_set.all()[0]
>>> first_choice.poll is first_poll
True
```

I Django 1.5, ní spreagann an tríú líne ceist nua SQL a thuilleadh chun `first_choice.poll` a fháil; socraíodh é ag an dara líne.

Maidir le caidrimh duine le duine, is féidir an dá thaobh a chosc. Maidir le caidrimh go leor, ní féidir ach an taobh amháin den chaidreamh a chosc. Tá sé seo cabhrach go háirithe i dteannta le `prefetch_related`.

### Tacaíocht shoiléir le haghaidh freagraí sru

Roimh Django 1.5, bhí sé indéanta freagra sruthú a chruthú trí athraitheoir a chur chuig: class: ~django.http.httpResponse. Ach ní raibh sé seo neamhiontaofa: d'ith aon mheán-earraí a rochtain ar thréith: attr: ~django.http.httpResponse.content an t-athraitheoir roimh am.

Is féidir leat freagra sruthú a ghiniúint go sainráite anois leis an rang nua:class: ~django.http.StreamInghttPresponse. Nochtann an rang seo a: class: ~django.http.StreamInghttPresponse.streaming\_content tréith atá ina athraitheoir.

Ós rud é: :class: ~django.http.StreamInghttPresponse níl tréith `content`, ní mór do mheán-earraí a theastaíonn rochtain uathu ar an ábhar freagartha tástáil a dhéanamh le haghaidh freagraí sruthú agus iompar dá réir sin.

### `{% verbatim%}` clib teimpléad

Chun é a dhéanamh níos éasca déileáil le teimpléid JavaScript a imbhuaileann le comhréir Django, is féidir leat an chlib bloc:ttag: verbatim a úsáid anois chun ábhar an chlib a pháirseáil a sheachaint.

### Aisghabháil cásanna `contentType` a bhaineann le samhlacha seachfhreastalaí

\<django.contrib.contenttypes.models.ContentTypeManager.get\_for\_models () \>Tá argóint eochairfhocal nua ag na modhaí:meth: ContentTypeManager.get\_for\_Model () agus:meth: ContentTypeManager.get\_for\_Models () faoi seach for\_concrete\_model\` agus `for_concrete_models` \<django.contrib.contenttypes.models.ContentTypeManager.get\_for\_model () \>. \<django.contrib.contenttypes.models.ContentType\>Trí `False` a rith ag baint úsáide as an argóint seo is féidir anois an:class: ContentType a bhaineann le samhlacha seachfhreastalaí a aisghabháil.

### Athróg nua `` `amharc `` i gcomhthéacs tuairimí rang-bhunaithe

I ngach:doc: tuairimí cineálacha bunaithe ar aicme' (nó aon dearcadh aicme-bhunaithe a fhaigheann oidhreacht ó \`\`ContextMixin\`), tá athróg dearcadh sa bhfoclóir comhthéacs a thugann tuiscint ar an sampla View\</topics/class-based-views/index\> .

### GeodJango

- [`LineString`](/ga/6.1/ref/contrib/gis/geos/#django.contrib.gis.geos.LineString) and
  [`MultiLineString`](/ga/6.1/ref/contrib/gis/geos/#django.contrib.gis.geos.MultiLineString) GEOS objects now support
  the [`interpolate()`](/ga/6.1/ref/contrib/gis/geos/#django.contrib.gis.geos.GEOSGeometry.interpolate) and
  [`project()`](/ga/6.1/ref/contrib/gis/geos/#django.contrib.gis.geos.GEOSGeometry.project) methods (so-called
  linear referencing).
- Coinníonn na hairíonna `wkb` agus `hex` de:class: ~django.contrib.gis.geos.geosgeometry an toise Z.
- Cuireadh tacaíocht do PostGIS 2.0 leis agus tá tacaíocht do GDAL \<1.5 titim.

### Ranganna teagaisc nua

I measc na mbreiseanna leis na doiciméid tá athbhreithnithe: doc: Teagaisc 3 agus nua:doc: teagaisc ar thástáil\`\</intro/tutorial03\>\</intro/tutorial05\>. Cuireann rannán nua, “Ard-Ranganna Teagaisc”, ar fáil: doc: \`Conas aipeanna in-athúsáidte a scríobh \`chomh maith le treoir céim ar chéim do rannpháirtithe nua in:doc: \`Do chéad phai\</intro/reusable-apps\> ste a scríobh do \</intro/contributing\> Django.

### Mionghnéithe

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

- Léirmhíníonn an t-inneall teimpléid anois `True`, False\` agus `None` mar na rudaí Python comhfhreagracha.
- [`django.utils.timezone`](/ga/6.1/ref/utils/#module-django.utils.timezone) provides a helper for converting aware
  datetimes between time zones. See [`localtime()`](/ga/6.1/ref/utils/#django.utils.timezone.localtime).
- Tacaíonn na tuairimí cineálacha le hiarratais OPTIONS.
- Ní ardaíonn orduithe bainistíochta `SystemExit` níos mó nuair a ghlaonn siad le cód ó:func: ~django.core.management.call\_command. Déantar aon eisceacht a ardóidh an t-ordú (den chuid is mó: exc: ~django.core.management.commandError) iomadú.

  \<management-commands-output\>Thairis sin, nuair a aschuireann tú earráidí nó teachtaireachtaí i d'orduithe saincheaptha, ba chóir duit anois self.stdout.write ('teachtaireacht') agus self.stderr.write ('error') a úsáid anois (féach an nóta ar:ref: \`aschur orduithe bainistíochta).
- Aschuireann an t-ordú bainistíochta: DJadmin: dumpdata sraith amháin ag an am, ag cosc ar earráidí lasmuigh den chuimhne agus tacair mhóra sonraí á ndúmáil.
- Sa bhlaor áitiúil do Cheanada, cuireadh pq\` leis na cóid inghlactha do Quebec. Is sean-ghiorrúchán é.
- Tá an maisitheoir: ref: glacad \<connecting-receiver-functions\>óir in ann ceangal anois le níos mó ná comhartha amháin trí liosta comharthaí a sholáthar.
- Sa riarachán, is féidir leat úsáideoirí a scagadh anois de réir grúpaí a bhfuil siad ina mbaill díobh.
- \<django.db.models.query.QuerySet.bulk\_create\>:meth: Tá argóint batch\_size ag querySet.bulk\_create () anois. De réir réamhshocraithe tá an batch\_size gan teorainn ach amháin SQLite áit a bhfuil baisc aonair teoranta ionas nach sáraítear paraiméadair 999 in aghaidh an cheistiúcháin.
- \<naming-url-patterns\>Glacann socruithe an:setting: LOGIN\_URL agus:setting: LOGIN\_REDIRECT\_URL anois le hainmneacha feidhm amharc agus:ref: patrúin URL ainmnithe \`. Ligeann sé seo duit dúbailt cumraíochta a laghdú. Is féidir tuilleadh faisnéise a fháil sna cáipéisíocht: :func: \`~django.contrib.auth.decorators.login\_required.
- Soláthraíonn Django anois mod\_wsgi [auth handler](/ga/6.1/howto/deployment/wsgi/apache-auth/).
- \<django.db.models.Model.delete () \>Is féidir leis an:Meth: QuerySet.delete () \`agus:meth: \`Model.delete ()\<django.db.models.query.QuerySet.delete\> cosán tapa a ghlacadh anois i roinnt cásanna. Ligeann an cosán tapa níos lú ceisteanna agus níos lú rudaí a thógtar isteach i gcuimhne. \<django.db.models.query.QuerySet.delete\>Féach: Meth: QuerySet.delete () le haghaidh sonraí.
- Stóráiltear sampla de ResolverMatch\` ar an iarratas mar `resolver_match`.
- De réir réamhshocraithe, seoltar gach teachtaireacht logála a shroicheann an logálaí `django` nuai:socrú: ```DEBUG` ``True``` chuig an gconsól (mura ndéanann tú an logálaí a athshainiú i do shuíomh:: LOGGING).
- Nuair a úsáidtear: class: ~django.template.requestContext, is féidir anois ceadanna a lorg suas trí `{% if 'someapp.someperm' i perms%}` a úsáid i dteimpléid.
- Ní gá níos mó teimpléid `404.html` agus `500.html` a bheith san eolaire teimpléid fréimhe. Aschróidh Django roinnt teachtaireachtaí earráide bunúsacha don dá chás nuair nach bhfaightear na teimpléid sin. Moltar fós mar dhea-chleachtas na teimpléid sin a sholáthar d'fhonn leathanaigh earráide deasa a chur i láthair don úsáideoir.
- [`django.contrib.auth`](/ga/6.1/topics/auth/#module-django.contrib.auth) provides a new signal that is emitted
  whenever a user fails to login successfully. See
  [`user_login_failed`](/ga/6.1/ref/contrib/auth/#django.contrib.auth.signals.user_login_failed)
- Déanann an rogha nua:option: loaddata --ignorenonexistent neamhaird de shonraí do réimsí nach bhfuil ann a thuilleadh.
- [`assertXMLEqual()`](/ga/6.1/topics/testing/tools/#django.test.SimpleTestCase.assertXMLEqual) and
  [`assertXMLNotEqual()`](/ga/6.1/topics/testing/tools/#django.test.SimpleTestCase.assertXMLNotEqual) new assertions allow
  you to test equality for XML content at a semantic level, without caring for
  syntax differences (spaces, attribute order, etc.).
- Cuireann RemoteUserMiddleware i bhfeidhm anois logáil amach nuair a imíonn an ceannteideal REMOTE\_USER le linn an tseisiúin bhrabhsálaí céanna.
- Is féidir leis an:ref: cúltaca seisiúin bunaithe ar taisce \<cached-sessions-backend\>\`sonraí seisiúin a stóráil i taisce neamh-réamhshocraithe.
- Is féidir innéacsanna il-cholún a chruthú anois ar mhúnlaí. Léigh an doiciméad index\_together le haghaidh tuilleadh faisnéise.
- Le linn cumraíocht logála Django cumasaítear rabhaidh díphríochta agus gabhtar rabhaidh isteach sa chóras logála. Déantar rabhaidh logáilte a threorú tríd an láimhseálaí logála consóla\`, a éilíonn de réir réamhshocraithe: socrú: DEBUG go mbeidh Fíor chun aschur a ghiniúint. Is é an toradh atá ann ná gur chóir DeprecationWarnings a phriontáil chuig an gconsól i dtimpeallachtaí forbartha mar a bhí siad i leaganacha Python \< 2.7.
- Athraíodh an modh API do [`django.contrib.admin.ModelAdmin.message_user()`](/ga/6.1/ref/contrib/admin/#django.contrib.admin.ModelAdmin.message_user) chun glacadh le hargóintí breise a chuireann cumais cosúil le [`django.contrib.messages.add_message()`](/ga/6.1/ref/contrib/messages/#django.contrib.messages.add_message). Tá sé seo úsáideach chun teachtaireachtaí earráide a ghiniúint ó ghníomhartha riaracháin.
- Is féidir scagairí liosta an riaracháin a shaincheapadh anois in aghaidh iarratais a bhuíochas leis an modh nua: meth: django.contrib.admin.modeladmin.get\_list\_filter.

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

> **Warning**
>
> \<deprecation-removed-in-1.5\>Chomh maith leis na hathruithe a leagtar amach sa chuid seo, déan cinnte athbhreithniú a dhéanamh ar an:ref: plean díréachtaithe le haghaidh aon ghnéithe a baineadh. Mura ndearna tú do chód a nuashonrú laistigh den amlíne díscoilte do ghné ar leith, d'fhéadfadh go mbeadh sé a bhaint mar athrú neamh-chomhoiriúnach ar chúl.

### `ALLOWED_HOSTS` ag teastáil i dtáirgeadh

The new [`ALLOWED_HOSTS`](/ga/6.1/ref/settings/#std-setting-ALLOWED_HOSTS) setting validates the request's `Host`
header and protects against host-poisoning attacks. This setting is now
required whenever [`DEBUG`](/ga/6.1/ref/settings/#std-setting-DEBUG) is `False`, or else
[`django.http.HttpRequest.get_host()`](/ga/6.1/ref/request-response/#django.http.HttpRequest.get_host) will raise
[`SuspiciousOperation`](/ga/6.1/ref/exceptions/#django.core.exceptions.SuspiciousOperation). For more details see the
[`full documentation`](/ga/6.1/ref/settings/#std-setting-ALLOWED_HOSTS) for the new setting.

### Bainisteoirí ar samhlacha teibí

\<custom-managers-and-inheritance\>Tá samhlacha teibí in ann bainisteoir saincheaptha a shainiú, agus beidh an bainisteoir sin: ref: oidhreacht ag aon mhúnlaí coincréite a leathnaíonn an tsamhail teibí . Mar sin féin, má dhéanann tú iarracht an tsamhail teibí a úsáid chun modh a ghlaoch ar an mbainisteoir, ardófar eisceacht anois. Roimhe seo, bheadh an glao ceadaithe, ach theip air a luaithe a rinneadh iarracht ar aon oibríocht bunachar sonraí (de ghnáth le earráid “níl tábla ann” ón mbunachar sonraí).

Má tá feidhmiúlacht agat ar bhainisteoir a bhí á ghairm agat ag baint úsáide as an rang teibí, ba cheart duit an loighic sin a aistriú chuig staticmethod nó classmethod\` Python ar an rang teibí.

### Tuairimí rangbhunaithe ar chartlann comhthéacs i m

For consistency with the other date-based generic views,
[`YearArchiveView`](/ga/6.1/ref/class-based-views/generic-date-based/#django.views.generic.dates.YearArchiveView) now passes `year` in
the context as a [`datetime.date`](https://docs.python.org/3/library/datetime.html#datetime.date) rather than a string. If you are
using `{{ year }}` in your templates, you must replace it with `{{
year|date:"Y" }}`.

Cuireadh `next_year` agus `roimh_year` sa chomhthéacs freisin. Déantar iad a ríomh de réir allow\_empty\` agus allow\_future\`.

### Comhthéacs i dtuairimí rangbhunaithe i gcartlann bliana

[`YearArchiveView`](/ga/6.1/ref/class-based-views/generic-date-based/#django.views.generic.dates.YearArchiveView) and
[`MonthArchiveView`](/ga/6.1/ref/class-based-views/generic-date-based/#django.views.generic.dates.MonthArchiveView) were documented to
provide a `date_list` sorted in ascending order in the context, like their
function-based predecessors, but it actually was in descending order. In 1.5,
the documented order was restored. You may want to add (or remove) the
`reversed` keyword when you're iterating on `date_list` in a template:

```html+django
{% for date in date_list reversed %}
```

[`ArchiveIndexView`](/ga/6.1/ref/class-based-views/generic-date-based/#django.views.generic.dates.ArchiveIndexView) still provides a
`date_list` in descending order.

### Comhthéacs i TemplateView

Le comhsheasmhacht le dearadh na dtuairimí cineálacha eile, ní chuireann :class: ~django.views.generic.base.templateView foclóir params\` isteach sa chomhthéacs a thuilleadh, ina ionad sin cuireann na hathróga ón URLConf go díreach isteach sa chomhthéacs.

### Sonraí neamh-fhoirme in iarratais HTTP

[`request.POST`](/ga/6.1/ref/request-response/#django.http.HttpRequest.POST) will no longer include data
posted via HTTP requests with non form-specific content-types in the header. In
prior versions, data posted with content-types other than
`multipart/form-data` or
`application/x-www-form-urlencoded` would still end up represented in
the [`request.POST`](/ga/6.1/ref/request-response/#django.http.HttpRequest.POST) attribute. Developers
wishing to access the raw POST data for these cases, should use the
[`request.body`](/ga/6.1/ref/request-response/#django.http.HttpRequest.body) attribute instead.

### [`request_finished`](/ga/6.1/ref/signals/#django.core.signals.request_finished) signal

D'úsáid Django an comhartha: data: ~django.core.signals.request\_finished a sheoladh a luaithe a d'fhill an fheidhm amharc freagra. Idirghníomhaíodh sé seo go dona le: ref: freagraí sruthú \<httpresponse-streaming\>\`a chuireann moill ar ghiniúint ábhair.

Seoltar an comhartha seo anois tar éis an t-ábhar a ithe go hiomlán ag geata WSGI. D'fhéadfadh sé seo a bheith neamhoiriúnach ar ais má bhíonn tú ag brath ar an gcomhartha a dhúnadh sula gcuireann tú an t-ábhar freagartha chuig an g Má dhéanann tú, ba chóir duit smaoineamh ar: doc: middleware a úsáid ina ionad \</topics/http/middleware\>.

> **Note**
>
> Ní ghlaonn roinnt freastalaithe WSGI agus meán-earraí “gar” i gcónaí ar an réad freagartha tar éis iarratas a láimhseáil, go háirithe UWSGI roimh 1.2.6 agus earráid Sentry ag tuairisciú meánghearraí suas le 2.0.7. Sna cásanna sin ní sheoltar an comhartha request\_finished\` ar chor ar bith. D'fhéadfadh naisc díomhaoin a bheith mar thoradh air seo le freastalaithe bunachar sonraí agus memcache.

### Iarrataí ROGHANNA, PUT agus DELETE sa chliant tástála

Murab ionann agus GET agus POST, ní chuireann brabhsálaithe gréasáin na modhanna HTTP seo i bhfeidhm. Ina ionad sin, úsáidtear iad in APIanna, a aistríonn sonraí i bhformáidí éagsúla ar nós JSON nó XML. Ós rud é go bhféadfadh sonraí treallacha a bheith sna hiarratais sin, ní dhéanann Django iarracht a gcorp a dhíchódú.

Mar sin féin, d'úsáid an cliant tástála teaghrán fiosrúcháin a thógáil le haghaidh iarratais OPTIONS agus DELETE cosúil le GET, agus comhlacht iarratais d'iarratais PUT cosúil le POST. Bhí an t-ionchódú seo treallach agus neamhréidh le hiompar Django nuair a fhaigheann sé na hiarratais, mar sin baineadh é i Django 1.5.

Má bhí an paraiméadar sonraí á úsáid agat i roghanna nó in iarratas DELETE, ní mór duit é a thiontú go sreang fiosrúcháin agus é a chur leis an bparaiméadar path\`.

Má bhí an paraiméadar ```sonraí ``á úsáid agat in iarratas PUT gan ``content_type```, ní mór duit do chuid sonraí a ionchódú sula gcuirfidh tú chuig an gcliant tástála iad agus an argóint `content_type` a shocrú.

### Ní úsáidtear leagan an chórais de `simplejson` a thuilleadh

[As explained below](#simplejson-deprecation), Django 1.5 deprecates
`django.utils.simplejson` in favor of Python 2.6's built-in [`json`](https://docs.python.org/3/library/json.html#module-json)
module. In theory, this change is harmless. Unfortunately, because of
incompatibilities between versions of `simplejson`, it may trigger errors
in some circumstances.

Baineann gnéithe a bhaineann le JSON i Django 1.4 úsáid as `django.utils.simplejson` i gcónaí. Ba é an modúl seo i ndáiríre:

- Leagan córais de simplejson\`, má bhí ceann ar fáil (ie oibreacha allmhairiú simplejson ), má bhí sé níos déanaí ná cóip ionsuite Django nó má bhí na luasanna C aige, nó
- An modúl: mod: json ón leabharlann caighdeánach, má bhí sé ar fáil (ie Python 2.6 nó níos mó), nó
- Cóip ionsuite de leagan 2.0.7 de simplejson\`.

I Django 1.5, úsáideann na gnéithe sin modúl Python: mod: json, atá bunaithe ar leagan 2.0.9 de simplejson.

Níl aon neamhoiriúnachtaí ar eolas idir cóip Django de leagan 2.0.7 agus cóip Python de leagan 2.0.9. Mar sin féin, tá roinnt neamhoiriúnachtaí idir leaganacha eile de simplejson\`:

- Cé go ndéantar an API simplejson\` doiciméadaithe mar atá i gcónaí ag filleadh teaghráin Unicode, is féidir leis an gcur i bhfeidhm roghnach C bytestring a thabhairt ar ais. Socraíodh é seo i Python 2.7.
- Fuair `simplejson.jsonEncoder` argóint eochairfhocal `namedtuple_as_object` i leagan 2.2.

\<18023 #comment:10\>Tá tuilleadh eolais ar na neamhoiriúnachtaí seo ar fáil in:ticéad: ticéad # 18023.

Is é an toradh glan ná, má tá simplejson\` suiteáilte agat agus má úsáideann do chód inmheánacha sraitheach Django go díreach - mar shampla `django.core.serializers.json.djangojsonEncoder`, d'fhéadfadh an t-athrú ó simplejson\` go: mod: json do chód a bhriseadh. (Go ginearálta, ní dhoiciméadaítear athruithe ar inmheánacha; táimid ag déanamh eisceacht anseo.)

Ag an bpointe seo, creideann cothabháirí Django go dtugann úsáid: mod: json ón leabharlann caighdeánach an ráthaíocht is láidre maidir le comhoiriúnacht ar ais. Molann siad é a úsáid as seo amach.

### Cineálacha teaghrán de pharaiméadair modh hasher

Má scríobh tú a:ref: pasfhocal saincheaptha hasher \<auth\_password\_storage\>, ba cheart do mhodhanna ```encode () ``, `verify ()``` nó ```safe_summary () ``glacadh le paraiméadair Unicode (`pasfhocal```, salt\` nó encoded ). Má theastaíonn bytestrings ó aon cheann de na modhanna hashing, is féidir leat an fóntais: func: ~django.utils.encoding.force\_bytes a úsáid chun na teaghráin a ionchódú.

### Bailíochtú uimhir leathanaigh roimhe seo agus uimhir leathanaigh eile

Nuair a úsáideadh: doc: leathanaigh réad, níor sheiceáil na modhanna ```previous_page_number () ``agus``` next\_page\_number () den :class: ~django.core.pagin\</topics/pagination\> ator.page an raibh an uimhir ar ais laistigh den raon leathanaigh atá ann cheana. Seiceálann sé é anois agus ardaíonn sé eisceacht: exc: ~django.core.paginator.invalidPage nuair a bhíonn an uimhir ró-íseal nó ró-ard.

### Athraigh iompar rogha bunachar sonraí autocommit ar PostgreSQL

Níor oibrigh rogha autocommit PostgreSQL mar a fógraíodh roimhe seo. D'oibrigh sé le haghaidh bloc idirbheart aonair, ach tar éis don chéad bhloc a fhágáil níor athchóirigh an t-iompar uathchomhartha riamh. Tá an fabht seo socraithe anois i 1.5. Cé nach é seo ach socrú fabht, is fiú iompar d'iarratais a sheiceáil má tá PostgreSQL á úsáid agat mar aon leis an rogha autocommit.

### Níor shábháiltear an seisiún ar 500 freagra

Sceapfaidh meán-earraí seisiúin Django sonraí na seisiúin a shábháil más é cód stádais an fhreagra 500.

### Seiceálacha ríomhphoist ar theip isteach riaracháin

Roimh Django 1.5, má rinne tú iarracht logáil isteach sa chomhéadan riaracháin agus má d'úsáid tú do sheoladh ríomhphoist ar dhearmad in ionad d'ainm úsáideora, chuirfeadh an comhéadan riaracháin rabhadh ar fáil ag tabhairt comhairle nach é d'ainm úsáideora do sheoladh ríomhphoist. I Django 1.5, bhí an rabhadh seo a bhaint ag tabhairt isteach: ref: samhlacha \<auth-custom-user\>úsáideora saincheaptha . Ní athraíonn sé seo iompar logála isteach an láithreáin riaracháin; ní théann sé i bhfeidhm ach ar an teachtaireacht rabhaidh a thaispeántar faoi mhodh áirithe amháin de theip logála isteach.

### Athruithe ar fhorghníomhaithe

Tugadh roinnt athruithe isteach maidir le tástálacha a fhorghníomhú a d'fhéadfadh a bheith comhoiriúnach ar ais le haghaidh roinnt socruithe tástála:

#### Sruthú bunachar sonraí i `Django.Test.TransactionTestCase`

Roimhe seo, gearradh an bunachar sonraí tástála\* roimh\* gach tástáil a reáchtáil in a:class: ~ django.test.transactionTestCase.

D'fhonn a bheith in ann tástálacha aonaid a reáchtáil in aon ord agus chun a chinntiú go bhfuil siad scoite óna chéile i gcónaí, athshocróidh :class: ~django.test.transactionTestCase an bunachar sonraí anois\* tar éis \* gach tástála a rith ina ionad.

#### Gan níos mó seicheamh DB intuigthe a athshocrú

[`TransactionTestCase`](/ga/6.1/topics/testing/tools/#django.test.TransactionTestCase) tests used to reset primary key
sequences automatically together with the database flushing actions described
above.

This has been changed so no sequences are implicitly reset. This can cause
[`TransactionTestCase`](/ga/6.1/topics/testing/tools/#django.test.TransactionTestCase) tests that depend on hardcoded
primary key values to break.

Is féidir an tréith nua:attr: ~django.test.transactionTestCase.reset\_sequences a úsáid chun an sean-iompar a chur i bhfeidhm le haghaidh: :class: ~django.test.transactionTestCase a d'fhéadfadh a bheith ag teastáil uathu.

#### Tástálacha a ordú

D'fhonn a chinntiú go dtosaíonn gach cód Testcase le bunachar sonraí glan, déantar tástálacha a fhorghníomhú anois san ord seo a leanas:

- Ar dtús, reáchtáiltear gach tástáil aonaid (lena n-áir:class: UnitTest.TestCase, :class: ~django.test.testcase, :class: ~django.test.testcase agus:class: ~django.test.transactionTestCase) gan aon ordú ar leith ráthaithe ná a chur i bhfeidhm ina measc.
- Ansin reáchtáiltear aon tástálacha eile (m.sh. doctests) a d'fhéadfadh an bunachar sonraí a athrú gan é a chur ar ais go dtí a staid bhunaidh.

Níor chóir go mbeadh aon fhadhbanna mar thoradh air seo mura bhfuil doctests ann cheana agat a ghlacann le a:class: ~django.test.TransactionTestCase forghníomhaithe níos luaithe d'fhág roinnt stát bunachar sonraí taobh thiar de nó tástálacha aonaid a bhíonn ag brath ar chineál éigin stáit á chaomhnú tar éis tástálacha eile a chur i bhfeidhm. Tá tástálacha den sórt sin an-leochaileach cheana féin, agus caithfear iad a athrú anois le bheith in ann rith go neamhspleách.

### Foclóir `cleaned_data` a choimeádtar le haghaidh foirmeacha neamhbhailí

The [`cleaned_data`](/ga/6.1/ref/forms/api/#django.forms.Form.cleaned_data) dictionary is now always present
after form validation. When the form doesn't validate, it contains only the
fields that passed validation. You should test the success of the validation
with the [`is_valid()`](/ga/6.1/ref/forms/api/#django.forms.Form.is_valid) method and not with the
presence or absence of the [`cleaned_data`](/ga/6.1/ref/forms/api/#django.forms.Form.cleaned_data) attribute
on the form.

### Iompar `syncdb` le bunachair sonraí iolracha

Fiosraíonn `syncdb` anois ar na ródairí bunachar sonraí chun a fháil amach an bhfuil cineálacha ábhair (nuair: mod: ~django.contrib.contenttypes cumasaithe) agus ceadanna (nuai:mod: ~django.contrib.auth cumasaithe) a chruthú sa spriocbhunachar sonraí. Roimhe seo, chruthaigh sé iad sa bhunachar sonraí réamhshocraithe, fiú nuair a sonraíodh bunachar sonraí eile leis an rogha --database\`.

Má úsáideann tú `syncdb` ar iliomad bunachair sonraí, ba cheart duit a chinntiú go gceadaíonn do ródairí cineálacha agus ceadanna ábhair a shioncronú do cheann amháin acu. \<contrib\_app\_multiple\_databases\>Féach na doiciméid ar an: ref: iompar aipeanna contrib le bunachair sonraí iolracha le tuilleadh faisnéise le haghaidh tuilleadh faisnéise.

### Ní dhéanfaidh deserializer XML doiciméid a pháirseáil le DTD

D'fhonn nochtadh d'ionsaithe diúltaithe seirbhíse a bhaineann le tagairtí eintiteas seachtracha agus leathnú eintiteas a chosc, diúltaíonn an dí-erializer samhail XML anois doiciméid XML ina bhfuil DTD (sainmhíniú DOCTYPE) a pháirseáil. Ós rud é nach n-aschuireann an serializer XML DTD, ní bheidh tionchar aige seo ar úsáid tipiciúil, ach cásanna ina gcuirtear cáipéisí XML cruthaithe saincheaptha ar aghaidh chuig dísherializer samhail Django.

### Foirmsets réamhshocraithe `max_num`

Ní réamhshocraíonn luach (réamhshocraithe) `None` don argóint `max_num` chuig monarcha tacar foirmeacha a thuilleadh chun aon líon foirmeacha a cheadú sa tacar foirme. Ina áit sin, d'fhonn ionsaithe ídithe cuimhne a chosc, réamhshocraíonn sé anois teorainn 1000 foirm. Is féidir an teorainn seo a ardú trí luach níos airde a shocrú go sainráite do max\_num\`.

### Ilghnéitheach

- [`django.forms.ModelMultipleChoiceField`](/ga/6.1/ref/forms/fields/#django.forms.ModelMultipleChoiceField) now returns an empty
  `QuerySet` as the empty value instead of an empty list.
- [`int_to_base36()`](/ga/6.1/ref/utils/#django.utils.http.int_to_base36) properly raises a
  [`TypeError`](https://docs.python.org/3/library/exceptions.html#TypeError) instead of [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError) for non-integer inputs.
- Tá an scagaire teimpléad ``slugify` ar fáil anois mar fheidhm chaighdeánach Python ag:func: `django.utils.text.slugify`. Ar an gcaoi chéanna, tá `remove_tags`` ar fáil ag django.utils.html.remove\_tags () .
- Ní chruthaítear comhaid uaslódáilte a thuilleadh mar fhorghníomhachtaithe Más gá duit iad a bheith infheidhmithe athraigh: setting: FILE\_UPLOAD\_PERMISSIONS do chuid riachtanas. Is é 0o666\` (octal) an luach réamhshocraithe nua agus cuirtear an luach umask reatha a chumasc amach ar dtús.
- Thacaigh an: aicme: abairtí F \`le hoibreoirí gi \<django.db.models.F\>otáin le \`&\` agus `|`. Tá na hoibreoirí seo ar fáil anois ag baint úsáide as ```.bitand () ``agus ``.bitor ()``` ina ionad. Rinneadh &\` agus `|` a bhaint le bheith comhsheasmhach le:ref: Q () abairtí \`agus \`\`\<complex-lookups-with-q\>QuerySet\` ag comhcheangal nuair a úsáidtear na hoibreoirí mar oibreoirí boolean AND agus OR.
- I nglao filter () , nuair a bhí cuardaigh ag abairtí class: F \<django.db.models.F\>\`a chuimsíonn caidreamh illuachmhar, níor athúsáid siad na caidreamh céanna i gcónaí le cuardaigh eile ar feadh an slabhra céanna. Athraíodh é seo, agus anois úsáidfidh nathanna F () na caidreamh céanna i gcónaí le cuardaigh eile laistigh den ghlao filter () céanna.
- Níl an clib teimpléad: ttag: csrf\_token iata i div a thuilleadh. Má theastaíonn bailíochtú HTML uait i gcoinne DTDanna docht réamh-HTML5, ba cheart duit div a chur timpeall air i do leathanaigh.
- Baineadh na leabharlann clibeanna teimpléad `adminmedia`, nach raibh ach an chlib teimpléad díscoite `{% admin_media_prefix%}`. Teipfidh iarracht é a luchtú le `{% load adminmedia%}`. Má tá an líne sin fós i do theimpléid ní mór duit í a bhaint.
- Mar gheall ar mhaoirseacht cur chun feidhme, bhí sé in ann: doc: django.contrib.redirects a úsáid gan cumasú:doc: django\</ref/contrib/redirects\> \</ref/contrib/sites\> .contrib.sites. Ní cheadaítear é seo a thuilleadh. Má tá django.contrib.redirects\` á úsáid agat, déan cinnte go bhfuil `django.contrib.sites` sa SETTING: \`INSTALLED\_APPS.
- \<django.forms.BoundField.label\_tag\>:meth: Éalaíonn BoundField.label\_tag \`anois dá argóint \`\`contents\`. Chun an HTML a sheachaint, bain úsáid as: func: django.utils.safestring.mark\_safe ar an argóint sula ndéantar é a rith.
- Fuarthas rochtain a fháil ar chaidrimh aon-le-duine ar ais trí:meth: ~django.db.models.query.queryset.select\_related anois:exc: ~django.db.models.model.doesNotExist in ionad `None` a thabhairt ar ais.

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

### `django.contrib.localflavor`

Tá an aip contrib localflavour roinnte i bpacáistí ar leithligh. Bainfear `django.contrib.localflavor` féin i Django 1.6, tar éis díscríobh luathaithe.

Tá na pacáistí nua ar fáil ar GitHub. Ní féidir leis an bcroífhoireann na pacáistí seo a chothabháil go héifeachtúil san fhadtéarma - ní chuimsíonn sé ach dosaen tíortha ag an am seo; cosúil le haistriúcháin, tabharfar cothabháil ar fáil do bhaill den phobal a bhfuil suim acu.

### `django.contrib.markup`

Tá an modúl contrib marcála díscoite agus leanfaidh sé sceideal luathaithe díluasaithe. Is fearr úsáid dhíreach leabharlanna marcála Python nó leabharlanna clibeanna tríú páirtí ná Django a choinneáil an fheidhmiúlacht seo sa chreat.

### AUTH\_PROFILE\_MODULE \`\`

Agus: ref: samhlacha úsáideora saincheaptha \<auth-custom-user\>\`a thabhairt isteach, níl aon ghá le meicníocht ionsuite a thuilleadh chun sonraí próifíl úsáideora a stóráil.

Is féidir leat samhlacha próifílí úsáideora a shainiú fós a bhfuil gaol duine le duine acu leis an tsamhail Úsáideora - i ndáiríre, i gcás go leor feidhmchlár a theastaíonn sonraí a cheangal le cuntas Úsáideora, is patrún dearaidh iomchuí é seo le leanúint. Mar sin féin, níor cheart an socrú `AUTH_PROFILE_MODULE`, agus an modh Django.contrib.auth.models.user.get\_profile () chun rochtain a fháil ar an tsamhail phróifíl úsáideora, a úsáid a thuilleadh.

### Iompar sruthú de:aicme: ~django.http.httpResponse

Déanann Django 1.5 an cumas freagra a shruthú trí athraitheoir a chur chuig: class: ~django.http.httpResponse. Má tá tú ag brath ar an iompar seo, aistrigh chu:class: ~django.http.StreamInghttPresponse. Féach:ref: explicit-streaming-freagrais thuas.

I Django 1.7 agus os a chionn, ídífear an t-athraitheoir láithreach:class: ~django.http.httpResponse.

### `django.utils.simplejson`

Ós rud é go dtiteann Django 1.5 tacaíocht do Python 2.5, is féidir linn brath anois ar an modúl: mod: json atá ar fáil i leabharlann chaighdeánach Python, mar sin tá ár gcóip féin de simplejson\` bainte againn. Ba chóir duit anois: mod: json a iompórtáil in ionad `django.utils.simplejson`.

\<simplejson-incompatibilities\>Ar an drochuair, d'fhéadfadh fo-iarsmaí nach dteastaíonn a bheith ag an athrú seo, mar gheall ar neamhoiriúnachtaí idir leaganacha de `simplejson` \- féach an roinn:ref: athruithe neamh-inchomhoiriúnacha '. Má tá tú ag brath ar ghnéithe a chuirtear le \`simplejson\` tar éis dó a bheith ina Python 's:mod: json, ba cheart duit `simplejson` a iompórtáil go sainráite.

### `Django.Utils.Encoding.StrandUnicode`

Tá an meascán `Django.Utils.Encoding.StrandUnicode` díluaite. Sainmhínigh modh `__str__` agus cuir an maisitheoir `django.utils.encoding.python_2_unicode_compatible` i bhfeidhm ina ionad.

### `django.utils.itercompat.product`

Tá an fheidhm `django.utils.itercompat.product` díluaite. Úsáid an bunaithe:func: itertools.product ina ionad.

### Ordú bainistíochta `glantacha`

Tá an t-ordú bainistíochta `glantach` a dhíchur agus cuireadh: djadmin: clearsessions ina ionad.

### Script `daily_cleanup.py`

Tá an script `daily_cleanup.py` neamhdhoiciméadaithe a dhíchur. Úsáid an t-ordú bainistíochta: djadmin: clearsessions ina ionad.

### ```doimhneacht ``argóint eochairfhocal i ``roghnaithe_related```

Tá an argóint eochairfhocal `depth` in:meth: ~django.db.models.query.queryset.select\_related díluaite. Ba chóir duit ainmneacha réimse a úsáid ina ionad.
