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

*1 Lúnasa, 2016*

Fáilte go Django 1.10!

Clúdaíonn na nótaí scaoilte seo na:ref: gnéithe nua \<whats-new-1.10\>, chomh maith le roinnt athruithe: ref: athruithe neamh-chomhoiriúnacha ar chúl\<backwards-incompatible-1.10\> a mbeidh tú ag iarraidh a bheith ar an eolas fúthu agus tú ag uasghrádú ó Django 1.9 nó leaganacha níos sine. \<deprecated-features-1.10\>Chuireamar: Ref: thit roinnt \<removed-features-1.10\>gnéithe \`a bhfuil deireadh a dtimthriall díghníomhaíochta bainte amach acu, agus chuireamaire:ref: \`thosaigh muid ar an bpróiseas díghníomhaíochta do roinnt gnéithe.

Féach an treoir:doc: /howto/upgrade-leagan má tá tionscadal atá ann cheana á nuashonrú agat.

## Comhoiriúnacht Python

Cosúil le Django 1.9, teastaíonn Python 2.7, 3.4, nó 3.5 ó Django 1.10. Molaimid\*\* go hard\*\* agus ní thacaímid go hoifigiúil ach leis an scaoileadh is déanaí de gach sraith.

## Cad atá nua i Django 1.10

### Cuardach téacs iomlán do PostgreSQL

Cuimsíonn `django.contrib.postgres` anois [cnuasach feidhmeanna bunachar sonraí](/ga/6.1/ref/contrib/postgres/search/) chun úsáid an innill chuardaigh téacs iomlán a cheadú. Is féidir leat cuardach a dhéanamh thar réimsí iolracha i do bhunachar sonraí coibhneasta, cuardaigh a chomhcheangal le cuardaigh eile, cumraíochtaí agus ualuithe éagsúla teanga a úsáid, agus na torthaí a rangú de réir ábharthacht.

Cuimsíonn sé tacaíocht trigram anois, ag baint úsáide as an lorgaí:lookup: trigram\_similar, agus na:class: ~django.contrib.postgres.search.trigramsimilarity agus:class: ~django.contrib.postgres.search.trigramdistance.

### Meán-earraí nua i stíl

\</topics/http/middleware\> \< <https://github.com/django/deps/blob/main/final/0005-improved-middleware.rst>\>:doc: “Cuirtear isteach stíl nua de mheán-earraí” chun an easpa docht iarrata/freagartha a réiteach ar sheanstíl mheánearraí a thuairiscítear in [DEP 0005](#dep-0005). Beidh ort: ref: sean-mheán-earraí saincheaptha a oiriúnú \`agus aistriú ón socrú \`\`MIDDLEWARE \<upgrading-middleware\>\_CLASSES\` go dtí an socrú nua:setting: MIDDLEWARE chun leas a bhaint as na feabhsuithe.

### Tacaíocht oifigiúil d'ainmneacha úsáideora Unicode

Ní ghlac an tsamhail:class: ~django.contrib.auth.models.user i `django.contrib.auth` ar dtús litreacha agus uimhreacha ASCII in ainmneacha úsáideora. Cé nach rogha d'aon ghnó a bhí ann, glacadh le carachtair Unicode i gcónaí agus Python 3 á úsáid agat.

Glacann an bailíochtóir ainm úsáideora go sainráite anois le carachtair Unicode de réir réamhshocraithe ar Python 3 amháin.

Féadfaidh samhlacha úsáideora saincheaptha an nua:class: ~django.contrib.auth.validators.asciiUserNameValidator nó: class: ~django.contrib.auth.validators.unicodeUserNameValidator a úsáid.

### Mionghnéithe

#### [`django.contrib.admin`](/ga/6.1/ref/contrib/admin/#module-django.contrib.admin)

- Maidir le suíomhanna atá ag rith ar fho-chosán, déanfaidh an réamhshocraithe:attr: URL don nasc “Féach ar an láithreán” \<django.contrib.admin.AdminSite.site\_url\>\`ag barr gach leathanach riaracháin ag díriú anois ar \`\`request.meta \['SCRIPT\_NAME'\] \`\`má tá sé socraithe, in ionad \`/.
- Tá nasc anois le foirm athraithe an réada sa teachtaireacht rathúlachta atá le feiceáil tar éis réad a chur leis nó a chur in eagar.
- Baintear gach JavaScript inlíne ionas gur féidir leat an ceannteideal HTTP `Content-Security-Policy` a chumasú más mian leat.
- \<django.contrib.admin.InlineModelAdmin.classes\>Ceadaíonn an tréith nua:attr: InlineModelAdmin.classes \`aicmí a shonrú ar thacainní réimsí inlíne. Titeofar ar dtús na línte a bhfuil rang \`\`fallse\` acu agus beidh nasc beag “seó” ag a gceanntásc.
- Mura bhfuil an cead breise ag úsáideoir, déanfar an bloc réad-uirlisí ar liosta athraithe samhail a léiriú anois (gan an cnaipe leis). Fágann sé seo go bhfuil sé níos éasca uirlisí saincheaptha a chur leis sa chás seo.
- Stórálann an tsamhail:Class: ~django.contrib.admin.models.logentry teachtaireachtaí athraithe i struchtúr JSON anois ionas gur féidir an teachtaireacht a aistriú go dinimiciúil ag baint úsáide as an teanga ghníomhach reatha. Is é modh nua Logentry.get\_change\_message () an bealach is fearr anois chun an teachtaireacht athraithe a aisghabháil.
- Tá nasc anois ag rudaí roghnaithe do réimsí i ModelAdmin.raw\_id\_fields\` le foirm athraithe réad anois.
- Cuireadh roghanna “Gan dáta” agus “Tá dáta aige” le haghaidh `DateFieldListFilter` má tá an réimse neamhnaithe.
- Déantar an leabharlann jQuery atá leabaithe sa riarachán a uasghrádú ó leagan 2.1.4 go 2.2.3.

#### [`django.contrib.auth`](/ga/6.1/topics/auth/#module-django.contrib.auth)

- \<argon2\_usage\>Tacaíocht bhreise don: ref: hash pasfhocal Argon2 . Moltar é thar PBKDF2, áfach, ní hé an réamhshocrú toisc go dteastaíonn leabharlann tríú páirtí uaidh.
- Méadaíodh 25% an líon athraithe réamhshocraithe don hasher pasfhocal PBKDF2. Ní dhéanfaidh an t-athrú comhoiriúnach ar chúl difear d'úsáideoirí a bhfuil fo-aicmithe ag `Django.contrib.auth.hashers.pbkdf2PasswordHasher` chun an luach réamhshocraithe a athrú.
- Seolann an radharc django.contrib.auth.views.logout () ceanntásca “no-cache” chun saincheist a chosc ina ndéanann Safari ceascanna a atreorú agus cuireann sé cosc ar úsáideoir a bheith in ann logáil amach.
- Cuireadh an argóint roghnach `backend` chuig: func: django.contrib.auth.login chun ligean é a úsáid gan dhintiúir.
- Rialaíonn an socrú nua:setting: LOGOUT\_REDIRECT\_URL athreorú an amharc ```django.contrib.auth.views.logout () `, mura bhfaigheann an dearcadh argóint ``next_page```.
- Ligeann an paraiméadar nua `redirect_autenticated_user` don amharc django.contrib.auth.views.login () úsáideoirí fíordheimhnithe a thugann cuairt ar an leathanach logála isteach a atreorú.
- Déanann an nua:class: ~django.contrib.auth.backends.allowAllUsersModelBackend agus:class: ~django.contrib.auth.backends.allowAllUsersRemoteUserBackend neamhaird ar luach `User.is_Active`, agus: class: ~django.contrib.auth.backends.modelBackend :class: ~django.contrib.auth.backends.remoteUserBackend diúltú úsáideoirí neamhghníomhacha anois.

#### [`django.contrib.gis`](/ga/6.1/ref/contrib/gis/#module-django.contrib.gis)

