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

> **Note**
>
> Tiomnaithe do Malcolm Tredinnick
>
> Ar 17 Márta, 2013, chaill tionscadal Django agus an pobal bogearraí saor in aisce cara agus forbróir an-daor.
>
> Bhí Malcolm ina rannchuiditheoir fadtréimhse le Django, ball samhail phobail, intinn iontach, agus cara. Tá sé beagnach dodhéanta a chuid ranníocaíochtaí le Django - agus le go leor tionscadal foinse oscailte eile - a chur in iúl. Rinne sé athbhreithniú ar a gcéad phaistí ag go leor ar an gcroífhoireann Django; saibhrigh a mheantóireacht sinn. Beidh a mheas, a fhoighne agus a thiomantas ina inspioráid dúinn i gcónaí.
>
> Tá an scaoileadh seo de Django do Malcolm.
>
> -- The Django Developers

*6 Samhain, 2013*

Fáilte go dtí Django 1.6!

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

## Comhoiriúnacht Python

Éilíonn Django 1.6, cosúil le Django 1.5, Python 2.6.5 nó os a chionn. Tacaítear le Python 3 go hoifigiúil freisin. Molaimid\*\* go hard\*\* an mionscaoileadh is déanaí do gach sraith Python tacaithe (2.6.X, 2.7.X, 3.2.X, agus 3.3.X).

Beidh Django 1.6 an tsraith scaoilte deiridh chun tacú le Python 2.6; ag tosú le Django 1.7, is é 2.7 an leagan Python íosta a thacaítear.

Ní thacaítear le Python 3.4, ach cuirfear tacaíocht leis i Django 1.7.

## Cad atá nua i Django 1.6

### Teimpléid tionscadail réamhshocraithe agus aip