- [Distance lookups](/ga/6.1/ref/contrib/gis/geoquerysets/#distance-lookups) now accept expressions as the
  distance value parameter.
- Ríomhaíonn an maoin nua:attr: Geosgeometry.unary\_union \<django.contrib.gis.geos.GEOSGeometry.unary\_union\>\`aontas eilimintí uile an geoiméadra seo.
- \<django.contrib.gis.geos.GEOSGeometry.covers\>Cuireadh an predicate dénártha: meth: Geosgeometry.covers () leis.
- Cuireadh an modh: meth: GdalBand.Statistics () \`agus:attr: \`~django.contrib.gis.gdal.gdalband.mean agus:attr: ~django.contrib.gis.gdal.gdalband.st \<django.contrib.gis.gdal.GDALBand.statistics\>d tréithe.
- Tacaíocht bhreise don chomhiomlán: aicme: ~django.contrib.gis.db.models.makeline agus:class: ~django.contrib.gis.db.models.functions.geohash feidhm ar Spatialite.
- Tacaíocht bhreise don: class: ~django.contrib.gis.db.models.functions.difference, :class: ~django.contrib.gis.db.models.functions.intersection, agus:class: ~django.contrib.gis.db.models.functions.symdifference feidhmeanna ar MySQL.
- Tacaíocht bhreise chun geoiméadraí folamh GEOS a chur ar aghaidh.
- Ceadaíonn an nua:attr: ~django.contrib.gis.geos.wktwriter.trim agus:attr: ~django.contrib.gis.geos.wktWriter.Precision airíonna de:class: ~django.contrib.gis.geos.wktWriter rialú aschur an chuid codánach de na comhordanáidí i WKT.
- \<django.contrib.gis.geos.LineString.closed\>\<django.contrib.gis.geos.MultiLineString.closed\>Cuireadh airíonna: attr: Linestring.closed \`agus:attr: \`MultilineString.Closed leis.
- Aisíonn an:doc: GeoJSON serializer an príomh-eochair na rudaí sa fhoclóir `</ref/contrib/gis/serializers> airíonna` mura sonraítear réimsí ar leith.
- Cuireadh an cumas sonraí ionchuir a mhacasamhlú ar an modh [`GDALBand.data()`](/ga/6.1/ref/contrib/gis/gdal/#django.contrib.gis.gdal.GDALBand.data). Is féidir sonraí banna a nuashonrú anois le luachanna arís agus arís eile go héifeachtach.
- Feidhmeanna bunachar sonraí breise  agus , chomh maith leis an :lookup: cuardach isvalid, go léir le haghaidh PostGIS. Ligeann sé seo céimseataí neamhbhailí ar thaobh an bhunachair shonraí a scagadh agus a dheisiú.
- Cuireadh tacaíocht raster leis do gach duine: doc: cuardach spásúil \</ref/contrib/gis/geoquerysets\>.

#### [`django.contrib.postgres`](/ga/6.1/ref/contrib/postgres/#module-django.contrib.postgres)

- Ar mhaithe le áisiúlacht, caitheann :class: ~django.contrib.postgres.fields.hStorefield anois a heochracha agus a luachanna chuig teaghráin.

#### [`django.contrib.sessions`](/ga/6.1/topics/http/sessions/#module-django.contrib.sessions)

- Baineann an t-ordú bainistíochta: DJadmin: clearsessions seisiúin comhadbhunaithe anois.

#### [`django.contrib.sites`](/ga/6.1/ref/contrib/sites/#module-django.contrib.sites)

- \<topics-serialization-natural-keys\>Tacaíonn an tsamhail: Class: ~django.contrib.sites.models.site anois:ref: eochracha nádúrtha .

#### [`django.contrib.staticfiles`](/ga/6.1/ref/contrib/staticfiles/#module-django.contrib.staticfiles)

- Úsáideann an chlib teimpléad:ttag: static `django.contrib.staticfiles` anois má tá sé i `INSTALLED_APPS`. Tá sé seo úsáideach go háirithe d'aipeanna tríú páirtí ar féidir leo ``{% load static%} `a úsáid anois i gcónaí (in ionad`` {% load staticfiles%} `nó` {% load static from staticfiles%} ``) agus gan a bheith buartha faoi cibé an bhfuil an aip `staticfiles`` suiteáilte nó nach bhfuil.
- Is féidir leat:ref: ``a shaincheapadh níos éasca `an rogha`` \<customize-staticfiles-ignore-patterns\>collectstatic --ignore\`\` le AppConfig\` saincheaptha.

#### Cache

- Úsáideann an cúltaca taisce comhbhunaithe anois an prótacal picling is airde.

#### CSRF

- Glacann an réamhshocraithe:setting: CSRF\_FAILURE\_VIEW, ```views.csrf.csrf_fail () `anois le paraiméadar roghnach ``template_name```, ag réamhshocrú go 403\_csrf.html', chun an teimpléad a úsáidtear chun an leathanach a rinneadh a rialú.
- Chun cosaint a dhéanamh i gcoinne ionsaithe [BREACH](https://www.breachattack.com/), athraíonn an mheicníocht cosanta CSRF luach an chomhartha foirme anois ar gach iarratas (agus rún inathraithe á choinneáil ar féidir a úsáid chun na comharthaí éagsúla a bhailíochtú).

#### Cúltaca bunachar sonraí

- Aontaíodh gearradh sonraí ama ar gach cúltaca.
- Má thacaíonn an bunachar sonraí leis, is féidir le cúltaca `databaseFeatures.can_return_ids_from_bulk_insert=true` a shocrú agus `DatabaseOperations.fetch_returned_insert_ids ()` a chur i bhfeidhm chun eochracha bunscoile a shocrú ar rudaí a cruthaíodh ag baint úsáide as querySet.bulk\_create () .
- Cuireadh argóintí eochairfhocal leis na modhanna ```as_sql () ``de nathanna éagsúla (`Func```, When\`, Case \`, agus Orderby\`) chun ligean do chúltaca bunachar sonraí iad a shaincheapadh gan `féin` a athrú, rud nach bhfuil sábháilte agus cúltaca bunachar sonraí éagsúla á úsáid. \<django.db.models.Func.as\_sql\>Féach na paraiméadair arg\_joiner\` agus `**extra_context` de:meth: Func.as\_sql () mar shampla.

#### Stóráil Comhad

- Cuireann cúltaca stórála API atá ar an eolas ag crios ama anois le modhanna nua: meth: ~django.core.files.storage.storage.get\_accessed\_time, :meth: ~django.core.files.storage.storage.get\_created\_time, agus:meth: ~django.core.files.storage.get\_get\_get\_get\_geT\_Am\_athraithe'. Tugann siad \`datetime\` atá ar an eolas faoi chrios ama más rud é: socrú: `` `True `` é USE\_TZ agus datetime\` naif sa chrios ama áitiúil ar shlí eile.
- Déanann an modh nua:meth: Storage.generate\_filename () \<django.core.files.storage.Storage.generate\_filename\>\`níos éasca stórais saincheaptha a chur i bhfeidhm nach n-úsáideann na glaonna \`\`os.path\` roimhe seo in:class: ~Django.db.Models.FileField.

#### Foirmeacha

- Freastalaítear foirm agus giuirléid Meáin anois ag baint úsáide as: mod: django.contrib.staticfiles má tá sé suiteáilte.
- Cuimsíonn an chlib \<input\>\`\`\`a rinneadh ag:class: ~django.forms.charfield tréith `minlength` anois má tá min\_length sa réimse.
- Tá an tréith HTML “riachtanach” ag réimsí foirme riachtanacha anois. \<django.forms.Form.use\_required\_attribute\>Socraigh an tréith nua:attr: Form.use\_required\_attribute le `False` chun é a dhíchumasú. Ní chuirtear an tréith “riachtanach” san áireamh ar fhoirmeacha foirmeacha mar b'fhéidir nach mbeidh bailíochtú an bhrabhsálaí ceart agus foirmeacha á gcur leis agus á scriosadh.

#### Tuairimí cineálacha

- Is féidir an rang:class: ~django.views.generic.base.view a allmhairiú anois ó `django.views`.

#### Idirnáisiúnú

- \<django.http.HttpRequest.urlconf\>Is féidir an fheidhm chúntóirí:func: ~django.conf.urls.i18n.i18n\_patterns a úsáid anois i bhfréimhe URLConf a shonraítear ag baint úsáide as: attr: request.urlconf .
- Trí an pharaiméadar nua `prefix_default_language` a shocrú fao:func: ~django.conf.urls.i18n.i18n\_patterns go False\`, is féidir leat rochtain a fháil ar an teanga réamhshocraithe gan réimír URL a cheadú.
- [`set_language()`](/ga/6.1/topics/i18n/translation/#django.views.i18n.set_language) now returns a 204 status code (No
  Content) for AJAX requests when there is no `next` parameter in `POST` or
  `GET`.
- Is ionad tuairimí ranga-bhunaithe: ~Django.Views.I18N.JavaScriptCatalog agus:class: ~django.views.i18N.jsonCatalog na tuairimí bunaithe ar fheidhm “javascript\_catalog () agus json\_catalog () . Tá na tuairimí nua beagnach comhionann leis na seanchúin ach amháin go mbailíonn na tuairimí nua gach teaghrán JavaScript i bhfearann aistriúcháin \`\`djangojs \`\`ó gach aip suiteáilte seachas na teaghráin JavaScript ó:setting: \`LOCALE\_PATHS.

#### Orduithe Bainistíochta

- [`call_command()`](/ga/6.1/ref/django-admin/#django.core.management.call_command) now returns the value returned
  from the `command.handle()` method.
- Ligeann an rogha nua:option: check --fail-level leibhéal na teachtaireachta a shonrú a fhágfaidh go n-imeoidh an t-ordú le stádas neamh-nialas.
- Déanann an rogha nua:option: makemigrations --check imeacht an t-ordú le stádas neamh-nialas nuair a bhraitear athruithe samhail gan imirce.
- [`makemigrations`](/ga/6.1/ref/django-admin/#django-admin-makemigrations) now displays the path to the migration files that
  it generates.
- Glacann an roghna:option: shell --interface anois le `python` chun an ateangaire Python “simplí” a úsáid a chur i bhfeidhm.
- Ligeann an rogha nua:option: shell --command duit ordú a reáchtáil mar Django agus imeacht, in ionad an bhlaosc idirghníomhach a oscailt.
- Cuireadh rabhadh chuig: djadmin: dumpdata má shonraítear samhail seachfhreastalaí (nach bhfuil aon aschur mar thoradh air sin) gan a thuismitheoir nithiúil.
- Is féidir an tréith nua:attr: BaseCommand.requires\_migrations\_checks a shocrú go `<django.core.management.BaseCommand.requires_migrations_checks>True` más mian leat d'ordú rabhadh a phriontáil, cosúil:djadmin: runserver, mura n-oireann an tacar imirce ar an diosca leis na himirce sa bhunachar sonraí.
- Chun cabhrú le tástáil, glacann: func: ~django.core.management.call\_command anois le réad ordaithe mar an chéad argóint.
- Tacaíonn an t-ordú: Djadmin: shell le críochnú cluaisín ar chórais a úsáideann `libedit`, m.sh. macOS.
- Ligeann an t-ordú: DJAdmin: inspectdb duit na táblaí ba chóir a iniúchadh a roghnú trína n-ainmneacha a shonrú mar argóintí.

#### Imirce

- Tacaíocht bhreise le haghaidh sraitheadh rudaí `Enum.enum`.
- Cuireadh an argóint `elidable` leis na hoibríochtaí: :class: ~django.db.migrations.operations.runsql agus:class: ~django.db.migrations.operations.runpython chun ligean iad a bhaint agus imirce á scrúdú.
- Tacaíocht bhreise le haghaidh: ref: imirce neamh-adamhaíoch tríd an tréith ```atomic` <non-atomic-migrations>`a shocrú ar ``Imirce```.
- \<migration-history-consistency\>Na horduithe `imirce` agus makemigrations\` anois:ref: seiceáil stair chomhsheasmhach imirce \`. Má aimsíonn siad roinnt spleáchais neamhfheidhmeacha ar imirce feidhmithe, ardaítear \`\`InconsistentImmigrationHistory\`.
- Seolann na comharthaí: Func: ~django.db.models.signals.pre\_migrate agus:func: ~django.db.models.signals.post\_migrate a n-imirce plean\` agus `apps` anois.

#### Samhla

- Déantar eochracha eachtracha droim ó mhúnlaí seachfhreastalaí a iomadú anois Tá an gaol droim atá ceangailte ag a:class: ~Django.db.Models.ForeignKey ag díriú ar mhúnla seachfhreastalaí inrochtana anois mar thuairiscitheoir ar an rang samhail seachfhreastaithe agus féadfar tagairt a thabhairt dó i scagadh tacar fiosrúcháin.
- Tugann an modh nua:meth: Field.rel\_DB\_type () \<django.db.models.Field.rel\_db\_type\>\`cineál sonraí colún bunachar sonraí do réimsí mar \`ForeignKey\` agus `OneTooneField` a thugann pointe chuig réimse eile.
- Cuirtear tréith aicme:attr: ~django.db.models.func.arity leis a:class: ~django.db.models.func. Is féidir an tréith seo a úsáid chun líon na n-argóintí a ghlacann an fheidhm a shocrú.
- Cuireadh leis: Class: ~Django.db.Models.BigAutoField a fheidhmíonn cosúil leis an:class: ~django.db.models.autofield ach amháin go bhfuil sé ráthaithe go n-oirfidh sé uimhreacha ó `1` go 9223372036854775807\`.
- [`QuerySet.in_bulk()`](/ga/6.1/ref/models/querysets/#django.db.models.query.QuerySet.in_bulk)
  may be called without any arguments to return all objects in the queryset.
- [`related_query_name`](/ga/6.1/ref/models/fields/#django.db.models.ForeignKey.related_query_name) now supports
  app label and class interpolation using the `'%(app_label)s'` and
  `'%(class)s'` strings.
- Ceadaítear sár-réimsí samhla a fuarthas le hoidhreacht ó bhunaicmí teibí.
- Is API poiblí anois é an fheidhm:func: ~django.db.models.prefetch\_related\_objects.
- [`QuerySet.bulk_create()`](/ga/6.1/ref/models/querysets/#django.db.models.query.QuerySet.bulk_create)
  sets the primary key on objects when using PostgreSQL.
- Cuireadh feidhm bunachar sonraí: class: ~django.db.models.functions.cast leis.
- Féadfaidh samhail seachfhreastalaí teacht le hoidhreacht anois ar mhúnlaí seachfhreastalaí iolracha a roinneann aicme tuismitheora neamhtheibí coitianta.
- Cuireadh leis: Class: ~Django.db.Models.Functions.Extract feidhmeanna chun comhpháirteanna dáta-ama a bhaint mar shláimhreacha, mar shampla bliain agus uair an chloig.
- Cuireadh leis: Class: ~Django.db.Models.Functions.Trunc feidhmíonn dáta nó dáta-am a ghearradh go comhpháirt shuntasach. Cumasaíonn siad ceisteanna mar dhíolacháin in aghaidh an lae nó díolacháin in aghaidh na huaire.
- Samhail. Socraíonn \_\_init\_\_ () luachanna réimsí fíorúla anois óna argóintí eochairfhocal.
- \<django.db.models.Options.default\_manager\_name\>Ceadaíonn na roghanna nua:attr: Meta.Base\_Manager\_name \`agus:attr: \`Meta.Default\_Manager\_name\<django.db.models.Options.base\_manager\_name\> an: attr: ~django.db.models.model a rialú. \_base\_manager agus:attr: ~Django.db.Models.Model. \_default\_manager, faoi seach.

#### Iarrataí agus Freagraí

- Cuireadh `request.user` leis an radharc dífhabhtaithe.
- Added [`HttpResponse`](/ga/6.1/ref/request-response/#django.http.HttpResponse) methods
  [`readable()`](/ga/6.1/ref/request-response/#django.http.HttpResponse.readable) and
  [`seekable()`](/ga/6.1/ref/request-response/#django.http.HttpResponse.seekable) to make an instance a
  stream-like object and allow wrapping it with [`io.TextIOWrapper`](https://docs.python.org/3/library/io.html#io.TextIOWrapper).
- Cuireadh na tréithe: attr: HttpRequest.content\_type \`agus:attr: \`~django.http.httpRequest.content\_params a pháirsítear ón gceannteideal `CONTENT_TY <django.http.HttpRequest.content_type>PE`.
- Déantar an parser do `Request.cookies` a shimpliú chun iompar brabhsálaí a mheaitseáil níos fearr. D'fhéadfadh go mbeadh fianáin anois ag request.cookies\` atá neamhbhailí de réir: rfc: 6265 ach is féidir iad a shocrú trí document.cookie\`.

#### Sraitheadh

- Tá a fhios ag an django.core.serializers.json.djangojsonEncoder\` anois conas teaghráin leisciúil a shraitheadh, a úsáidtear de ghnáth le haghaidh ábhar inaistrithe.

#### Teimpléid

- Cuireadh an rogha `autoescape` leis an:class: ~django.template.backends.django.djangoTemplates cúltaca agus an ranga:class: ~django.template.engine.
- Cuireadh na hoibreoirí comparáide ```is ``agus ``níl``` leis an gclibe:ttag: if .
- Ceadaí:TFilter: dictsort liosta liostaí a ordú de réir eilimint ag innéacs sonraithe.
- Cuimsíonn an próiseálaí comhthéacs: Func: ~django.template.context\_processors.debug ceisteanna maidir le gach ainm bunachar sonraí in ionad an ailias réamhshocraithe amháin.
- Cuireadh tacaíocht coibhneasta coibhneasta le haghaidh argóintí teaghráin de chlibeanna teimpléad: ttag: extends agus:ttag: include.

#### Tástálacha

- Chun fabhtanna a ghabháil níos fearr, seiceálann: class: ~django.test.testcase srianta bunachar sonraí in-iarchurraithe anois ag deireadh gach tástála.
- Is féidir le tástálacha agus cásanna tástála a bheith: ref: marcáilte le clibeanna \<topics-tagging-tests\>\`agus rith go roghnach leis na roghanna nua:option: \`test --tag agus:option: test --exclude-tag.
- Is féidir leat logáil isteach anois agus seisiúin a úsáid leis an gcliant tástála fiú mura bhfuil: mod: django.contrib.sessions in:setting: INSTALLED\_APPS.

#### URLanna

- An addition in [`django.setup()`](/ga/6.1/ref/applications/#django.setup) allows URL resolving that happens
  outside of the request/response cycle (e.g. in management commands and
  standalone scripts) to take [`FORCE_SCRIPT_NAME`](/ga/6.1/ref/settings/#std-setting-FORCE_SCRIPT_NAME) into account when it
  is set.

#### Bailíochtóirí

- [`URLValidator`](/ga/6.1/ref/validators/#django.core.validators.URLValidator) now limits the length of
  domain name labels to 63 characters and the total length of domain
  names to 253 characters per [**RFC 1034**](https://datatracker.ietf.org/doc/html/rfc1034.html).
- [`int_list_validator()`](/ga/6.1/ref/validators/#django.core.validators.int_list_validator) now accepts an optional
  `allow_negative` boolean parameter, defaulting to `False`, to allow
  negative integers.

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

> **Warning**
>
> Chomh maith leis na hathruithe a leagtar amach sa chuid seo, déan cinnte athbhreithniú a dhéanamh ar:ref: removed-features-1.10 do na gnéithe a shroich deireadh a dtimthriall díghabhála agus dá bhrí sin 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.

### API cúltaca bunachar sonraí

- Úsáideann “Areafield” GIS cineál uimhriúil bunúsach neamhshonraithe a d'fhéadfadh a bheith i gcleachtas aon chineál uimhriúil Python. Déantar luachanna `Decimal.Decimal` a aisghabháiltear ón mbunachar sonraí a thiontú anois go `float` chun go mbeidh sé níos éasca iad a chomhcheangal le luachanna a úsáideann na leabharlanna GIS.
- D'fhonn gearradh ama a chumasú ní mór duit bratach gné bunachar sonraí `supports_temporal_subtraction` a shocrú go `True` agus an modh `DatabaseOperations.subtract_temporals ()` a chur i bhfeidhm. Ba cheart don mhodh seo an SQL agus na paraiméadair a theastaíonn chun an difríocht i micreasoicind idir na hargóintí lhs\` agus rhs\` a ríomh sa chineál sonraí a úsáidtear chun stóráil:class: ~Django.db.Models.DurationField a ríomh.

### Cuireann select\_related () cosc ar réimsí neamhghaolmhara do chaidreamh neadaithe

Chuir Django 1.8 bailíochtú le haghaidh réimsí neamhghaolmhara i select\_related () :

```pycon
>>> Book.objects.select_related("title")
Traceback (most recent call last):
...
FieldError: Non-relational field given in select_related: 'title'
```

Ach níor chuir sé cosc ar réimsí neamhghaolmhara neadaithe mar a dhéanann sé anois:

```pycon
>>> Book.objects.select_related("author__name")
Traceback (most recent call last):
...
FieldError: Non-relational field given in select_related: 'name'
```

### Tugann \_meta.get\_fields () réimsí comhsheasmhacha droim ar ais do mhúnlaí seachfhreastalaí

Roimh Django 1.10, chuir an modh: meth: ~django.db.models.options.options.get\_fields réimsí droim éagsúla ar ais nuair a ghlaoigh sé ar mhúnla seachfhreastalaí i gcomparáid lena aicme coincréite seachfhála. Socraíodh an neamhréireacht seo tríd an tsraith iomlán réimsí a thabhairt ar ais ag díriú ar aicme coincréite nó ar cheann dá sheirbhísí sa dá chás.

### \<django.contrib.auth.models.User.username\>:attr: Abstractuser.username max\_length méadaithe go 150

Tá imirce le haghaidh: attr: django.contrib.auth.models.user.userName san áireamh. Má tá samhail úsáideora saincheaptha agat ag oidhreacht ó AbstractUser\`, beidh ort imirce bunachar sonraí a ghiniúint agus a chur i bhfeidhm do do mhúnla úsáideora.

We considered an increase to 254 characters to more easily allow the use of
email addresses (which are limited to 254 characters) as usernames but rejected
it due to a MySQL limitation. When using the `utf8mb4` encoding (recommended
for proper Unicode support), MySQL can only create unique indexes with 191
characters by default. Therefore, if you need a longer length, please use a
custom user model.

Más mian leat an teorainn 30 carachtar d'ainmneacha úsáideora a chaomhnú, bain úsáid as foirm saincheaptha agus úsáideoir á chruthú agat nó agus ainmneacha úsáideora á athrú agat:

```
from django.contrib.auth.forms import UserCreationForm

class MyUserCreationForm(UserCreationForm):
    username = forms.CharField(
        max_length=30,
        help_text="Required. 30 characters or fewer. Letters, digits and @/./+/-/_ only.",
    )
```

Más mian leat an srian seo a choinneáil sa riarachán, socraigh UserAdmin.Add\_Form chun an fhoirm seo a úsáid:

```
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
from django.contrib.auth.models import User

class UserAdmin(BaseUserAdmin):
    add_form = MyUserCreationForm

admin.site.unregister(User)
admin.site.register(User, UserAdmin)
```

### Tacaíocht titim do PostgreSQL 9.1

Críochnaíonn tacaíocht suas srutha do PostgreSQL 9.1 i Meán Fómhair 2016. Mar thoradh air sin, leagann Django 1.10 PostgreSQL 9.2 mar an leagan íosta a thacaíonn sé go hoifigiúil.

### Téann aschur runserver trí logáil

Seoltar láimhseáil iarratais agus freagartha an ordaithe `runserver` chuig an logger:ref: django-server-logger in ionad chuig sys.stderr\`. Má dhíchumraíonn tú cumraíocht logála Django nó má dhíchumraíonn tú é le do chuid féin, beidh ort an chumraíocht logála cuí a chur leis más mian leat an t-aschur sin a fheiceáil:

```
LOGGING = {
    # ...
    "formatters": {
        "django.server": {
            "()": "django.utils.log.ServerFormatter",
            "format": "[%(server_time)s] %(message)s",
        }
    },
    "handlers": {
        "django.server": {
            "level": "INFO",
            "class": "logging.StreamHandler",
            "formatter": "django.server",
        },
    },
    "loggers": {
        "django.server": {
            "handlers": ["django.server"],
            "level": "INFO",
            "propagate": False,
        }
    },
}
```

### Baineadh samhlacha tástála Auth.CustomUser\` agus `Auth.ExtensionUser`

Ó tugadh isteach imirce do na feidhmchláir contrib i Django 1.8, níor cruthaíodh táblaí na samhlacha tástála úsáideora saincheaptha seo a thuilleadh rud a fhágann go bhfuil siad neamhúsáidte i gcomhthéacs tástála.

### Ní dhéantar clárlann apps go huathoibríoch a thuilleadh nuair a dhíphictear samhlacha lasmuigh

Níl clárlann na n-aipeanna daonra go huathoibríoch a thuilleadh agus samhlacha á Cuireadh é seo leis i Django 1.7.2 mar iarracht samhlacha neamhphicilte a cheadú lasmuigh de Django, mar shampla in oibrí RQ, gan glaoch ar django.setup () , ach cruthaíonn sé an fhéidearthacht go mbeadh caoileadh ann. Chun do chód a oiriúnú i gcás RQ, is féidir leat \`scriptúr oibrí féin a sholáthar \`\_ a ghlaonn \`\`django.setup (\< https://python-rq.org/docs/workers/\>) \`.

### Seiceáil sannadh neall bainte le haghaidh príomhréimsí eachtracha neamh-

I leaganacha níos sine, a shannadh `None` do ForeignKey\` neamh-neamh-neamhrialaithe nó `OneTooneField` ardaithe ValueError ('Ní féidir Aon a shannadh: ní cheadaíonn “model.field” luachanna null. ') . Le haghaidh comhsheasmhachta le réimsí samhlacha eile nach bhfuil seiceáil den chineál céanna acu, baintear an seiceáil seo.

### Bainte hashers pasfhocal lag ón socrú réamhshocraithe `PASSWORD_HASHERS`

Stóráilte pasfhocail Django 0.90 mar MD5 neamh-shailte. Chuir Django 0.91 tacaíocht le haghaidh SHA1 saillte le pasfhocail a uasghrádú uathoibríoch nuair a logálann úsáideoir isteach. Chuir Django 1.4 PBKDF2 leis mar an hasher pasfhocal réamhshocraithe.

If you have an old Django project with MD5 or SHA1 (even salted) encoded
passwords, be aware that these can be cracked fairly easily with today's
hardware. To make Django users acknowledge continued use of weak hashers, the
following hashers are removed from the default [`PASSWORD_HASHERS`](/ga/6.1/ref/settings/#std-setting-PASSWORD_HASHERS)
setting:

- `"django.contrib.auth.hashers.SHA1PasswordHasher"`
- `"django.contrib.auth.hashers.MD5PasswordHasher"`
- `"django.contrib.auth.hashers.UnsaltedSHA1PasswordHasher"`
- `"django.contrib.auth.hashers.UnsaltedMD5PasswordHasher"`
- `"django.contrib.auth.hashers.CryptPasswordHasher"`

Smaoinigh ar a:ref: phasfhocal fillte hasher \<wrapping-password-hashers\>\`a úsáid chun na hashes i do bhunachar sonraí a neartú. Mura bhfuil sé sin indéanta, cuir an socrú:setting: \`PASSWORD\_HASHERS le do thionscadal agus cuir aon hashers a theastaíonn uait ar ais.

Is féidir leat a sheiceáil an bhfuil aon cheann de na hashers bainte mar seo ag do bhunachar sonraí:

```
from django.contrib.auth import get_user_model

User = get_user_model()

# Unsalted MD5/SHA1:
User.objects.filter(password__startswith="md5$$")
User.objects.filter(password__startswith="sha1$$")
# Salted MD5/SHA1:
User.objects.filter(password__startswith="md5$").exclude(password__startswith="md5$$")
User.objects.filter(password__startswith="sha1$").exclude(password__startswith="sha1$$")
# Crypt hasher:
User.objects.filter(password__startswith="crypt$$")

from django.db.models import CharField
from django.db.models.functions import Length

CharField.register_lookup(Length)
# Unsalted MD5 passwords might not have an 'md5$$' prefix:
User.objects.filter(password__length=32)
```

### Baintear modhanna ```Field.get_prep_lookup () ``agus ``Field.get_db_prep_lookup ()```

Má tá réimse saincheaptha agat a chuireann ceachtar de na modhanna seo i bhfeidhm, cláraigh cuardach saincheaptha dó. Mar shampla:

```
from django.db.models import Field
from django.db.models.lookups import Exact

class MyField(Field): ...

class MyFieldExact(Exact):
    def get_prep_lookup(self):
        # do_custom_stuff_for_myfield
        ...

MyField.register_lookup(MyFieldExact)
```

### [`django.contrib.gis`](/ga/6.1/ref/contrib/gis/#module-django.contrib.gis)

- Titear tacaíocht do SpatiaLite \<3.0 agus GEOS \<3.3.
- Baintear an ailias comhoiriúnachta ```add_postgis_srs () ``ar chúl do `django.contrib.gis.utils.add_srs_entry ()```.
- Ar Oracle/GIS, filleann an fheidhm chomhiomlán:: class: ~django.contrib.gis.db.Models.Functions.Area `float` anois in ionad `Decimal.Decimal`. (Tá sé fós fillte i dtomhas méadar cearnach.)
- Déantar an ionadaíocht réamhshocraithe: class: ~django.contrib.gis.geos.geosgeometry (aschur WKT) a ghearradh de réir réamhshocraithe. Is é sin, in ionad ```POINT (23.0000000000000000 5.5000000000000000) ``, gheobhaidh tú ``POINT (23 5.5)```.

### Tá uasmhéid comhlachta iarratais agus líon na bparaiméadair GET/POST teoranta

Cuidíonn dhá shocrú nua le hionsaithe diúltaithe seirbhíse a mhaolú trí iarratais mhóra:

- [`DATA_UPLOAD_MAX_MEMORY_SIZE`](/ga/6.1/ref/settings/#std-setting-DATA_UPLOAD_MAX_MEMORY_SIZE) limits the size that a request body
  may be. File uploads don't count toward this limit.
- [`DATA_UPLOAD_MAX_NUMBER_FIELDS`](/ga/6.1/ref/settings/#std-setting-DATA_UPLOAD_MAX_NUMBER_FIELDS) limits the number of GET/POST
  parameters that are parsed.

Seans go mbeidh ar iarratais a fhaigheann postanna foirmeacha neamhghnácha móra na socruithe seo a choigeartú.

### Ilghnéitheach

- \<QuerySet \>Tá an repr () \`\`de \`QuerySet\` fillte i\`\` chun é a dhíbhriú ó liosta simplí agus é á dífhabhtú.
- utils.version.get\_version () filleadh: pep: leaganacha iarrthóirí scaoilte comhlíontacha \`440 (m.sh. '1.10rc1' in ionad '1.10c1').
- Ceanglaítear anois gur teaghráin de 64 alfa-uimhriúla iad luachanna dearbháin CSRF; cuirtear teaghráin de 64 carachtar in ionad luachanna 32 alfa-uimhriúla, mar atá socraithe ag leaganacha níos sine de Django de réir réamhshocraithe. Meastar luachanna eile a bheith neamhbhailí. Níor cheart go ndéanfadh sé seo difear ach d’fhorbróirí nó d’úsáideoirí a athsholáthróidh na comharthaí seo.
- Baintear an socrú ```LOGOUT_URL` toisc nár bhain Django úsáid as ó roimh 1.0. Má úsáideann tú é i do thionscadal, is féidir leat é a chur le socruithe do thionscadail. Ba é an luach réamhshocraithe ná ``'/cuntais/logáil/'```.
- Tá rudaí le modh ```close () ``mar chomhaid agus gineadóirí a chuirtear chuig: class: `~django.http.httpResponse` dúnta anois láithreach in ionad nuair a ghlaonn an freastalaí WSGI ``close ()``` ar an bhfreagra.
- Baintear glao iomarcach ```transaction.atomic () ``i `QuerySet.Update_or_create ()```. D'fhéadfadh sé seo dul i bhfeidhm ar chomhaireamh ceisteanna a ndearnadh tástáil ag TransactionTestCase.assertNumQueries () .
- Baintear tacaíocht do skip\_validation\` i ```BaseCommand.execute (**roghanna) ``. Úsáid ``skip_checks``` (cuireadh i Django 1.7) ina ionad.
- : djadmin: Ardaíonn loaddata `CommandError` anois in ionad rabhadh a thaispeáint nuair nach bhfaightear an comhad daingneáin sonraithe.
- In ionad rochtain a fháil go díreach ar an tréith `Logentry.change_message`, is fearr anois glaoch ar an modh Logentry.get\_change\_message () a sholáthróidh an teachtaireacht sa teanga reatha.
- Ardaíonn na tuairimí earráide réamhshocraithe `TemplateDoesNotExist` anois má shonraítear `template_name` nach bhfuil ann.
- Baintear an argóint eochairfhocal ```roghnaí` neamhúsáidte den mhodh ``Relect``` agus `SelectMultiple` render () \`\`giuirléidí \`\`Render ()\`. Baintear an argóint `roghna` den mhodh ```render_options () ``freisin, rud a fhágann go bhfuil `roghnaí_roghnaithe``` an chéad argóint.
- Déanfaidh tástálacha a sháraíonn srianta bunachar sonraí in-iarchurtha earráid anois nuair a reáchtáiltear iad ar bhunachar sonraí a thacaíonn le srianta in-iarchurtha.
- Úsáideann orduithe bainistíochta ionsuite anois innéacsú eochracha i “roghanna”, m.sh. ```options ['verbosity'] ``, in ionad ``options.get ()``` agus ní dhéanann siad aon chineál comhéigeantach a thuilleadh. D'fhéadfadh sé seo a bheith ina fhadhb má tá tú ag glaoch orduithe ag baint úsáide as ```Command.execute () ``(a sheachnaíonn an parser argóint a leagann luach réamhshocraithe) in ionad:func: `~django.core.management.call_command`. In ionad glaoch ar ``Command.execute () ``, pas an réad ordaithe mar an chéad argóint chuig ``call_command ()```.
- Diúltaíonn: ~django.contrib.auth.backends.modelBackend agus:class: ~django.contrib.auth.backends.remoteUserBackend úsáideoirí neamhghníomhacha anois. Ciallaíonn sé seo nach féidir le húsáideoirí neamhghníomhacha logáil isteach agus logálfar amach iad má aistrítear iad ó `is_active=true` go `False`. Má theastaíonn an t-iompar roimhe seo uait, bain úsáid as an nua:class: ~django.contrib.auth.backends.allowAllUsersModelBackend nó:class: ~django.contrib.auth.backends.allowAllUsersRemoteUserBackend in:setting: AUTHENTICATION\_BACKENDS ina ionad.
- In light of the previous change, the test client's
  [`login()`](/ga/6.1/topics/testing/tools/#django.test.Client.login) method no longer always rejects inactive
  users but instead delegates this decision to the authentication backend.
  [`force_login()`](/ga/6.1/topics/testing/tools/#django.test.Client.force_login) also delegates the decision to the
  authentication backend, so if you're using the default backends, you need to
  use an active user.
- [`django.views.i18n.set_language()`](/ga/6.1/topics/i18n/translation/#django.views.i18n.set_language) may now return a 204 status code for
  AJAX requests.
- The `base_field` attribute of
  [`RangeField`](/ga/6.1/ref/contrib/postgres/fields/#django.contrib.postgres.fields.RangeField) is now a type of field,
  not an instance of a field. If you have created a custom subclass of
  [`RangeField`](/ga/6.1/ref/contrib/postgres/fields/#django.contrib.postgres.fields.RangeField), you should change the
  `base_field` attribute.
- Cuirtear ranganna Middleware a thionscnamh anois nuair a thosaíonn an freastalaí seachas le linn na chéad iarratais.
- \<user-is-auth-anon-deprecation\>Má sháraitheann tú ```is_autentifikated () ``nó ``is_anonymné ()``` i samhail úsáideora saincheaptha, ní mór duit iad a thiontú go tréithe nó airíonna mar a thuairiscítear in:ref: an nóta dímheasa .
- Nuair a úsáidtear: attr: ModelAdmin.save\_ \<django.contrib.admin.ModelAdmin.save\_as\>as = True \`, atreoraíonn an cnaipe “Sábháil mar nua” anois chuig an radharc athraithe don réad nua in ionad chuig liosta athraithe an tsamhail. \<django.contrib.admin.ModelAdmin.save\_as\_continue\>Má theastaíonn an t-iompar roimhe seo uait, socraigh an tréith nua:attr: \`ModelAdmin.save\_as\_continue \`do \`False\`.
- Tá an tréith HTML “riachtanach” ag réimsí foirme riachtanacha anois. \<django.forms.Form.use\_required\_attribute\>Socraigh an tréith: attr: Form.USE\_Required\_Attribute \`le \`False\` chun é a dhíchumasú. D'fhéadfá an tréith `novalidate` a chur le \`\` mura dteastaíonn bailíochtú brabhsála \<form\>í uait. \<django.forms.Widget.use\_required\_attribute\>Chun an tréith `riachtan` a dhíchumasú ar ghuirléidí saincheaptha, athsháraigh an modh:meth: Widget.USE\_REQUIRED\_ATTRIBUTE () .
- Ní bhaineann an láimhseálaí WSGI ábhar na bhfreagraí a thuilleadh ó iarratais nó freagraí ```HEAD` le ``status_code``` de 100-199, 204, nó 304. Cuireann an chuid is mó de na freastalaithe gréasáin an t-iompar seo Leanann na “socruithe freagartha” seo i bhfeidhm ag freagraí a aisghabhadh ag úsáid cliant tástála Django.
- ````Samhail. Faigheann __init__ () ```Django.db.Models.Deferred```` anois mar luach na réimsí iarchurtha.
- An ```Samhail. Baintear tréith _athraingthe ``mar aicmí samhail dinimiciúla nuair a úsáidtear ``querySet.Defer ()``` agus only () baintear.
- [`Storage.save()`](/ga/6.1/ref/files/storage/#django.core.files.storage.Storage.save) no longer
  replaces `'\'` with `'/'`. This behavior is moved to
  [`FileSystemStorage`](/ga/6.1/ref/files/storage/#django.core.files.storage.FileSystemStorage) since this is a storage
  specific implementation detail. Any Windows user with a custom storage
  implementation that relies on this behavior will need to implement it in the
  custom storage's `save()` method.
- Príobháideach:Class: ~django.db.models.filefield ní thuilleadh ar mhodhanna ```get_directory_name () ``agus `get_filename ()``` a thuilleadh (agus tá siad curtha anois) ar athrú neamh-chomhoiriúnach é d'úsáideoirí a sháraíonn na modhanna sin ar réimsí saincheaptha. \<django.core.files.storage.Storage.generate\_filename\>Chun an cód den sórt sin a oiriúnú, déan filefield.generate\_filename () \`\`\`nó: meth: \`Storage.generate\_filename () ina ionad. B'fhéidir go mbeadh sé indéanta a úsáid:attr: ~django.db.models.filefield.upload\_to freisin.
- Ní ghearrtar ábhar an phoist a sheolann `AdminEmailHandler` ag 989 carachtar a thuilleadh. Má bhí tú ag brath ar fad teoranta, déan an t-ábhar a ghearradh ort féin.
- Baintear abairtí príobháideacha `Django.db.Models.Expressions.Date` agus DateTime\`. Soláthraíonn na nathanna nua:class: ~django.db.models.functions.trunc an fheidhmiúlacht chéanna.
- Baintear na tréithe `_base_manager` agus `_default_manager` ó chásanna samhail. Tá siad inrochtana ar an rang samhail.
- Ag rochtain a fháil ar réimse scriosta ar shampla samhail, m.sh. tar éis `del obj.field`, luach an réimse a athluchtú in ionad `AttributeError` a ardú.
- Má dhéanann tú fo-aicme `AbstractBaseUser` agus má sháraíonn tú ```clean () ``, bí cinnte go nglacann sé ``super ()```. :meth: Glaítear .AbstractBaseUser.Normalize\_UserName i modh nua:meth: .AbstractBaseUser.clean.
- Tugann API príobháideach ```django.forms.models.model_to_dict () ``tacar fiosrúcháin seachas liosta de na príomheochracha do ``ManyTomanyField```s.
- Má tá django.contrib.staticfiles\` suiteáilte, úsáideann an clib teimpléad:ttag: static an stóráil `staticfiles` chun an URL a thógáil seachas an luach a cheangal le STATIC\_ROOT\`. Ionchódaíonn an cur chuige nua an URL, a d'fhéadfadh a bheith comhoiriúnach ar chúl i gcásanna amhail blúire a áireamh i gcosán, m.sh. ``{% static 'img.svg #fragment'%} `, ós rud é go bhfuil an `#`` ionchódaithe mar %23\`. Chun oiriúnú, bog an blúire lasmuigh den chlib teimpléad: `{% static 'img.svg'%} #fragment`.
- Nuair a bhíonn `USE_L10N` `True`, cuirtear logánú i bhfeidhm anois ar na scagairí:tfilter: dáta agus:tfilter: time nuair nach sonraítear aon teaghrán formáide. Úsáidtear na sonraitheoirí `DATE_FORMAT` agus `TIME_FORMAT` ón áitear gníomhach in ionad na socruithe den ainm céanna.

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

### Sannadh díreach le heochair eachtrach droim nó gaol go leor

In ionad rudaí gaolmhara a shannadh ag úsáid sannadh díreach:

```pycon
>>> new_list = [obj1, obj2, obj3]
>>> e.related_set = new_list
```

Úsáid an modh: meth: ~django.db.models.fields.related.relatedManager.set curtha leis i Django 1.9:

```pycon
>>> e.related_set.set([obj1, obj2, obj3])
```

Cuireann sé seo cosc ar mhearbhall faoi shannadh mar thoradh ar shábháil intuigthe.

### Neamh-Time-Area: Class: ~django.core.files.storage.storage API

Tá na sean-mhodhanna, neamh-eolach ar chrios ama ```accsed_time () ``, `created_time ()```, agus modified\_time () \`, modhnaithe () \`\`a dhíchur i bhfabhar na modhanna nua \`\`get\_\*\_time ()\`.

Ba chóir go gcuirfeadh cúltaca stórála tríú páirtí na modhanna nua a chur i bhfeidhm agus na seancinn a mharcáil Go dtí sin, déanann na modhanna nua ```get_*_time () ``ar an mbon:class: `~django.core.files.storage` a thiontú ``datetime```s ó na sean-mhodhanna de réir mar is gá agus scaoileann siad rabhadh dipraiticiúcháin de réir mar a dhéanann siad amhlaidh.

Féadfaidh cúltaca stórála tríú páirtí na sean-mhodhanna a choinneáil chomh fada agus is mian leo tacú le leaganacha níos luaithe de Django.

### [`django.contrib.gis`](/ga/6.1/ref/contrib/gis/#module-django.contrib.gis)

- Tá na modhanna ```get_srid () ``agus `set_srid ()``` de:class: ~django.contrib.gis.geos.geosgeometry i bhfabhar na maoine: attr: ~django.contrib.gis.geos.geosgeometry.srid.
- Tá na modhanna ```get_x () ``, `set_x ()```, get\_y () \`, set\_y ()\`, get\_z () \`, agus `set_z ()` modhanna de:class: ~django.contrib.gis.geos.point i bhfabhar an ```x' Airíonna ``, ``y```, agus `z`.
- Tá na modhanna ```get_coords () ``agus `set_coords ()``` de:class: ~django.contrib.gis.geos.point i bhfabhar na maoine `tuple`.
- Tá an maoin cascaded\_union\` de:class: ~django.contrib.gis.geos.multipolygon a dhíchur i bhfabhar na maoine: attr: ~django.contrib.gis.geos.geosgeometry.unary\_union.
- Tá an fheidhm django.contrib.gis.utils.precision\_wkt () díluaite i bhfabhr:class: \`~django.contrib.gis.geos.wktWriter.

### Réimse samhail `CommaseParatedIntegerField`

Tá `CommaseParatedIntegerField` díscoite i bhfabhr:class: ~django.db.models.charfield leis an bailíochtaí:func: ~django.core.validators.validate\_comma\_separated\_integer\_list bailíochtaithe:

```
from django.core.validators import validate_comma_separated_integer_list
from django.db import models

class MyModel(models.Model):
    numbers = models.CharField(..., validators=[validate_comma_separated_integer_list])
```

Má tá Oracle á úsáid agat, úsáideann `Charfield` cineál réimse bunachar sonraí difriúil (`NVARCHAR2`) ná `CommaseParatedIntegerField` (`VARCHAR2`). Ag brath ar do shocruithe bunachar sonraí, d'fhéadfadh sé seo ionchódú difriúil a thabhairt le tuiscint, agus dá bhrí sin fad difriúil (i mbetaí) don ábhar céanna. Má tá do luachanna stóráilte níos faide ná an teorainn 4000 beit de `NVARCHAR2`, ba chóir duit `Textfield` (NCLOB\`) a úsáid ina ionad. Sa chás seo, má tá aon cheisteanna agat a ghrúpaíonn de réir an réimse (m.sh. anótáil a dhéanamh ar an tsamhail le comhiomlánú nó ag baint úsáide as difriúil () ) beidh ort iad a athrú (chun an réimse a chur siar).

### Ag baint úsáide as ainm samhail mar chuardach ceisteanna nuair a shocraítear `default_related_name`

Glac leis na samhlacha seo a leanas:

```
from django.db import models

class Foo(models.Model):
    pass

class Bar(models.Model):
    foo = models.ForeignKey(Foo)

    class Meta:
        default_related_name = "bars"
```

I leaganacha níos sine, ní fhéadfaí :attr: ~django.db.models.options.default\_related\_name a úsáid mar chuardach ceisteanna. Tá sé seo socraithe agus déantar tacaíocht don sean-ainm cuardaigh a dhíchur. Mar shampla, ós rud é go bhfuil default\_related\_name\` socraithe sa tsamhail `Bar`,, in ionad ainm an tsamhail `bar` a úsáid mar an chuardach:

```pycon
>>> bar = Bar.objects.get(pk=1)
>>> Foo.objects.get(bar=bar)
```

bain úsáid as an réamhshocraithe\_related\_name `barra`:

```pycon
>>> Foo.objects.get(bars=bar)
```

### Cuardach ceisteanna `__search`

Tá an cuardach `chuardach`, a thacaíonn le MySQL amháin agus atá thar a bheith teoranta i ngnéithe, míshuanta. Cuardach saincheaptha in ionad é:

```
from django.db import models

class Search(models.Lookup):
    lookup_name = "search"

    def as_mysql(self, compiler, connection):
        lhs, lhs_params = self.process_lhs(compiler, connection)
        rhs, rhs_params = self.process_rhs(compiler, connection)
        params = lhs_params + rhs_params
        return "MATCH (%s) AGAINST (%s IN BOOLEAN MODE)" % (lhs, rhs), params

models.CharField.register_lookup(Search)
models.TextField.register_lookup(Search)
```

### Ag baint úsáide as ```User.is_Authenticated () ``agus ``User.is_Anonymous ()``` mar mhodhanna

Is airíonna anois iad na modhanna ```is_autenticated () ``agus ``is_anonymus ()``` de:class: ~django.contrib.auth.models.abstractBaseUser agus:class: ~django.contrib.auth.models.anonymousUser aicmí anois. Oibreoidh siad fós mar mhodhanna go dtí Django 2.0, ach úsáideann gach úsáid i Django rochtain tréithe anois.

Mar shampla, má úsáideann tú: class: ~django.contrib.auth.middleware.AuthenticationMiddleware agus má theastaíonn uait a fháil amach an bhfuil an t-úsáideoir logáilte isteach faoi láthair bheadh úsáid as:

```
if request.user.is_authenticated:
    ...  # Do something for logged-in users.
else:
    ...  # Do something for anonymous users.
```

in ionad request.user.is\_autenticated () .

Seachnaíonn an t-athrú seo sceitheadh faisnéise de thaisme má dhéanann tú dearmad glaoch ar an modh, m.sh.:

```
if request.user.is_authenticated:
    return sensitive_information
```

Má sháraíonn tú na modhanna seo i samhail úsáideora saincheaptha, ní mór duit iad a athrú go hairíonna nó tréithe.

Úsáideann Django réad `CallableBool` chun ligean do na tréithe seo oibriú mar mhaoin agus mar mhodh araon. Dá bhrí sin, go dtí go gcríochnaíonn an tréimhse díghabhála, ní féidir leat na hairíonna seo a chur i gcomparáid ag baint úsáide as an oibreoir Is é sin, ní oibreoidh an méid seo a leanas:

```
if request.user.is_authenticated is True:
    ...
```

### Caithfidh ranganna bainisteora saincheaptha atá ar fáil trí `prefetch_related` modh \_apply\_rel\_filters () a shainiú

Má shainigh tú rang bainisteora saincheaptha atá ar fáil trí:meth: ~django.db.models.query.queryset.prefetch\_related ní mór duit a chinntiú go sainmhíníonn sé modh \_apply\_rel\_filters () .

Caithfidh an modh seo glacadh le sampla a:class: ~django.db.models.query.querySet mar a argóint aonair agus leagan scagtha den tacar ceisteanna a thabhairt ar ais don samhail samhail atá an bainisteoir faoi cheangal.

### An leath “éalaithe” de django.utils.safestring\`

Tá an fheidhm ```mark_for_escaping () ``agus na haicmí a úsáideann sé: ``EscapeData```, EscapeBytes\`, EscapeText\`, EscapeString\`, agus `EscapeUnicode` dímheasta.

Mar thoradh air sin, tá iompar “leisciúil” an scagaire éalaithe (áit a chuirfí i bhfeidhm é i gcónaí mar an scagaire deireanach is cuma cá raibh sé le feiceáil sa slabhra scagaire) a dhíchur. Athróidh an scagaire chun cur i bhfeidhm láithreach:func: ~django.utils.html.conditional\_escape i Django 2.0.

### `Manager.Use_for_Related_Fields` agus athruithe oidhreachta

\<django.db.models.Options.base\_manager\_name\>Tá `Manager.Use_for_Related_Fields` a dhíchur i bhfabhar socruithe: attr: Meta.Base\_Manager\_name ar an mhúnla.

Leanfaidh oidhreacht Mhúnla Bainisteoir \`\`rialacha oidhreachta MRO i Django 2.0, ag athrú an t-iompar reatha nuair nach n-oidhreacht ag ranganna leanaí bainisteoirí atá sainmhínithe ar ranganna bonn neamh-teibí. Ardaítear rabhadh laghdaitheach le treoracha maidir le conas do chód a oiriúnú má tá aon bhainisteoirí difear agat. Déanfaidh tú bainisteoir a athdhearbhú ó mhúnla teibí ar rang an linbh chun an bainisteoir a shárú ón tsamhail choincréite, nó socraíonn tú rogha \`\`meta.manager\_heritance\_from\_future=true\` an tsamhail chun roghnú isteach san iompar oidhreachta nua.

Le linn na tréimhse díghabhála, déanfar onóir ar `use_for_related_fields` agus ardófar rabhadh, fiú má shocraítear `base_manager_name`. Ligeann sé seo cód tríú páirtí iompar oidhreachta a chaomhnú agus é ag aistriú chuig an API nua. Is féidir an rabhadh a thostú trí `Silence_USE_for_related_fields_deprecation=true` a shocrú ar an mbainisteoir.

### Ilghnéitheach

- Tá an rogha `makemigrations --exit` a dhíchur i bhfabhar an rogha: makemigrations --check.
- Tá django.utils.functional.allow\_lazy () díluaite i bhfabhar an fheidhm nua:func: ~django.utils.functional.keep\_lazy is féidir a úsáid le comhréir maisiúcháin níos nádúrtha.
- Tá an rogha ```shell --plain ``a dhíchur i bhfabhar ``-i python``` nó `--interface python`.
- Tá allmhairiú ón modúl `django.core.urlresolvers` a dhíchur i bhfabhar a shuíomh nua, :mod: django.urls.
- Tá an modh teimpléad ```Context.has_key () ``a dhíchur i bhfabhar ``in```.
- An tréith phríobháideach `virtual_fields` de Samhail. Tá \_meta\` a dhíchur i bhfabhar `príobháideach_fields`.
- Na hargóintí eochairfhocal príobháideacha `virtual_only` i field.contribute\_to\_class () \`\`agus \`\`virtual\` i Samhail. Tá \_meta.add\_field () \`\`a dhíchur i bhfabhar \`\`príobháideach\_only\` agus príobháideach\`, faoi seach.
- Tá na tuairimí javascript\_catalog () \`\`agus \`\`json\_catalog ()\` a dhíchur i bhfabhar radhairc ranga-bhunaithe: class: ~django.views.i18n.javascriptCatalog agus:class: ~django.views.i18n.jsonCatalog.
- In oidhreacht il-tábla, cuirtear cur chun cinn intuigthe `OneToonefield` go parent\_link\` a chur chun cinn intuigthe. Cuir `parent_link=True` le réimsí den sórt sin.
- An API príobháideach Giuirléid. Déantar \_format\_value () a phoiblí agus athainmnítear u:meth: ~django.forms.widget.format\_value. Oibreoidh an sean-ainm trí thréimhse díghabhála.
- Private `FileField` methods `get_directory_name()` and `get_filename()`
  are deprecated in favor of performing this work in
  [`Storage.generate_filename()`](/ga/6.1/ref/files/storage/#django.core.files.storage.Storage.generate_filename).
- Tá meán-earraí sean-stíl a úsáideann `Settings.middleware_classes` a dhíchur. :ref: Cuir sean-mheánearraí saincheaptha in oiriúint \`agus ba \<upgrading-middleware\>in úsáid as an socrú nua:setting: \`MIDDLEWARE.

## Gnéithe bainte i 1.10

Tá na gnéithe seo tar éis deireadh a dtimthriall díscrúdaithe bainte amach agus baintear iad i Django 1.10. Féach: Ref: deprecated-features-1.8 le haghaidh sonraí, lena n-áirítear conas úsáid na ngnéithe seo a bhaint.

- Baintear tacaíocht chun glaoch ar `SQLCompiler` go díreach mar ainm chun a mhodh `quote_name_unless_alias` a ghlaoch.
- Baintear na clibeanna teimpléad ```timthriall` agus ``firstof``` ón leabharlann clibeanna teimpléad `todhcha`.
- Baintear django.conf.urls.patterns () .
- Baintear tacaíocht don argóint `prefix` chuig django.conf.urls.i18n.i18n\_patterns () .
- Baintear `SimpletestCase.urls`.
- Ardaíonn comhaireamh mícheart luachanna neamhphacáilte sa chlib teimpléad `for` eisceacht seachas teip go ciúin.
- Baintear an cumas:func: ~django.urls.reverse URLanna ag baint úsáide as cosán poncaí Python.
- Baintear an cumas cosán poncaigh Python a úsáid do na socruithe `LOGIN_URL` agus `LOGIN_REDIRECT_URL`.
- Titeann tacaíocht do optparse\` le haghaidh orduithe bainistíochta saincheaptha.
- Baintear an rang `Django.Core.Management.NoArgsCommand`.
- Baintear modúl `django.core.context_processors`.
- Baintear modúl `django.db.models.sql.aggregates`.
- Baintear modúl `django.contrib.gis.db.models.sql.aggregates`.
- Baintear na modhanna agus na hairíonna seo a leanas de Django.db.sql.query.query\`:

  - Airíonna: `aggregates` agus `aggregate_select`
  - Modhanna: `add_aggregate`, set\_aggregate\_mask\`, agus `append_aggregate_mask`.
- Baintear `django.template.resolve_variable`.
- Baintear na APIs príobháideacha seo a leanas ó:class: Django.db.Models.Options.Options (`Model. _meta`):

  - get\_field\_by\_ainm () \`
  - faigh\_all\_field\_ainmneacha () \`
  - faigh\_fields\_with\_model () \`\`
  - faigh\_réimsí coincréite\_with\_model () \`
  - get\_m2m\_with\_model () \`
  - faigh\_all\_earra\_bhainteach\_() \`
  - Faigh\_rudaí gaolmhaithe\_le\_samhail () \`
  - faigh\_all\_bhainteach\_go leor le go leor rudaí () \`
  - faigh\_all\_gaol\_m2m\_rudaí\_le\_samhail () \`
- Baintear an argóint `error_message` de django.forms.regexfield\`.
- Ní thacaíonn an scagaire `unordered_list` le seanliostaí stíl a thuilleadh.
- Baintear tacaíocht d'argóintí teaghrán `view` chuig url () \`.
- An shim comhoiriúnach ar chúl chun ```Django.Forms.form a athainmniú. Baintear _has_modified () ``go ``has_changes ()```.
- Baintear an scagaire teimpléad removetags .
- Baintear na feidhmeanna ```remove_tags () ``agus `strip_entity ()``` i django.utils.html\`.
- Baintear an argóint `is_admin_site` le django.contrib.auth.views.password\_reset () .
- Baintear `django.db.models.field.subclassing.subfieldbase`.
- Baintear `django.utils.checksums`.
- Baintear an tréith `original_content_type_id` ar Django.contrib.admin.helpers.inlineAdminForm\`.
- Baintear an shim comhoiriúnachta ar ais chun ligean do ```formMixin.get_form () ``a shainiú gan aon luach réamhshocraithe dá argóint ``form_class```.
- Baintear na socruithe seo a leanas, agus ní mór duit uasghrádú a dhéanamh chuig an socrú:setting: TEMPLATES:

  - `CEADÁIL_INCLUDE_FRÉAMH`
  - `PRÓISEÁLAITHE COMHTHÉACS TEIMPLÉAD`
  - `TEMPLATE_DEBUG`
  - `TEIMPLÉAD_DIRS`
  - `TEIMPLÉ_LOADERS`
  - `TEIMPLÉAD_STRING_IFE_NEAMHBHAILÍ`
- Baintear an alias comhoiriúnachta ar chúl `Django.Template.Loader`.
- Django template objects returned by
  [`get_template()`](/ga/6.1/topics/templates/#django.template.loader.get_template) and
  [`select_template()`](/ga/6.1/topics/templates/#django.template.loader.select_template) no longer accept a
  [`Context`](/ga/6.1/ref/templates/api/#django.template.Context) in their
  [`render()`](/ga/6.1/topics/templates/#django.template.backends.base.Template.render) method.
- [Template response APIs](/ga/6.1/ref/template-response/) enforce the use of
  [`dict`](https://docs.python.org/3/library/stdtypes.html#dict) and backend-dependent template objects instead of
  [`Context`](/ga/6.1/ref/templates/api/#django.template.Context) and [`Template`](/ga/6.1/ref/templates/api/#django.template.Template)
  respectively.
- Baintear an paraiméadar `current_app` don fheidhm agus na ranganna seo a leanas:

  - django.shortcuts.render () \`\`
  - Django.Template.context () \`\`
  - Django.Template.requestContext () \`\`
  - Django.Template.Response.TemplateResponse () \`\`
- Baintear na paraiméadair `foclóire` agus `context_instance` do na feidhmeanna seo a leanas:

  - django.shortcuts.render () \`\`
  - django.shortcuts.render\_to\_response () \`\`
  - django.template.loader.render\_to\_string () \`\`
- Baintear an paraiméadar dirs\` do na feidhmeanna seo a leanas:

  - django.template.loader.get\_template () \`\`
  - django.template.loader.select\_template () \`\`
  - django.shortcuts.render () \`\`
  - django.shortcuts.render\_to\_response () \`\`
- Cumasaítear fíorú seisiúin beag beann cibé an bhfuil ``DJANGO.contrib.auth.middleware.SessionAuthenticationMiddleware'` i `MIDDLEWARE_CLASSES`` nó nach bhfuil. Níl aon chuspóir ag SessionAuthenticationMiddleware\` a thuilleadh agus is féidir é a bhaint as MIDDLEWARE\_CLASSES. Coinnítear é mar stub go dtí Django 2.0 mar chúirtéis d'úsáideoirí nach léann an nóta seo.
- Baintear tréith príobháideach `Django.db.Models.Field.Related`.
- Baintear an rogha `--list` den ordú bainistíochta `imirce`.
- Baintear an chlib teimpléad `ssi`.
- Baintear tacaíocht don oibreoir comparáide `=` sa chlib teimpléad if .
- Baintear na cinn comhoiriúnachta ar chúl chun ligean ```Storage.get_available_name () ``agus ``Storage.save ()``` a shainiú gan argóint `max_long`.
- Baintear tacaíocht don chomhréir oidhreachta `% (<foo>) s` i ModelFormMixin.Success\_URL\`.
- Baintear modhanna comhiomlána ```GeoquerySet ``bailiú () ``, `méid ()```, extent3d () \`, `make_line ()`, agus `` unionagg () ` ``.
- Baintear an cumas `ContentType.Name` a shonrú agus sampla cineál ábhair á chruthú.
- Baintear tacaíocht do sheanshíniú `allow_migrate`.
- Baintear tacaíocht do chomhréir `{% cycle%}` a úsáideann argóintí scartha le camóg.
- Is é an rabhadh go n-eisíodh: class: ~django.core.signing.signer nuair a thugtar deighilteoir neamhbhailí ina `ValueError` anois.