Tá na teimpléid réamhshocraithe a úsáideann: djadmin: startproject agus:djadmin: startapp simplithe agus nuachóirithe. Tá an: doc: admin \</ref/contrib/admin/index\> cumasaithe anois de réir réamhshocraithe i dtionscadail nua; níl an creat:doc: sites\</ref/contrib/sites\> a thuilleadh. :ref: Tá cosc clickjacking \<clickjacking-prevention\>\`ar siúl anois agus tá an bunachar sonraí réamhshocraithe go SQLite.

\<custom-app-and-project-templates\>Mura n-oireann na teimpléid réamhshocraithe do do chlas, is féidir leat: ref: teimpléid tionscadail agus aipeanna saincheaptha a úsáid.

### Bainistíocht idirbheart níos fearr

Rinneadh athchóiriú ar bhainistíocht idirbheart Django. Tá autocommit ar leibhéal bunachar sonraí casaithe air anois de réir réamhshocraithe. Fágann sé seo láimhseáil idirbheart níos folláine agus ba cheart go bhfeabhsó Rinneadh na APIs atá ann cheana a dhíchur, agus tugadh APIs nua isteach, mar a thuairiscítear in:doc: doiciméid bainistíochta idirbhearta \</topics/db/transactions\>.

### Nasc bunachar sonraí leanúnacha

Tacaíonn Django anois leis an nasc bunachar sonraí céanna a athúsáid le haghaidh roinnt iarratais. Seachnaíonn sé seo an lasbhreas a bhaineann le nasc a athbhunú ag tús gach iarratais. Le haghaidh comhoiriúnacht ar ais, tá an ghné seo díchumasaithe de réir réamhshocraithe Féach: ref: persistent-database-nastions le haghaidh sonraí.

### Tástálacha a fháil in aon mhodúl tástála

Seolann Django 1.6 le rádálaí tástála nua a cheadaíonn níos mó solúbthachta i suíomh na dtástálacha. Ní bhfuair an rádálaí roimhe seo (Django.test.simple.DjangoTestSuiterunner\`) tástálacha ach sna modúil `models.py` agus `tests.py` de phacáiste Python in:setting: INSTALLED\_APPS.

Úsáideann an rádálaí nua (`Django.Test.Runner.DiscoverRunner`) na gnéithe fionnachtana tástála atá tógtha i unittest2\` (an leagan de `unittest` sa leabharlann caighdeánach Python 2.7+, agus curtha le Django). Le fionnachtain tástála, is féidir tástálacha a shuíomh in aon mhodúl a mheaitseálann a n-ainm leis an bpatrún `test*.py`.

Ina theannta sin, cuireadh na lipéid tástála ar fáil do ```. Caithfidh tástáil /manage.py chun tástálacha sonracha a ainmniú le reáchtáil caithfidh cosáin iomlána poncaí Python (nó cosáin eolaire) a bheith anois, seachas ``Applabel.TestCase.test_METHOD_name``` bréag-bhealaí. Ligeann sé seo tástálacha a reáchtáil atá suite in áit ar bith i do bhunachar cóid, seachas in: setting: INSTALLED\_APPS amháin. Le haghaidh tuilleadh sonraí, féach:doc: /topics/tástáil/innéacs .

\<new-test-runner\>Tá an t-athrú seo chomhoiriúnach ar chúl; féach na:ref: nótaí neamh-inchomhoiriúnachta ar ais .

### Comhiomlánú feasach ar chrios ama

\</topics/i18n/timezones\> \<django.db.models.query.QuerySet.dates\>Níor oibrigh an tacaíocht do: doc: criosanna ama' a tugadh isteach i Django 1.4 go maith le: meth: \`QuerySet.dates () \`: rinneadh comhiomlánú i gcónaí i UTC. Ardaíodh an teorannú seo i Django 1.6. Úsáid: Meth: \`QuerySet.DateTimes () \`chun comhiomlánú feasach ar chrios ama a a: class: \`~django.db.models.DateTime \<django.db.models.query.QuerySet.datetimes\>Field.

### Tacaíocht do phointí sábhála i SQLite

\<savepoints-in-sqlite\>Cuireann Django 1.6 tacaíocht le haghaidh pointí sábhála i SQLite, le roinnt: ref: teorainneacha .

### Réimse samhail `Binaryfield`

Ceadaíonn réimse samhail nua:class: Django.db.Models.BinaryField sonraí dénártha amh a stóráil sa bhunachar sonraí.

### Giuirléidí foirm GeodJango

Soláthraíonn GeodJango anois:doc: réimsí foirm agus giuirléid' dá réimsí geo-speisialaithe. \</ref/contrib/gis/forms-api\> Tá siad bunaithe ar OpenLayers de réir réamhshocraithe, ach is féidir iad a shaincheapadh chun aon creat JS eile a úsáid.

### Cuireadh ordú bainistíochta “seiceáil” leis chun comhoiriúnacht a fhíor

A: DjaDmin: Cuireadh ordú bainistíochta 'check' leis, rud a chuireann ar chumas duit a fhíorú an bhfuil do chumraíocht reatha (dírithe ar shocruithe faoi láthair) comhoiriúnach leis an leagan reatha de Django.

### \<django.db.models.Model.save () \>:meth: Athraigh algartam Model.save ()

Déanann an modh: Meth: Model.save () iarracht anois \`\`\<django.db.models.Model.save () \> UPDATE\` an bunachar sonraí a dhéanamh go díreach má tá príomhluach ag an gcás. Roimhe seo rinneadh `SELECT` chun a chinneadh an raibh gá le `UPDATE` nó `INSERT`. Níl ach ceist amháin ag teastáil ón algartam nua chun sraith atá ann cheana a nuashonrú agus bhí dhá cheann ag teastáil ar an sean- \<django.db.models.Model.save () \>Féach: Meth: Model.save () le haghaidh tuilleadh sonraí.

I roinnt cásanna neamhchoitianta ní thuairiscíonn an bunachar sonraí gur aimsíodh sraith mheaitseála nuair a dhéantar `UPDATE`. Sampla is ea an truicear PostgreSQL `ON UPDATE` a fhilleann `NULL`. I gcásanna den sórt sin is féidir bratach: attr: django.db.models.options.select\_on\_save a shocrú chun sábháil a chur i bhfeidhm chun an sean-algartam a úsáid.

### Mionghnéithe

- Is féidir le cúltaca fíordheimhnithe `Ceaduithead` a ardú chun teip ar an slabhra fíordheimhnithe láithreach.
- Is féidir an bhratach HTTPONLY a shocrú ar an bhfianán CSRF le:setting: CSRF\_COOKIE\_HTTPONLY.
- Seiceálann an assertQuerySetEqual () anois ar ordú neamhshainithe agus ardaíonn sé: exc: ValueError má fheictear ordú neamhshainithe. Feictear go bhfuil an t-ordú neamhshainithe mura n-ordaítear an QuerySet\` a thugtar agus tá níos mó ná luach ordaithe amháin le comparáid a dhéanamh ina gcoinne.
- Cuireadh leis: Meth: ~django.db.models.query.queryset.earliest le haghaidh siméadracht le:meth: ~django.db.models.query.queryset.latest.
- Chomh maith le:lookup: year, :lookup: month agus:lookup: day, tacaíonn an ORM anois:lookup: hour, :lookup: nóiméad agus:lookup: soicin cuardaigh.
- Fillteann Django anois gach eisceacht: pep: 249.
- Úsáideann na giuirléidí réamhshocraithe daga:class: ~django.forms.emailField, :class: ~django.forms.URLField, :class: ~django.forms.IntegerField, :class: ~django.forms.floatfield agus:class: ~django.forms.decimalfield na tréithe nua cineál atá ar fáil i HTML5 (```type = 'email'`, `type = 'url ``, `type = 'url```, type = 'uimhre'\`). Tabhair faoi deara, mar gheall ar thacaíocht neamhréitiúil don chineál ionchuir uimhir le huimhreacha logánaithe i mbrabhsálaithe reatha, ní úsáideann Django é ach nuair nach bhfuil réimsí uimhriúla logánaithe.
- Is féidir an argóint `uimhre` d':ref: aistriúcháin iolrach leisciúil \<lazy-plural-translations\>\`a sholáthar ag am aistriúcháin seachas ag am sainmhínithe.
- Maidir le horduithe bainistíochta saincheaptha: Déantar fíorú ar láithreacht socruithe bailí in orduithe a iarrann é tríd an rogha inmheánach ```BaseCommand.CAN_IMPORT_SETTINGS` a úsáid go neamhspleách ó láimhseáil an áitiúil ba chóir a bheith gníomhach le linn forghníomhú an ordaithe. Is féidir leis an rogha inmheánach nua ``BaseCommand.leave_locale_alone``` tionchar a imirt ar an dara ceann anois. Féach:ref: management-commands-and-locales le haghaidh tuilleadh sonraí.
- Tá an: Attr: ~django.views.generic.edit.deletionMixin.success\_URL o:class: ~django.views.generic.edit.deletionMixin idirphóilte anois le `__dict__` a object\`.
- [`HttpResponseRedirect`](/ga/5.2/ref/request-response/#django.http.HttpResponseRedirect) and
  [`HttpResponsePermanentRedirect`](/ga/5.2/ref/request-response/#django.http.HttpResponsePermanentRedirect) now provide an `url`
  attribute (equivalent to the URL the response will redirect to).
- Úsáideann cúltaca taisce `MemcachedCache` an prótacal is déanaí:mod: pickle atá ar fáil anois.
- Added:Class: ~django.contrib.messages.views.successMessageMixin a sholáthraíonn tréith `success_message` d'aicmí bunaithe le haghaidh: class: ~django.views.generic.edit.formView ranganna bunaithe.
- Cuireadh na roghanna: attr: Django.db.Models.ForeignKey.DB\_Constraint agus:attr: Django.db.Models.manyTomanyField.DB\_Constraint leis.
- Tá an leabharlann jQuery leabaithe sa riarachán uasghrádaithe go leagan 1.9.1.
- \<django.contrib.syndication.Feed.get\_context\_data\>Is féidir le fothaí sindiciúcháin (:mod: django.contrib.syndication) comhthéacs breise a chur tríd anois chun teimpléid a bheathú ag baint úsáide as glao nua: meth: feed.get\_context\_data () .
- Tá \<field\_name\>rang column- ag na colúin liosta riaracháin sa HTML ionas gur féidir ceanntásc na gcolún a stíleáil le CSS, m.sh. chun leithead colún a shocrú.
- Is féidir an: Ref: leibhéal aonrú \<database-isolation-level\>\`a shaincheapadh faoi PostgreSQL.
- Tá meas anois ag an gclib teimpléad:ttag: blocktrans `TEMPLATE_STRING_IF_INVALID` d'athróga nach bhfuil i láthair sa chomhthéacs, díreach cosúil le tógáil teimpléad eile.
- Cuirfidh `SimpleLazyObject`s léirithe níos cabhrach i láthair anois i gcásanna dífhabhtaithe bhlaosc.
- Gineálach:Class: ~django.contrib.gis.db.models.geometryfield is féidir a chur in eagar anois leis an ngiuirléid OpenLayers sa riarachán.
- Tá a: doc: seicliosta imscartáil sa doiciméad\</howto/deployment/checklist\> ú.
- Fuair an t-ordú: Djadmin: diffsettings rogha `--all`.
- `Django.Forms.Fields.Field. Glaonn __init__` anois ```super () ``, ag ligean do mheascáin allamuigh modhanna ``__init__ ()``` a chur i bhfeidhm a ghlaofar go hiontaofa.
- Cuireadh an paraiméadar `validate_max` le BaseFormSet\` agus:func: ~django.forms.formsets.formset\_factory, agus `ModelForm` agus leaganacha inlíne den chéanna. Soiléiríodh iompar bailíochtaithe do fhoirmeacha le `max_num`. Rinneadh doiciméadú ar an iompar neamhdhoiciméadaithe roimhe seo a chruaigh foirmeacha i gcoinne ionsaithe ídithe cuimhne, agus athraíodh teorainn neamhdhoiciméadaithe na bhfoirmeacha níos airde 1000 nó `max_num` mar sin tá sé 1000 níos mó ná max\_num\` i gcónaí.
- Cuireadh bcryptsha256PasswordHasher\` leis chun an saincheist a bhriseadh pasfhocal le bcrypt a réiteach.
- [Pillow](https://pypi.org/project/Pillow/) is now the preferred image manipulation library to use with
  Django. [PIL](https://pypi.org/project/PIL/) is pending deprecation (support to be removed in Django
  1.8). To upgrade, you should **first** uninstall PIL, **then** install
  Pillow.
- [`ModelForm`](/ga/5.2/topics/forms/modelforms/#django.forms.ModelForm) accepts several new `Meta`
  options.

  - Déanfar réimsí atá san áireamh sa liosta `localized_fields` logánaithe (trí `localize` a shocrú ar an réimse foirme).
  - Is féidir na roghanna `labels`, help\_texts\` agus `error_messages` a úsáid chun na réimsí réamhshocraithe a shaincheapadh, féach:ref: modelforms-overriding-default-fields le haghaidh sonraí.
- Glacann an argóint `roghnaí` le réimsí samhlacha anois le athrinnithe athraitheacha in ionad athraitheanta liostaí nó tupáil a bheith ag teastáil.
- Is féidir an abairt chúis a shaincheapadh i bhfreagraí HTTP ag baint úsáidea:attr: ~django.http.httpResponse.Reason\_Phrase.
- Nuair a thugtar URL an chéad leathanaigh eile le haghaidh ```django.contrib.auth.views.logout () ``, `django.contrib.auth.views.password_reset ()```, django.contrib.auth.views.password\_reset\_confirm () \`, agus `django.contrib.auth.views.wordpass_change ()`, is féidir leat ainmneacha URL a rith anois agus réiteofar iad.
- Sonraíonn an rogha nua:option: dumpdata --pks eochracha príomhúil na rudaí le dumpáil. Ní féidir an rogha seo a úsáid ach le samhail amháin.
- Cuir modhanna `QuerySet` leis: meth: ~django.db.models.query.queryset.first agus:meth: ~django.db.models.query.queryset.last ar modhanna áisiúlachta iad a thugann an chéad réad nó an rud deireanach a mheaitseálann na scagairí. Tugann sé ar ais `None` mura bhfuil aon rudaí ann a mheaitseáil.
- [`View`](/ga/5.2/ref/class-based-views/base/#django.views.generic.base.View) and
  [`RedirectView`](/ga/5.2/ref/class-based-views/base/#django.views.generic.base.RedirectView) now support HTTP `PATCH`
  method.
- Glacann `GenericForeignKey` argóint roghnach `for_concrete_model` anois, a ligeann don réimse tagairt do mhúnlaí seachfhreastalaí nuair a shocraítear é go False. Is é an réamhshocrú `True` chun an sean-iompar a choinneáil.
- Stórálann an [`LocaleMiddleware`](/ga/5.2/ref/middleware/#django.middleware.locale.LocaleMiddleware) an teanga ghníomhach sa seisiún anois mura bhfuil sí i láthair ann. Cuireann sé seo cosc ​​​​ar chaillteanas socruithe teanga tar éis sruthlú seisiúin, e.g. logáil amach.
- [`SuspiciousOperation`](/ga/5.2/ref/exceptions/#django.core.exceptions.SuspiciousOperation) has been differentiated
  into a number of subclasses, and each will log to a matching named logger
  under the `django.security` logging hierarchy. Along with this change,
  a `handler400` mechanism and default view are used whenever
  a `SuspiciousOperation` reaches the WSGI handler to return an
  `HttpResponseBadRequest`.
- Cuimsíonn an eisceacht: EXC: ~django.db.models.model.doesNotExist teachtaireacht anois a léiríonn ainm na tréithe a úsáidtear don chuardach.
- Ní theastaíonn argóint eochairfhocal amháin ar a laghad ag an modh: Meth: ~django.db.models.query.queryset.get\_or\_create a thuilleadh.
- Cuimsíonn an ranga:Class: ~Django.Test.SimpleTestCase cúntóir dearbhaithe nua chun earráidí foirmset a thástáil: Django.Test.SimpleTestCase.AssertFormSetError () .
- Is féidir liosta na réimsí gaolmhara a cuireadh le a:class: ~django.db.models.query.queryset trí:meth: ~django.db.models.queryset.select\_related a ghlanadh trí select\_related (None) .
- Is féidir na modhanna: Meth: ~django.contrib.admin.inlineModelAdmin.get\_extra agus:meth: ~django.contrib.admin.inlineModelAdmin.get\_max\_num ar: class: ~django.contrib.admin.inlineModelAdmin a shaincheapadh chun líon breise agus uasta na bhfoirmeacha inlíne a shaincheapadh.
- Tá modh a: meth: ~django.forms.formsets.baseFormSet.TOTAL\_ERROR\_COUNT ag Formsets anois.
- [`ModelForm`](/ga/5.2/topics/forms/modelforms/#django.forms.ModelForm) fields can now override error messages
  defined in model fields by using the
  [`error_messages`](/ga/5.2/ref/forms/fields/#django.forms.Field.error_messages) argument of a `Field`’s
  constructor. To take advantage of this new feature with your custom fields,
  [see the updated recommendation](/ga/5.2/ref/forms/validation/#raising-validation-error) for raising
  a `ValidationError`.
- [`ModelAdmin`](/ga/5.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin) now preserves filters on the list view
  after creating, editing or deleting an object. It's possible to restore the previous
  behavior of clearing filters by setting the
  [`preserve_filters`](/ga/5.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin.preserve_filters) attribute to `False`.
- \<django.views.generic.edit.FormMixin.prefix\>Cuireadh leis: Meth: FormMixin.Get\_Prefix \`(a fhilleann: attr: \`FormMixin.Prefix\<django.views.generic.edit.FormMixin.get\_prefix\> de réir réamhshocraithe) chun ceadú: attr: ~django.forms.form.prefix na foirme a shaincheapadh.
- Is féidir le ceisteanna amha (Manager.raw () \`\`nó \`cursor.execute ()\`) an stíl pharaiméadar “pyformat” a úsáid anois, áit a dtugtar % (name) s'\` sealbhóirí ionaid sa cheist agus cuirtear na paraiméadair mar fhoclóir seachas liosta (ach amháin ar SQLite). Tá sé seo indéanta le fada (ach níor thacaíodh sé go hoifigiúil) ar MySQL agus PostgreSQL, agus tá sé ar fáil anois ar Oracle freisin.
- Méadaíodh 20% an líon athraithe réamhshocraithe don hasher pasfhocal PBKDF2. Ní dhéanfaidh an t-athrú comhoiriúnach ar chúl difear do phasfhocail nó ar úsáideoirí atá ann cheana a rinne fo-aicmiú `Django.contrib.auth.hashers.pbkdf2PasswordHasher` chun an luach réamhshocraithe a athrú. Pasfhocal: ref: 'uasghrádófar \<password-upgrades\>\`chun an comhaireamh athraithe nua a úsáid de réir mar is gá.

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

> **Warning**
>
> \<deprecation-removed-in-1.6\>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.

### Samhail nua bainistíochta idirbheart

#### Athruithe iompraíochta

Tá autocommit ar leibhéal bunachar sonraí cumasaithe de réir réamhshocraithe i Django 1.6. Cé nach n-athraíonn sé seo spiorad ginearálta bainistíochta idirbheart Django, tá cúpla neamhoiriúnacht cúil ann.

#### Savepoints agus `AssertNumqueries`

D'fhéadfadh ráitis bhreise a bheith mar thoradh ar na hathruithe i mbainistíocht idirbheart chun pointí sábhála a chruthú, a scaoileadh Is dóichí go dtarlóidh sé seo le SQLite, ós rud é nár thacaigh sé le pointí sábhála go dtí an scaoileadh seo.

Má theipeann ar thástálacha ag baint úsáidea:meth: ~django.test.transactionTestCase.assertNumqueries mar gheall ar líon níos airde ceisteanna ná mar a bhíothas ag súil leis, seiceáil go bhfuil baint ag na ceisteanna breise le pointí sábhála, agus coigeartaigh líon na gceisteanna a bhfuil súil leis dá réir.

#### Rogha Autocommit do PostgreSQL

I leaganacha roimhe seo, ní raibh autocommit ar leibhéal bunachar sonraí ach rogha do PostgreSQL, agus cuireadh faoi dhíchumasú é de réir réamhshocraithe. Déantar neamhaird ar an rogha seo anois agus is féidir é a bhaint.

### Rathóir tástála nua

D'fhonn comhsheasmhacht níos mó a choinneáil le modúl unittest\` Python, ní thacaíonn an reathóir tástála nua (`Django.Test.Runner.DiscoverRunner`) go huathoibríoch le roinnt cineálacha tástálacha a thacaigh an rádálaí roimhe seo:

- Ní aimsífear agus ní reáchtálfar tástálacha i gcomhaid `models.py` agus `tests/__init__.py` a thuilleadh. Bog iad chuig comhad a dtosaíonn a n-ainm le `tást`.
- Ní aimsífear doctests go huathoibríoch a thuilleadh. \<doctest-unittest-api\>Chun doctests a chomhtháthú i do shraith tástála, lean na:ref: moltaí i ndoiciméadú Python .

Cuireann Django leagan modhnaithe den mhodúl: mod: doctest ó leabharlann caighdeánach Python (i django.test. \_doctest\`) agus tá roinnt fóntais doctest breise ann. Tá na fóntais seo díscríofa agus bainfear iad i Django 1.8; ba chóir sraith doctest a nuashonrú chun oibriú le modúl doctest an leabharlainne caighdeánach (nó a thiontú go tástálacha comhoiriúnacha unittest\`).

Más mian leat moill a chur ar nuashonruithe ar do tsraith tástála, is féidir leat do shocrú: setting: TEST\_RUNNER a shocrú go `DJANGO.TEST.SIMPLE.DJANGOTESTSUITERUNNER` chun an sean-iompar tástála a chur ar ais go hiomlán. Tá `DjangoTestSuiterunner` díluaite ach ní bhainfear é as Django go dtí leagan 1.8.

### Baint de `Django.contrib.gis.tests.geodjangoTestSuiterunner` rádaí tástála saincheaptha GeodJango

Tá sé seo d'fhorbróirí atá ag obair ar an bhfeidhmchlár GeodJango féin agus a bhaineann leis an mír thuas faoi athruithe sna reathaithe tástála:

Baineadh an reathnóir tástála Django.contrib.gis.tests.geodjangoTestsuitRunner \`\`agus ní thacaítear leis an socrú forghníomhaithe tástálacha neamhspleách GeodJango a chuir sé i bhfeidhm níos mó. Chun na tástálacha GeodJango a reáchtáil ní gá ach an \`DiscoverRunner\` nua a úsáid agus an aip django.contrib.gis\` a shonrú.

### Múnlaí úsáideora saincheaptha i dtá

D'athraigh tabhairt isteach an rádálaí tástála nua beagán ar an mbealach a allmhairítear samhlacha tástála. Mar thoradh air sin, ní mór d'aon tástáil a sháraíonn `AUTH_USER_MODEL` chun iompar a thástáil le ceann de mhúnlaí úsáideora tástála Django (Django.contrib.auth.tests.contrib.extensionUser\`) an tsamhail Úsáideora a allmhairiú go sainráite i do mhodúl tástála anois:

```
from django.contrib.auth.tests.custom_user import CustomUser

@override_settings(AUTH_USER_MODEL="auth.CustomUser")
class CustomUserFeatureTests(TestCase):
    def test_something(self):
        # Test code here
        ...
```

Cuireann an t-allmhairiú seo iallach ar an tsamhail úsáideora saincheaptha a Gan an t-allmhairiú seo, ní bheidh an tástáil in ann malartú sa tsamhail úsáideora saincheaptha, agus gheobhaidh tú tuairisciú earráide:

```pytb
ImproperlyConfigured: AUTH_USER_MODEL refers to model 'auth.CustomUser' that has not been installed
```

### Cuardaigh ```lá ``, `mhí```, agus `laeth_seachtaine` atá ar an eolas ar chrios ama

Tugann Django 1.6 tacaíocht crios ama isteach le haghaidh: lookup: day, :lookup: month, agus:lookup: week\_day cuardaigh nuai:setting: USE\_TZ `True`. Rinneadh na cuardaigh seo roimhe seo i UTC beag beann ar an crios ama reatha.

\<database-time-zone-definitions\>Éilíonn sé seo: ref: [sainmhínithe crios ama sa bhunachar sonraí \`. Má tá SQLite á úsáid agat, ní mór duit pytz\_ a shuiteáil. Má tá MySQL á úsáid agat, ní mór duit pytz\_ a shuiteáil agus na táblaí crios ama a luchtú le \`mysql\_tzinfo\_to\_sql](http://pytz.sourceforge.net/).

### Cuir leis QuerySet.DateTimes () \`\`

Nuair a bhí an: doc: tacaíocht crios ama' a cuireadh i Django 1.4 gníomhach, :meth: QuerySet.dates () \</topics/i18n/timezones\> d'fhill cuardaigh torthaí gan choinne, toisc gur rinneadh an comhiomlánú i \<django.db.models.query.QuerySet.dates\>UTC. \<django.db.models.query.QuerySet.datetimes\>Chun é seo a shocrú, tugann Django 1.6 API nua isteach,: meth: QuerySet.DateTimes () . Éilíonn sé seo cúpla athrú i do chód.

#### Tugann ```QuerySet.dates () ``rudaí ``dáta```

[`QuerySet.dates()`](/ga/5.2/ref/models/querysets/#django.db.models.query.QuerySet.dates) now returns a
list of [`date`](https://docs.python.org/3/library/datetime.html#datetime.date). It used to return a list of
[`datetime`](https://docs.python.org/3/library/datetime.html#datetime.datetime).

\<django.db.models.query.QuerySet.datetimes\>:meth: QuerySet.dateTimes () \`filleann liosta de:class: \`~datetime.datetime.

#### ```QuerySet.dates () ``nach bhfuil inúsáidte a thuilleadh ar ``DateTimeField```

[`QuerySet.dates()`](/ga/5.2/ref/models/querysets/#django.db.models.query.QuerySet.dates) raises an
error if it's used on [`DateTimeField`](/ga/5.2/ref/models/fields/#django.db.models.DateTimeField) when time
zone support is active. Use [`QuerySet.datetimes()`](/ga/5.2/ref/models/querysets/#django.db.models.query.QuerySet.datetimes) instead.

#### Éilíonn `date_hierarchy` sainmhínithe crios ama

\<django.db.models.query.QuerySet.datetimes\>Braitheann gné: Attr: ~django.contrib.admin.modeladmin.date\_hierarchy den riarachán anois ar:meth: QuerySet.DateTimes () \`nuair a úsáidtear é ar a:class: \`~Django.db.Models.DateTimeField.

Éilíonn sé seo sainmhínithe crios ama sa bhunachar sonraí nuai:setting: USE\_TZ `True`. \<database-time-zone-definitions\>:ref: Foghlaim níos mó .

#### `date_list` i dtuairimí cineálacha teastaíonn sainmhínithe crios ama

Ar an gcúis chéanna, teastaíonn sainmhínithe crios ama sa bhunachar sonraí chun rochtain a fháil ar date\_list\` i gcomhthéacs radharc cineálach dáta-bhunaithe nuair a bhíonn an radharc bunaithe ar a:class: ~Django.db.Models.DateTimeField agus:setting: USE\_TZ True\`. \<database-time-zone-definitions\>:ref: Foghlaim níos mó .

### D'fhéadfadh cuardaigh nua teacht ar réimsí samhail

Tugann Django 1.6 isteach cuardach ``` `huair ``, `nóiméad ```, agus ```soicind ``ar:class: `~django.db.Models.DateTimeField`. Má bhí réimsí samhail agat ar a dtugtar ``huair ``, `nóiméad```, nó `soicind`, beidh na cuardaigh nua ag teacht le hainmneacha réimse leat. Cuir cuardach explit:lookup: exact i gceist más saincheist é seo.

### Ní réamhshocraíonn `Booleanfield` go `False` a thuilleadh

Nuair nach bhfuil explicit:attr: ~django.db.models.booleanfield ag a:class: ~django.db.models.field.default, is é None an luach réamhshocraithe intuigthe. Sa leagan roimhe seo de Django, “False” a bhí ann, ach níor léirigh sé sin go cruinn an easpa luach.

Féadfaidh cód atá ag brath ar an luach réamhshocraithe ná `False` eisceacht a ardú agus cásanna samhail nua á shábháil ar an mbunachar sonraí, toisc nach luach inghlactha é `None` do a:class: ~Django.db.Models.BooleanField. Ba chóir duit `Default=False` a shonrú sa sainmhíniú réimse, nó a chinntiú go bhfuil an réimse socraithe go `True` nó `False` sula sábhálfar an réad.

### Aistriúcháin agus tuairimí i d

#### Aistriúcháin a eastóscadh tar éis

Aithníonn eastóscadh litríochtaí inaistrithe ó theimpléid leis an ordú:djadmin: makemessages tógáil i18n i gceart anois nuair a bhíonn siad suite i ndiaidh trácht cineál `{#`/#}\` ar an líne chéanna. M.sh.:

```html+django
{# A comment #}{% trans "This literal was incorrectly ignored. Not anymore" %}
```

#### Suíomh tuairimí aistritheora

[Comments for translators in templates](/ga/5.2/topics/i18n/translation/#translator-comments-in-templates) specified using `{#` / `#}` need to
be at the end of a line. If they are not, the comments are ignored and
[`makemessages`](/ga/5.2/ref/django-admin/#django-admin-makemessages) will generate a warning. For example:

```html+django
{# Translators: This is ignored #}{% trans "Translate me" %}
{{ title }}{# Translators: Extracted and associated with 'Welcome' below #}
<h1>{% trans "Welcome" %}</h1>
```

### Ag lua i reverse () \`\`

Agus URLanna á aisiompú, níor chuir Django `django.utils.http.urlquote` i bhfeidhm ar argóintí sula ndéantar iad a ionghabháil i bpatrúin URL. Tá an fabht seo socraithe i Django 1.6. Má d'oibrigh tú timpeall ar an fabht seo trí luachan URL a chur i bhfeidhm sula ndéantar argóintí a chur chuig reverse () , d'fhéadfadh luachan dúbailte a bheith mar thoradh air seo. Má tharlaíonn sé seo, ní gá ach an URL atá ag luachan as do chód a bhaint. Beidh ort freisin carachtair speisialta in URLanna a úsáidtear in:func: ~django.test.simpletestCase.assertDirects a gcuid leaganacha ionchódaithe a chur in ionad.

### Seoltaí IP a stóráil san aip tráchtanna

Úsáideann an aip tráchtanna anois GenericipAddressfield\` chun seoltaí IP tráchtaireoirí a stóráil, chun tacú le tráchtanna a chuirtear isteach ó sheoltaí IPv6. Go dtí seo, stóráil sé iad i iPaddressfield\`, nach bhfuil i gceist ach tacú le IPv4. Agus trácht a dhéantar ó sheoladh IPv6 á shábháil, déanfaí an seoladh a ghearradh go ciúin ar bhunachair sonraí MySQL, agus ardófaí eisceacht ar Oracle. Beidh ort an cineál colúin a athrú i do bhunachar sonraí chun leas a bhaint as an athrú seo.

Maidir le MySQL, déan an cheist seo ar bhunachar sonraí do thionscadail:

```sql
ALTER TABLE django_comments MODIFY ip_address VARCHAR(39);
```

Maidir le Oracle, déan an cheist seo:

```sql
ALTER TABLE DJANGO_COMMENTS MODIFY (ip_address VARCHAR2(39));
```

Mura gcuireann tú an t-athrú seo i bhfeidhm, níl an t-iompar gan athrú: ar MySQL, gearrtar seoltaí IPv6 go ciúin; ar Oracle, gintear eisceacht. Níl aon athrú bunachar sonraí ag teastáil le haghaidh bunachair sonraí SQLite nó PostgreSQL.

### Céatadán litríochta i gceisteanna `cursor.execute`

Nuair a bhíonn ceisteanna SQL amha á \<executing-custom-sql\>reáchtáil agat tríd an modh:ref: cursor.execut, tá an riail maidir le litríochtaí faoin gcéad (%\`) a dhúbailt taobh istigh den cheist aontaithe. Bhí iompar roimhe seo ag brath ar chúlcheann an bhunachar sonraí. Anois, thar gach cúltaca, ní gá duit ach carachtair faoin gcéad liteartha a dhúbailt má tá paraiméadair athsholáthair á sholáthar agat freisin. Mar shampla:

```
# No parameters, no percent doubling
cursor.execute("SELECT foo FROM bar WHERE baz = '30%'")

# Parameters passed, non-placeholders have to be doubled
cursor.execute("SELECT foo FROM bar WHERE baz = '30%%' and id = %s", [self.id])
```

Ní mór d'úsáideoirí SQLite\` ceisteanna den sórt sin a sheiceáil agus a nuashonrú.

### Téacs cabhrach de réimsí foirme samhail do réimsí ManyTomanyField

Rindreáil HTML de réimsí foirme samhail a fhreagraíonn do:class: ~django.db.models.manyToManyField réimsí samhail a úsáidtear chun an abairt crua-chódaithe a fháil:

> *Hold down "Control", or "Command" on a Mac, to select more than one.*

(nó a aistriúchán go dtí an áit ghníomhach) a fhorchuir mar an finscéal cabhrach a thaispeántar leo mura shon \<django.db.models.Field.help\_text\>\<django.forms.Field.help\_text\>raigh an t-úsáideoir tréithe: attr: model \`nor:attr: \`form help\_text\` (nó cuireadh an sreang seo i gceangal le haon help\_text\` a sholáthraíodh).

Ó tharla sé seo ag an gciseal samhail, ní raibh aon bhealach ann chun an téacs a chosc ó bheith le feiceáil i gcásanna nach raibh sé infheidhme mar réimsí foirme a chuireann idirghníomhaíochtaí úsáideora i bhfeidhm nach mbaineann méarchlár agus/nó luch.

Ag tosú le Django 1.6, mar fhoráil sealadach comhoiriúnachta siar ad-hoc, aistríodh an loighic chun an abairt “Coinnigh síos...” a chur chuig ciseal réimse foirme samhail agus modhnaíodh chun an téacs a chur leis ach amháin nuair is é an giuirléid gaolmhar: class: ~django.forms.selectMultiple nó fo-aicmí roghnaithe.

Féadfaidh an t-athrú dul i bhfeidhm ort ar bhealach neamh-chomhoiriúnach ar chúl má úsáideann tú réimsí foirme samhail saincheaptha agus/nó giuirléidí do réimsí samhail ```ManyTomanyField` a bhfuil a UIanna ag brath ar sholáthar uathoibríoch na habairte crua-chódaithe luaite. Caithfidh na forfheidhmithe réimse foirmeacha seo oiriúnú don chás nua trína láimhseáil féin ar an tréith ``help_text``` a sholáthar.

Ní bhíonn tionchar ag iarratais a úsáideann áiseanna Django:doc: foirm samhail \</topics/forms/modelforms\> mar aon le foirm ionsuite Django: doc: fields agus:doc: widgets ach ní mór a bheith ar an eolas faoin méid atá cur síos in:ref: m2m-help\_text-deprecation \</ref/forms/fields\> \</ref/forms/widgets\> thíos.

### Athrú QuerySet

Athraíodh an t-athrú QuerySet\` chun gach sraitheanna a fuarthas a thiontú go rudaí Samhail . I Django 1.5 agus níos luaithe tiontaíodh na sraitheanna a fuarthas go rudaí Samhail i gcodanna de 100.

Oibreoidh an cód atá ann cheana, ach d'fhéadfadh méid na sraitheanna a thiontú go rudaí athrú i gcásanna úsáide áirithe I measc na n-úsáidí den sórt sin tá lúbadh go páirteach thar shraith fiosrúcháin nó aon úsáid a chríochnaíonn ag déanamh `__bool__` nó `__contains__`.

Go háirithe thóg an chuid is mó de chúltaca bunachar sonraí na sraitheanna go léir in aon ghuair cheana féin i 1.5.

Is féidir fós na sraitheanna a fuarthas a thiontú go rudaí Model go leisciúil tríd an modh: meth: ~django.db.models.query.queryset.iterator () a úsáid.

### \<django.forms.BoundField.label\_tag\>:meth: BoundField.label\_tag \`tá an fhoirm anois: attr: \`~django.forms.form.label\_suffix

\<django.forms.Form.as\_ul\>Tá sé seo comhsheasmhach leis an gcaoi a ndéanann modhanna cosúil:meth: Form.as\_P \<django.forms.Form.as\_p\>\`agus:meth: \`Form.as\_ul lipéid a dhéanann.

Má rindeann tú `label_tag` de láimh i do theimpléid:

```html+django
{{ form.my_field.label_tag }}: {{ form.my_field }}
```

beidh tú ag iarraidh an colon a bhaint (nó cibé deighilteoir eile a d'fhéadfá a bheith á úsáid) chun é a dhúbailt a sheachaint agus tú ag uasghrádú go Django 1.6. \<label\>Déanfaidh an teimpléad seo a leanas i Django 1.6 go comhionann leis an teimpléad thuas i Django 1.5, ach amháin go mbeidh an colon le feiceáil taobh istigh den eilimint .

```html+django
{{ form.my_field.label_tag }} {{ form.my_field }}
```

déanfaidh sé rud éigin cosúil le:

```html
<label for="id_my_field">My Field:</label> <input id="id_my_field" type="text" name="my_field" />
```

Más mian leat an t-iompar reatha a bhaineann le rindreáil `label_tag` a choinneáil gan an `label_suffix`, cuir an fhoirm `label_suffix="`. Is féidir leat an label\_suffix\` a shaincheapadh freisin ar bhonn in aghaidh an réimse ag baint úsáide as an paraiméadar nua `label_suffix` ar:meth: ~django.forms.boundfield.label\_tag.

### Tuairimí riaracháin `_changelist_filters` paraiméadar GET

Chun scagairí amharc liosta a chaomhnú agus a athchóiriú a bhaint amach, téann tuairimí riaracháin timpeall an pharaiméadair GET `_changelist_filters` anois. Tá sé tábhachtach go gcuirfidh tú cuntas ar an athrú sin má tá teimpléid riaracháin saincheaptha agat nó má tá do thástálacha ag brath ar na URLanna roimhe seo. Más mian leat filleadh ar an iompar bunaidh is féidir leat an tréith: attr: ~django.contrib.admin.modeladmin.preserve\_filters a shocrú go `False`.

### Úsáideann athshocrú pasfhocal `django.contrib.auth` ionchódú bonn 64 de Úsáideoir PK

D'úsáid leaganacha roimhe seo de Django ionchódú bonn 36 den phríomh-eochair ```Úsáideoir ``sna tuairimí athshocraithe pasfhocal agus URLanna (``django.contrib.auth.views.password_reset_confirm ()```). Is leor ionchódú Bonn 36 más sláimhir é príomh-eochair an úsáideora, áfach, le samhlacha úsáideora saincheaptha a thabhairt isteach i Django 1.5, b'fhéidir nach mbeidh an toimhde sin fíor a thuilleadh.

Athraíodh ```django.contrib.auth.views.password_reset_confirm () ``chun paraiméadar ``uidb64``` a ghlacadh in ionad `uidb36`. Má tá an dearcadh seo á aisiompú agat, mar shampla i dteimpléad saincheaptha password\_reset\_email.html\`, bí cinnte do chód a nuashonrú.

Cuireadh shim sealadach do django.contrib.auth.views.password\_reset\_verify () \`\`a ligfidh naisc athshocraithe pasfhocal a ghintear roimh Django 1.6 leanúint ag obair chun comhoiriúnacht ar ais a sholáthar; bainfear é seo i Django 1.7. Dá bhrí sin, chomh fada agus a bheidh do shuíomh ag rith Django 1.6 ar feadh níos mó ná \`\`PASSWORD\_RESET\_TIMEOUT\_DAYS \`, ní bheidh aon éifeacht ag an athrú seo. Mura bhfuil (mar shampla, má dhéanann tú uasghrádú díreach ó Django 1.5 go Django 1.7), ansin ní oibreoidh aon naisc athshocraithe pasfhocal a ghintear sula ndéanann tú uasghrádú go Django 1.7 nó níos déanaí tar éis an uasghrádaithe.

Ina theannta sin, má tá aon URLanna athshocraithe pasfhocal saincheaptha agat, beidh ort iad a nuashonrú trí ```uidb36` a chur in ionad ``uidb64``` agus an doic a leanann an patrún sin le slash. Cuir `_\ -` freisin leis an liosta carachtair a d'fhéadfadh a mheaitseáil leis an bpatrún `uidb64`.

Mar shampla:

```
url(
    r"^reset/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$",
    "django.contrib.auth.views.password_reset_confirm",
    name="password_reset_confirm",
),
```

éiríonn sé:

```
url(
    r"^reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>.+)/$",
    "django.contrib.auth.views.password_reset_confirm",
    name="password_reset_confirm",
),
```

B'fhéidir gur mhaith leat an shim a chur leis freisin chun tacú leis na naisc athshocraithe sean-stíl. Ag baint úsáide as an sampla thuas, mhodhnófá an url atá ann cheana trí django.contrib.auth.auth.views.password\_reset\_confirm\` a chur in ionad django.contrib.auth.views.password\_reset\_confirm\_uidb36\` agus bain an argóint ainm ionas nach mbeidh sé ag teacht ar an url nua:

```
url(
    r"^reset/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$",
    "django.contrib.auth.views.password_reset_confirm_uidb36",
),
```

Is féidir leat an patrún URL seo a bhaint tar éis d'aip a imscaradh le Django 1.6 le haghaidh PASSWORD\_RESET\_TIMEOUT\_DAYS .

### Athraigh sraith seisiúin réamhshocraithe go JSON

Go stairiúil, d'úsáid :mod: django.contrib.sessions: mod: pickle chun sonraí seisiúin a shraitheadh sula ndéantar iad a stóráil sa chúltaca. Má tá cúltaca seisi \<cookie-session-backend\>úin fianán sínithe á úsáid agat: agus:setting: SECRET\_KEY is aithne ag ionsaitheoir (níl leochaileacht bhunúsach i Django a chuirfeadh sé sceitheadh), d'fhéadfadh an t-ionsaitheoir teaghrán a chur isteach ina seisiún a fhorghníomhaíonn cód treallach ar an bhfreastalaí. Tá an teicníc chun é sin a dhéanamh simplí agus ar fáil go héasca ar an idirlíon. Cé go síníonn stóráil seisiún fianán na sonraí atá stóráilte ag fianán chun cur isteach a chosc, méadaíonn sceitheadh a: setting: SECRET\_KEY láithreach go leochaileacht iargúlta forghníomhaithe cód.

Is féidir an t-ionsaí seo a mhaolú trí shraitheadh sonraí seisiúin ag baint úsáide as JSON seachas: mod: pickle. Chun é seo a éascú, thug Django 1.5.3 suíomh nua isteach, :setting: SESSION\_SERIALIZER, chun an fhormáid sraitheach seisiúin a shaincheapadh. Maidir le comhoiriúnacht ar ais, réamhshocraigh an socrú seo le húsáid: mod: pickle i Django 1.5.3, ach tá an réamhshocraithe athraithe againn go JSON i 1.6. Má dhéanann tú uasghrádú agus ag aistriú ó phiocán go JSON, caillfear seisiúin a cruthaíodh roimh an uasghrádú Cé nach dtacaíonn sraith JSON le gach réad Python cosúil:mod: pickle a dhéanann, molaimid go mór seisiúin JSON sraitheach a úsáid. Bí ar an eolas faoi na rudaí seo a leanas agus tú ag seiceáil do chód chun a fháil amach an n-oibreoidh sraith JSON do d'iarratas:

- Teastaíonn eochracha teaghrán ó JSON, mar sin is dócha go mbeidh fadhbanna ort má tá eochracha neamh-sreang á úsáid agat i request.session \`.
- Ní oibreoidh éag seisiúin trí luachanna `datetime` a rith chuig: ~django.contrib.sessions.backends.base.sessionbase.set\_expiry toisc nach bhfuil luachanna `datetime` sraitheach i JSON. Is féidir leat luachanna sláimhir a úsáid ina ionad sin.

Féach an doiciméadach:ref: session\_serialization le haghaidh tuilleadh sonraí.

### Athraíonn Mapper Coibhneasta Cuspóir

Tá go leor athruithe ar an ORM i Django 1.6. Tagann na hathruithe seo den chuid is mó i dtrí chatagóir:

1. Socruithe fabhtanna (m.sh. clásail ceangail cearta le haghaidh caidreamh cineálach, ceisteanna a chomhcheangal, páirt a chur chun cinn, agus ceartú
2. Ullmhú le haghaidh gnéithe nua. Mar shampla tá an ORM réidh go hinmheánach anois le haghaidh eochracha eachtracha ilcholumn.
3. Glanadh ginearálta.

D'fhéadfadh roinnt fadhbanna comhoiriúnachta a bheith mar thoradh ar Mar shampla, ginfidh roinnt ceisteanna ainmneacha tábla éagsúla anois. \<django.db.models.query.QuerySet.extra\>Is féidir leis seo dul i bhfeidhm ar: meth: QuerySet.extra () \`. Ina theannta sin, tabharfaidh roinnt ceisteanna torthaí difriúla anois. \<django.db.models.Q\>Is sampla: meth: \`eisiamh (coinníoll) \<django.db.models.query.QuerySet.exclude\>\`nuair is ceann casta é an coinníoll (tagairt ilchomhtháirteacha taobh istigh: aicme: \`rudaí Q). I go leor cásanna níor thug na ceisteanna a raibh tionchar orthu torthaí cearta i Django 1.5 ach déanann siad anois. Ar an drochuair tá cásanna ann freisin a tháirgeann torthaí éagsúla, ach ní tháirgeann Django 1.5 ná 1.6 torthaí cearta.

Faoi dheireadh, rinneadh go leor athruithe ar na APIs inmheánacha ORM.

### Ilghnéitheach

- Ní féidir an Django.db.Models.Query.EmptyQuerySet\` a thabhairt níos mó - níl sé inúsáidte ach mar aicme marcóra chun seiceáil má:meth: ~django.db.models.query.queryset.none tugtar: isinstance (qs.none (), emptyQuerySet) \`\`
- Má úsáidtear do chód CSS/JavaScript chun giuirléidí ionchuir HTML a rochtain de réir cineál, ba cheart duit é a athbhreithniú mar d'fhéadfadh giuirléidí `type='text'` a aschur anois mar `type='email'`, type='url'\` nó type='number'\` ag brath ar a gcineál réimse comhfhreagrach.
- Foirm field's:attr: ~django.forms.field.error\_messages ina bhfuil sealbhóir áite ba cheart anois sealbhóir áit ainmnithe a úsáid i gcónaí ("Luach '% (value) s' ró-mhór"\` in ionad "Luach '%s' ró-mór"). Féach an doiciméadú réimse comhfhreagrach le haghaidh sonraí faoi ainmneacha na sealbhóirí áite. Bíonn tionchar go háirithe ag na hathruithe i 1.6 ar: aicme: \`~django.forms.decimalfield agus:class: ~django.forms.ModelMultipleChoiceField.
- Some:attr: ~django.forms.field.error\_messages le haghaidh: aicme: ~django.forms.integerfield, :class: ~django.forms.emailfield, `iPadressfield`, :class: ~django.forms.genericipAddressField, agus:class: Django.Forms.~GineRicipAddressField Cuireadh Jango.Forms.SlugField\` faoi chois toisc gur dhúbailte siad teachtaireachtaí earráide a sholáthraíodh cheana féin ag bailíochtóirí ceangailte leis na réimsí.
- Mar gheall ar athrú ar an sreabhadh oibre bailíochtaithe foirme, ba cheart: :class: ~django.forms.TypedChoiceField modh `` `coerce `` luach atá i láthair sa tréith réimse roghanna a thabhairt ar ais i gcónaí. Ba chóir an teorannú sin a ardú arís i Django 1.7.
- Rinneadh athruithe ar an mbealach a láimhseáiltear amach ama i gcúltaca taisce. Ní féidir an t-am réamhshocraithe a úsáid a thuilleadh mar thoradh ar `timeout=None` ag dul isteach go sainráite. Socróidh sé anois ama neamh-éag. Ní úsáideann tú 0 isteach sa chúltaca memcache an t-am réamhshocraithe a thuilleadh, agus anois socraíonn sé agus rachaidh sé in éag an luach láithreach.
- Úsáidtear an aip `django.contrib.flatpages` chun ceanntásca saincheaptha HTTP a shocrú chun críocha dífhabhtaithe. Níor doiciméadaíodh an fheidhmiúlacht seo agus rinneadh an caistriú neamhéifeachtach mar sin baineadh í, mar aon lena chur i bhfeidhm cineálach, ar fáil roimhe seo in django.core.xheaders.
- Tá an xViewMiddleware\` aistrithe ó `django.middleware.doc` go `django.contrib.admindocs.middleware` toisc gur mionsonraí cur chun feidhme de admindocs é, cruthaithe nach bhfuil sé in-athúsáidte i gcoitinne.
- [`GenericIPAddressField`](/ga/5.2/ref/models/fields/#django.db.models.GenericIPAddressField) will now only allow
  `blank` values if `null` values are also allowed. Creating a
  `GenericIPAddressField` where `blank` is allowed but `null` is not
  will trigger a model validation error because `blank` values are always
  stored as `null`. Previously, storing a `blank` value in a field which
  did not allow `null` would cause a database exception at runtime.
- Má ardaítear eisceacht `NoReverseMatch` ó mhodh agus teimpléad á rindreáil, ní dhéantar é a thostú. Mar shampla, beidh `{{obj.view_href}}` mar thoradh ar rindreáil teimpléid má ardaíonn ````view_href () ```noReverseMatch````. Níl aon athrú ar an gclibe:ttag: {% url%}\<url\>, is cúis leis go dteipeann ar rindreáil teimpléid mar i gcónaí nuair a ardaítear `noReverseMatch`.
- [`django.test.Client.logout()`](/ga/5.2/topics/testing/tools/#django.test.Client.logout) now calls
  [`django.contrib.auth.logout()`](/ga/5.2/topics/auth/default/#django.contrib.auth.logout) which will send the
  [`user_logged_out()`](/ga/5.2/ref/contrib/auth/#django.contrib.auth.signals.user_logged_out) signal.
- [Authentication views](/ga/5.2/topics/auth/default/#built-in-auth-views) are now reversed by name,
  not their locations in `django.contrib.auth.views`. If you are using the
  views without a `name`, you should update your `urlpatterns` to use
  `django.conf.urls.url()` with the `name` parameter. For example:

  ```
  (r"^reset/done/$", "django.contrib.auth.views.password_reset_complete")
  ```

  éiríonn sé:

  ```
  url(
      r"^reset/done/$",
      "django.contrib.auth.views.password_reset_complete",
      name="password_reset_complete",
  )
  ```
- [`RedirectView`](/ga/5.2/ref/class-based-views/base/#django.views.generic.base.RedirectView) now has a `pattern_name`
  attribute which allows it to choose the target by reversing the URL.
- I Django 1.4 agus 1.5, níor measadh go neamhghnó gur pasfhocal bailí é teaghrán bán. Sábhálfadh an meant:meth: ~django.contrib.auth.models.user.set\_password () \`pasfhocal bán mar phasfhocal neamhúsáidte cosúil:meth: \`~django.contrib.auth.models.user.set\_unusable\_password (), agus déanann sé sin: meth: ~django.contrib.auth.models.user.check\_Chuir pasfhocal () \`ar ais i gcónaí \`\`False\` le haghaidh pasfhocail bhána. Ceartaíodh é seo san eisiúint seo: tá pasfhocail bán bailí anois.
- Ghlac an admin [`changelist_view`](/ga/5.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin.changelist_view) le paraiméadar GET `pop` chun a chur in iúl go raibh sé le taispeáint i bpíosa aníos. Athainmníodh an paraiméadar seo go \`\` \_ aníos aníos\`\` chun a bheith comhsheasmhach leis an gcuid eile de na hamharcanna riaracháin. Ba cheart duit do theimpléid saincheaptha a nuashonrú má úsáideann siad an t-ainm paraiméadar roimhe seo.
- [`validate_email()`](/ga/5.2/ref/validators/#django.core.validators.validate_email) now accepts email addresses
  with `localhost` as the domain.
- Cuireann an rogha nua:option: makemessages --keep-pot cosc ar an gcomhad sealadach `.pot` a ghintear a scriosadh sula gcruthaítear an comhad `.po`.
- Baineadh an `django.core.servers.basehttp.wsgiserverexception` gan doiciméadú. Úsáid `socket.error` a sholáthraíonn an leabharlann caighdeánach ina ionad. Scaoileadh an t-athrú seo freisin i Django 1.5.5.
- Tá síniú de:meth: Django.Views.Generic.Base.RedirectView.get\_Redirect\_URL athraithe agus glacann sé anois le hargóintí seasmhacha freisin (```*args, **kwargs ``). Cuirfear aon ghrúpa gabháilte gan ainm ar aghaidh chuig ``get_redirect_url () ``agus d'fhéadfadh ``typeError``` a bheith mar thoradh air mura ndéanann tú síniú do mhodha saincheaptha a nuashonrú.

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

### APIs bainistíochta idirbheart

Rinneadh athchóiriú go hiomlán ar bhainistíocht idirbheart i Django 1.6, agus tá na APIs reatha dlús:

- `Django.middleware.Transaction.TransactionMiddleWare`
- `django.db.transaction.autochommit`
- `django.db.transaction.comit_on_rath`
- `django.db.transaction.comm_lámh`
- an socrú `TRANSACTIONS_MANAGED`

### `django.contrib.tuairim`

Tá creat tráchta Django díluaite agus ní thacaítear leis a thuilleadh. Beidh sé ar fáil i Django 1.6 agus 1.7, agus bainfear é i Django 1.8. Freastalfar níos fearr ar fhormhór na n-úsáideoirí le réiteach saincheaptha, nó táirge óstáilte mar [Disqus](https://disqus.com/).

Tá an cód ar a dtugtar `django.contrib.comments` roimhe seo [fós ar fáil i stóras seachtrach](https://github.com/django/django-contrib-comments).

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

Sroichtear deireadh na dtréimhsí tacaíochta suas srutha i mí na Nollag 2011 do PostgreSQL 8.2 agus i mí Feabhra 2013 do 8.3. Mar thoradh air sin, socraíonn Django 1.6 8.4 mar an leagan íosta PostgreSQL a thacaíonn sé go hoifigiúil.

Spreagtar go láidir duit an leagan is déanaí de PostgreSQL atá ar fáil a úsáid, mar gheall ar fheabhsuithe feidhmíochta agus chun leas a bhaint as an macasamhail sruthú dúchasach atá ar fáil i PostgreSQL 9.x.

### Athruithe ar:ttag: timthriall agus:ttag: firstof

De ghnáth éalaíonn an córas teimpléid gach athróg chun ionsaithe XSS a sheachaint. Mar gheall ar thimpiste staire, áfach, tugann na clibeanna:ttag: cicle agus:ttag: firstof a gcuid argóintí mar atá.

Tosaíonn Django 1.6 próiseas chun an neamhréireacht seo a cheartú. Soláthraíonn leabharlann teimpléad `todhcha` cur i bhfeidhm malartacha de:ttag: cicle agus:ttag: firstof a n-ionchuir a n-ionchuir a n-uathoibríoch. Má tá na clibeanna seo á úsáid agat, moltar duit an líne seo a leanas a áireamh ag barr do theimpléid chun an t-iompar nua a chumasú:

```html+django
{% load cycle from future %}
```

nó:

```html+django
{% load firstof from future %}
```

Tá na clibeanna a chuireann an sean-iompar i bhfeidhm imithe i léig, agus i Django 1.8, cuirfear an t-iompar nua in ionad an tseaniompar. Chun comhoiriúnacht le leaganacha amach anseo de Django a chinntiú, ba cheart teimpléid atá ann cheana a mhodhnú chun na leaganacha `future` a úsáid.

\<autoescape\>Más gá, is féidir leat éalú uathoibríoch a dhíchumasú go sealadach le:func: ~django.utils.safestring.mark\_safe nó:ttag: {% autoescape off%}.

### `CACHE_MIDDLEWARE_ANONYMOUS_ONLY` socrú

Úsáidtear `Cachemiddleware` agus `UpdateCacheMiddleware` chun bealach a sholáthar chun iarratais a thaisceadh ach amháin mura ndearna úsáideoir logáilte isteach iad. Bhí an meicníocht seo neamhéifeachtach den chuid is mó toisc go gcuireann an meán-earraí ceannteideal HTTP Vary: Cookie\` san áireamh i gceart, agus tá an ceannteideal seo á leagan síos ar ócáidí éagsúla, mar shampla:

- rochtain a fháil ar an seisiún, nó
- ag baint úsáide as cosaint CSRF, atá casaithe air de réir réamhshocraithe, nó
- ag baint úsáide as leabharlann taobh an chliaint a shocraíonn fianáin, cosúil le [Google Analytics](https://marketingplatform.google.com/about/analytics/).

Fágann sé seo go n-oibríonn an taisce go héifeachtach ar bhonn in aghaidh na seisiúin beag beann ar an socrú CACHE\_MIDDLEWARE\_ANONYMOUS\_ONLY\`.

### Socrú `` `SEND_BROKEN_LINK_EMAILS ``

[`CommonMiddleware`](/ga/5.2/ref/middleware/#django.middleware.common.CommonMiddleware) used to provide basic
reporting of broken links by email when `SEND_BROKEN_LINK_EMAILS` is set to
`True`.

Mar gheall ar fhadhbanna ordaithe dochreidte idir:class: ~django.middleware.common.commonMiddleware agus:class: ~django.middleware.locale.localeMiddleware, roinntear an ghné seo amach i middleware nua: :class: ~django.middleware.common.BrokenLinkemMiddailsLeware.

Má tá tú ag brath ar an ngné seo, ba chóir duit ```Django.middleware.common.BrokenLinkemailsMiddleware'` a chur le do shuíomh ``MIDDLEWARE_CLASSES``` agus SEND\_BROKEN\_LINK\_EMAILS\` a bhaint as do shocruithe.

### Modh `_has_changed` ar ghuirléidí

Má shainigh tú do ghuirléidí foirme féin agus má shainigh tú an modh `_has_changed` ar ghuirléid, ba cheart duit an modh seo a shainiú anois ar an réimse foirme féin.

### `module_name` tréith samhail \_meta

`Samhail. Ainmníodh _meta.module_name` go `model_name`. In ainneoin gur API príobháideach é, rachaidh sé trí chosán diúltaithe rialta.

### Modhanna múnla \_meta `get_ (cuir |athraithe|scriosadh) _ceadúna`

``` Samhail. Cuireadh modhanna _meta.get_ (add |athraithe|scriosadh) ar mhodhanna _ceadúnaí. Fiú mura raibh siad mar chuid den API poiblí rachaidh siad trí chosán diúltaithe rialta freisin. Is féidir leat ``django.contrib.auth.get_permission_codename ('action', Samhail) a chur in ionad iad. _meta) ``áit a bhfuil ``'gníomh'` ` ```'add'````, ```athraithe````, nó 'scriose'.

### Athainmníodh `get_query_set` agus modhanna comhchosúla go `get_queryset`

Athainmníodh modhanna a thugann QuerySet\` ar nós Manager.get\_query\_set\` nó `ModelAdmin.querySet` go get\_queryset\`.

Má tá tú ag scríobh leabharlann a chuireann modh Manager.get\_query\_set\` i bhfeidhm, mar shampla, agus ní mór duit tacú le seanleaganacha Django, ba cheart duit an modh a athainmniú agus alias a chur leis an sean-ainm go coinníollach:

```
class CustomManager(models.Manager):
    def get_queryset(self):
        pass  # ...

    if django.VERSION < (1, 6):
        get_query_set = get_queryset

    # For Django >= 1.6, models.Manager provides a get_query_set fallback
    # that emits a warning when used.
```

Má tá leabharlann á scríobh agat a chaithfidh glaoch ar an modh `get_queryset` agus nach gcaithfidh tú tacú le seanleaganacha Django, ba chóir duit scríobh:

```
get_queryset = (
    some_manager.get_query_set
    if hasattr(some_manager, "get_query_set")
    else some_manager.get_queryset
)
return get_queryset()  # etc
```

I gcás ginearálta bainisteoir saincheaptha a chur i bhfeidhm a mhodh get\_queryset féin agus a ghlaonn an modh sin, agus a chaithfidh oibriú le leaganacha níos sine Django, agus leabharlanna nár nuashonraíodh fós, tá sé úsáideach modh get\_queryset\_compat a shainiú mar thíos agus é a úsáid go hinmheánach do do bhainisteoir:

```
class YourCustomManager(models.Manager):
    def get_queryset(self):
        return YourCustomQuerySet()  # for example

    if django.VERSION < (1, 6):
        get_query_set = get_queryset

    def active(self):  # for example
        return self.get_queryset_compat().filter(active=True)

    def get_queryset_compat(self):
        get_queryset = (
            self.get_query_set if hasattr(self, "get_query_set") else self.get_queryset
        )
        return get_queryset()
```

Cuidíonn sé seo leis na hathruithe atá ag teastáil a íoslaghdú, ach oibríonn sé i gceart freisin i gcás fo-aicmí (mar shampla `RelatedManagers` ó Django 1.5) a d'fhéadfadh `get_query_set` nó `get_queryset` a shárú.

### Amharc `gearrchearr` agus URLConf

Bogadh an radharc `shortcut` ó django.views.defaults\` go `django.contrib.contenttypes.views` go gairid tar éis an scaoileadh 1.0, ach níor dhíothas an sean-áit riamh. Ceartaíodh an maoirseacht seo i Django 1.6 agus ba cheart duit an suíomh nua a úsáid anois.

Rinneadh an URLConf `django.conf.urls.shortcut` a dhíchur freisin. Má tá tú ag áireamh é i URLConf, ní gá ach: a chur in ionad:

```
(r"^prefix/", include("django.conf.urls.shortcut")),
```

le:

```
(
    r"^prefix/(?P<content_type_id>\d+)/(?P<object_id>.*)/$",
    "django.contrib.contenttypes.views.shortcut",
),
```

### `Samhlfhoirme` gan réimsí \`\`nó \`\`eisiam\`

Roimhe seo, dá dteastaíonn uait a:class: ~Django.Forms.ModelForm chun gach réimse ar an tsamhail a úsáid, d'fhéadfá an tréith `Meta.Fields` a fhágáil, agus úsáidfí gach réimse.

D'fhéadfadh fadhbanna slándála a bheith mar thoradh air seo ina gcuirtear réimsí leis an tsamhail agus, gan aon ghnó, a éiríonn siad in-eagarthóireachta go huathoibríoch I roinnt cásanna, go háirithe le réimsí boolean, is féidir go mbeadh an fhadhb seo dofheicthe go hiomlán. \< [https://en.wikipedia.org/wiki/Mass\_assignment\_vulnerability](https://en.wikipedia.org/wiki/Mass_assignment_vulnerability)\>Is foirm é seo de .

Ar an gcúis seo, déantar an t-iompar seo a dhíchur, agus déantar an rogha Meta.exclude a úsáid go láidir. Ina áit sin, ba chóir gach réimse atá beartaithe lena áireamh san fhoirm a liostáil go sainráite sa tréith ``réimsí `fields``.

Mura bhfuil feidhm ag an imní slándála seo i ndáiríre i do chás, tá aicearra ann chun a léiriú go sainráite gur chóir gach réimse a úsáid - bain úsáid as an luach speisialta `"__all__"` don tréith réimsí:

```
class MyModelForm(ModelForm):
    class Meta:
        fields = "__all__"
        model = MyModel
```

Má tá ```ModelForms ``saincheaptha agat nach gá ach a úsáid sa riarachán, tá rogha eile ann. Tá a mhodhanna féin ag an riarachán chun réimsí a shainiú (`fieldsets``` srl.), agus mar sin tá sé iomarcach liosta réimsí a chur leis an Modelform\`. Ina áit sin, fág ach an aicme istigh `Meta` den ModelForm \`\`a fhágáil, nó an tréith \`\`Meta.Model\` a fhágáil. Ós rud é go bhfuil a fhios ag an bhfo-aicme ModelAdmin cén tsamhail dó a bhfuil sé, féadfaidh sé na tréithe riachtanacha a chur leis chun ModelForm feidhmiúil a bhaint amach. Oibríonn an t-iompar seo freisin le haghaidh leaganacha Django níos luaithe.

### `UpdateView` agus `CreateView` gan réimsí follasacha

Tá na tuairimí cineálacha:class: ~django.views.generic.edit.createView agus:class: ~django.views.generic.edit.updateView, agus aon rud eile a dhíorthaítear ó:class: ~Django.Views.Generic.Edit.ModelFormMixin, leochaileach don fhadhb slándála a thuairiscítear sa chuid thuas, toisc gur féidir leo ModelFormixin\` a chruthú go huathoibríoch Foirm a úsáideann gach réimse le haghaidh samhail.

Ar an gcúis seo, má úsáideann tú na tuairimí seo chun samhlacha a chur in eagar, ní mór duit an tréith ``fields` (nua i Django 1.6) a sholáthar freisin, ar liosta de réimsí samhlacha é agus a oibríonn ar an mbealach céanna leis an tréith: `~django.forms.modelform` `Meta.fields``. De rogha air sin, is féidir leat an tréith `form_class` a shocrú le `Modelform` a shainmhíníonn go sainráite na réimsí atá le húsáid. Tá fo-aicme `UpdateView` nó CreateView\` a shainmhíniú le húsáid le samhail ach gan liosta follasach réimsí a shainmhíniú.

### Téacs cabhrach de réimsí foirm mhúnla a ghearradh do réimsí ManyTomanyField\`

Tá gach láimhseáil speisialta ar an tréith `help_text` de réimsí samhail `ManyTomanyField` a dhéantar ag réimsí caighdeánacha samhail nó foirm mhúnla mar a thuairiscítear in:ref: m2m-help\_text thuas a dhíothú agus bainfear é i Django 1.8.

Ní mór téacs cabhrach na réimsí seo a láimhseáil le feidhmchláir, réimsí foirme saincheaptha nó giuirléidí, díreach mar a tharlaíonn leis an gcuid eile de na cineálacha réimse samhail.
