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

*1 Aibreán, 2015*

Fáilte go dtí Django 1.8!

Clúdaíonn na nótaí scaoilte seo na:ref: gnéithe nua \<whats-new-1.8\>, chomh maith le roinnt athruithe: ref: athruithe neamh-chomhoiriúnacha ar chúl\<backwards-incompatible-1.8\> a mbeidh tú ag iarraidh a bheith ar an eolas fúthu agus tú ag uasghrádú ó Django 1.7 nó leaganacha níos sine. \<removed-features-1.8\>Táimid freisin: ref: tús a chur leis an bpróiseas diúltaithe do roinnt \<deprecated-features-1.8\>gnéithe \`, agus tá roinnt gnéithe tar éis deireadh a bpróiseas díscrúdaithe agus:ref: \`baineadh.

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

\<Long-term support release\>Ainmníodh Django 1.8 mar an dara téarma Django: scaoileadh tacaíochta fadtéarmach . Gheobhaidh sé nuashonruithe slándála ar feadh trí bliana ar a laghad tar éis a scaoilte Beidh deireadh le tacaíocht don LTS roimhe seo, Django 1.4, 6 mhí ó dháta scaoilte Django 1.8.

## Comhoiriúnacht Python

Éilíonn Django 1.8 Python 2.7, 3.2, 3.3, 3.4, nó 3.5. Molaimid\*\* go hard\*\* agus ní thacaímid go hoifigiúil ach leis an scaoileadh is déanaí de gach sraith.

Is é Django 1.8 an chéad eisiúint chun tacú le Python 3.5.

Mar gheall ar dheireadh na tacaíochta suas srutha do Python 3.2 i mí Feabhra 2016, ní dhéanfaimid tástáil Django 1.8.x ar Python 3.2 tar éis dheireadh 2016.

## Cad atá nua i Django 1.8

### `Samhail. API _meta`

Tá API foirmiúil ag Django anois le haghaidh: doc: Samhail. \</ref/models/meta\> \<model-field-attributes\>\_meta, ag soláthar bealach tacaithe go hoifigiúil chuir:ref: réimsí a aisghabháil \`agus réimsí a scagadh bunaithe ar \<model-meta-field-api\>a n:ref: \`tréithe.

An `Samhail. Tá réad _meta` mar chuid de Django ó laethanta roimh 0.96 “Magic Removal” - ní raibh sé ach API oifigiúil cobhsaí. Mar aitheantas air seo, rinneamar iarracht comhoiriúnacht cúil a choinneáil leis an sean-chríochphointe API nuair is féidir. Mar sin féin, tá críochphointí API nach cuid den API oifigiúil nua dímheasta agus bainfear iad sa deireadh.

### Innill teimpléad iliom

Sainmhíníonn Django 1.8 API cobhsaí chun cúltaca teimpléad a chomhtháthú. Cuimsíonn sé tacaíocht ionsuite don teanga teimpléad Django agus le haghaidh: class: ~django.template.backends.jinja2.jinja2. Tacaíonn sé le teimpléid rindreála le ilinnill laistigh den tionscadal céanna. Faigh tuilleadh eolais faoi na gnéithe nua in:doc: treoir topaic agus seiceáil na treoracha u\</topics/templates\> asghrádaithe i leaganacha níos sine den doiciméadú.

### Feabhsuithe slándála

Tá roinnt gnéithe den leabharlann tríú páirtí: pypi: django-secure comhtháite i Django. :class: Soláthraíonn django.middleware.security.securityMiddleware roinnt feabhsuithe slándála don timthriall iarrata/freagartha. Ligeann an rogha nua:option: check --deploy duit do chomhad socruithe táirgeachta a sheiceáil le haghaidh bealaí chun slándáil do shuíomh a mhéadú.

### Feidhmiúlacht shonrach nua PostgreSQL

Tá modúl ag Django anois le síntí do ghnéithe sonracha PostgreSQL, mar shampla:class: ~django.contrib.postgres.fields.arrayfield, :class: ~django.contrib.postgres.fields.hstorefield, :ref: range-fields, agus:lookup: unaccent lookup. Tá miondealú iomlán ar na gnéithe ar fáil: doc: sa doiciméadúis' \</ref/contrib/postgres/index\>.

### Cineálacha sonraí nua

- Tá a: class: ~django.db.models.uuidfield ag Django anois chun aitheantóirí uathúla go huilíoch a stóráil. Stóráiltear é mar an chineál sonraí dúchasach uuid ar PostgreSQL agus mar réimse carachtar fad seasta ar chúlchúrsaí eile. \<django.forms.UUIDField\>Tá comhfhreagrach ann: aicme: réimse foirm .
- Tá a: class: ~Django.db.Models.DurationField ag Django anois chun tréimhsí ama a stóráil - múnlaithe i Python ag:class: ~python:datetime.timedelta. Stóráiltear é sa chineál sonraí dúchasach ```interval ``ar PostgreSQL, mar `INTERVAL DAY (9) GO SECOND (6)``` ar Oracle, agus mar bigint de mhicreasoicind ar chúltaca eile. Feabhsaíodh uimhríocht a bhaineann le dáta agus am ar gach cúltaca freisin. \<django.forms.DurationField\>Tá comhfhreagrach ann: aicme: réimse foirm .

### Nathanna Fiosrúcháin, Nathanna Coinníollach agus Feidhmean

[Query Expressions](/ga/5.2/ref/models/expressions/) allow you to create,
customize, and compose complex SQL expressions. This has enabled annotate
to accept expressions other than aggregates. Aggregates are now able to
reference multiple fields, as well as perform arithmetic, similar to `F()`
objects. [`order_by()`](/ga/5.2/ref/models/querysets/#django.db.models.query.QuerySet.order_by) has also gained the
ability to accept expressions.

[Conditional Expressions](/ga/5.2/ref/models/conditional-expressions/) allow
you to use [`if`](https://docs.python.org/3/reference/compound_stmts.html#if) ... [`elif`](https://docs.python.org/3/reference/compound_stmts.html#elif) ... [`else`](https://docs.python.org/3/reference/compound_stmts.html#else) logic within
queries.

Tá bailiúchán de:doc: feidhmeanna bunachar sonraí san áireamh freisin le feidhmiúlacht amsúil:class: ~Django.db.Models.Functions.Coalesce \</ref/models/database-functions\>, :class: ~Django.db.Models.Functions.concat, agus:class: ~Django.db.Models.Functions.substr.

### Socrú sonraí Testcase \`\`

[`TestCase`](/ga/5.2/topics/testing/tools/#django.test.TestCase) has been refactored to allow for data
initialization at the class level using transactions and savepoints. Database
backends which do not support transactions, like MySQL with the MyISAM storage
engine, will still be able to run these tests but won't benefit from the
improvements. Tests are now run within two nested
[`atomic()`](/ga/5.2/topics/db/transactions/#django.db.transaction.atomic) blocks: one for the whole class and one
for each test.

- Cuireann an modh ranga: meth: TestCase.setupTestData () \<django.test.TestCase.setUpTestData\>\`an cumas sonraí tástála a chur ar bun ag leibhéal an ranga. Trí úsáid a bhaint as an teicníc seo is féidir leis na tástálacha a bhrostú i gcomparáid le Setup () a úsáid.
- Déantar luchtú daingneáin laistigh de ```Tástchás ``uair amháin anois don ``tástchás``` iomlán.

### Mionghnéithe

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

- [`ModelAdmin`](/ga/5.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin) now has a
  [`has_module_permission()`](/ga/5.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin.has_module_permission)
  method to allow limiting access to the module on the admin index page.
- [`InlineModelAdmin`](/ga/5.2/ref/contrib/admin/#django.contrib.admin.InlineModelAdmin) now has an attribute
  [`show_change_link`](/ga/5.2/ref/contrib/admin/#django.contrib.admin.InlineModelAdmin.show_change_link) that
  supports showing a link to an inline object's change form.
- \<django.contrib.admin.ModelAdmin.list\_filter\>Úsáid an Django.contrib.admin.RelatedOnlyFieldListFilter\` nua in:attr: ModelAdmin.list\_Filter \`chun na roghanna \`\`list\_filter\` a theorannú le rudaí eachtracha atá ceangailte leo siúd ón `ModelAdmin`.
- Taispeánann an:Meth: ModelAdmin.delete\_view () \<django.contrib.admin.ModelAdmin.delete\_view\>\`achoimre ar rudaí atá le scriosadh ar an leathanach deimhnithe scriosadh.
- Tá an leabharlann jQuery leabaithe sa riarachán uasghrádaithe go leagan 1.11.2.
- Is féidir leat anois a shonrú: attr: adminsite.site\_url \<django.contrib.admin.AdminSite.site\_url\>\`d'fhonn nasc a thaispeáint chuig an suíomh tosaigh.
- Is féidir leat anois a shonrú: attr: ModelAdmin.show\_full\_result\_count \<django.contrib.admin.ModelAdmin.show\_full\_result\_count\>\`chun rialú a dhéanamh ar chóir líon iomlán rudaí a thaispeáint ar leathanach riaracháin scagtha nó nach bhfuil.
- Tá paraiméadar `extra_context` anois ag an modh adminsite.password\_change () .
- \<django.contrib.admin.AdminSite.has\_permission\>\<django.contrib.admin.AdminSite.login\_form\>Is féidir leat a rialú anois cé a d'fhéadfadh logáil isteach ar an suíomh riaracháin trí shárú amháin: meth: adminsite.has\_permit () \`agus:attr: \`adminsite.login\_form. Tá bloc nua `usertools` sa teimpléad `base.html` ina bhfuil an ceannteideal úsáideora sonrach. Léiríonn athróg comhthéacs nua `has_permission`, a fhaigheann a luach ó:meth: ~django.contrib.admin.admin.adminsite.has\_permission, an bhféadfaidh an t-úsáideoir rochtain a fháil ar an suíomh.
- Tá cnaipí anois ag eochair eachtracha chun rudaí gaolmhara a athrú nó a scriosadh ag baint úsáide as pop-up.

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

- déantar reStructuredText a pharsáil anois i sraitheoga doctúir samhail.

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

- Is féidir le cúltaca údaraithe a ardú anois:class: ~django.core.exceptions.permissionDenied in:meth: ~django.contrib.auth.models.user.has\_perm agus:meth: ~django.contrib.auth.models.user.has\_module\_permS chun seiceáil cead gearrchiorcad.
- [`PasswordResetForm`](/ga/5.2/topics/auth/default/#django.contrib.auth.forms.PasswordResetForm) now
  has a method [`send_mail()`](/ga/5.2/topics/auth/default/#django.contrib.auth.forms.PasswordResetForm.send_mail)
  that can be overridden to customize the mail to be sent.
- \<django.contrib.auth.models.Permission.name\>Tá an max\_length o:attr: Permission.name méadaithe ó 50 go 255 carachtar. Rith an imirce bunachar sonraí le do thoil.
- [`USERNAME_FIELD`](/ga/5.2/topics/auth/customizing/#django.contrib.auth.models.CustomUser.USERNAME_FIELD) and
  [`REQUIRED_FIELDS`](/ga/5.2/topics/auth/customizing/#django.contrib.auth.models.CustomUser.REQUIRED_FIELDS) now supports
  [`ForeignKey`](/ga/5.2/ref/models/fields/#django.db.models.ForeignKey)s.
- Méadaíodh 33% ar 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ú.

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

- Tá nua:doc: GeoJSON serializer ar fáil anois \</ref/contrib/gis/serializers\>.
- Tá sé ceadaithe anois fo-cheist a áireamh mar argóint cuardaigh geografach, mar shampla City.Objects.filter (point\_\_within=Country.Objects.filter (continent='Africa') .values ('mpoly')) .
- Tacaíonn an cúltaca SpatiaLite anois le comhiomlánacha `Collect` agus `Extent` nuair a bhíonn leagan an bhunachar sonraí 3.0 nó níos déanaí.
- Déantar an PostGIS 2 CREATE EXTENSION postgis \`\`agus na horduithe tionscnaíochta SpatialLite \`\`SELECT initSpatialMetadata\` a reáchtáil go huathoibríoch anois ag: djadmin: migrate.
- \<raster-data-source-objects\>Tacaíonn comhéadan GDAL anois le hairíonna comhad sonraí: ref: raster (íomhá) a aisghabháil.
- Baineadh shimsí comhoiriúnachta do `SpatialRefsys` agus `GeometryColumns` a athraíodh i Django 1.2.
- Ardaítear gach eisceacht a bhaineann le GDAL anois le `GdalException`. Coinníodh an sean-Ogrexception le haghaidh comhoiriúnacht ar ais ach níor chóir é a úsáid níos mó.

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

- Scriostar fianán seisiúin anois tar éis: meth: ~django.contrib.sessions.backends.base.sessionbase.flush () tugtar.

#### [`django.contrib.sitemaps`](/ga/5.2/ref/contrib/sitemaps/#module-django.contrib.sitemaps)

- Ligeann an tréith nua:attr: SiteMap.i18n \<django.contrib.sitemaps.Sitemap.i18n\>\`duit léarscáil an láithreáin ghiniúint bunaithe ar an socrú: socrú: \`LANGUAGES.

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

- \<django.http.HttpRequest.get\_host\>:func: ~django.contrib.sites.shortcuts.get\_current\_site cuardóidh anois ar an suíomh reatha bunaithe ar:meth: request.get\_host () \`mura sainmhínítear an socrú:setting: \`SITE\_ID.
- Tá meas ag an réamhshocraithe:class: ~django.contrib.sites.models.site a cruthaíodh agus `migrate` á reáchtáil anois leis an socrú:setting: SITE\_ID (in ionad pk=1\` a úsáid i gcónaí).

#### Cache

- Tá an modh incr () \`\`den chúltaca \`\`django.core.cache.backends.locmem.locmemcache\` sábháilte le snáithe anois.

#### Cripteagrafaíocht

- Glacann paraiméadar `max_age` den modh: meth: django.core.signing.timeStampSigner.unsign anois le réad a:py:class: datetime.timedelta.

#### Cúltaca bunachar sonraí

- Ní bhaineann an cúltaca MySQL microsoicind a thuilleadh ó luachanna ```datetime` toisc go dtacaíonn MySQL 5.6.4 agus suas le soicindí codánacha ag brath ar dhearbhú an réimse dáta-ama (nuair a chuimsíonn ``DATETIME``` cruinneas codánach níos mó ná 0). Tacóidh colúin nua bunachar sonraí dáta-ama a cruthaíodh le Django 1.8 agus MySQL 5.6.4 agus suas le micreasoicind. Féach na:ref: Nótaí bunachar sonraí MySQL \<mysql-fractional-seconds\>\`le haghaidh tuilleadh sonraí.
- Ní chruthaíonn inneall MySQL innéacsanna follasacha d’eochracha eachtracha a thuilleadh agus inneall stórála InnoDB á úsáid, mar go gcruthaíonn MySQL iad go huathoibríoch cheana féin.
- Ní shainmhíníonn cúltaca Oracle an ghné ```connection_persists_old_columns` a thuilleadh mar ``True```. Ina áit sin, cuirfidh Oracle clásal bustaíochta taisce anois agus tú ag fáil tuairisc ar thábla.

#### Ríomhphost

- [Email backends](/ga/5.2/topics/email/#topic-email-backends) now support the context manager
  protocol for opening and closing connections.
- Tacaíonn an cúltaca ríomhphoist SMTP anois le fíordheimhniú `keyfile` agus `certfile` leis na socruithe:: EMAIL\_SSL\_CERTFILE agus:setting: EMAIL\_SSL\_KEYFILE.
- Tacaíonn an SMTP: Class: ~django.core.mail.backends.smtp.emailBackend anois leis an bparaiméadar `timeout` a shocrú leis an socrú: setting: EMAIL\_TIMEOUT.
- [`EmailMessage`](/ga/5.2/topics/email/#django.core.mail.EmailMessage) and `EmailMultiAlternatives` now
  support the `reply_to` parameter.

#### Stóráil Comhad

- \<django.core.files.storage.Storage.save\>:meth: Storage.get\_available\_name () \<django.core.files.storage.Storage.get\_available\_name\>\`agus:meth: \`Storage.save () glac argóint max\_length anois chun srianta uasmhéid ainm comhaid ar leibhéal stórála a chur i bhfeidhm. Déanfar ainmneacha comhaid a sháraíonn an argóint seo a ghearradh. Cuireann sé seo cosc ar earráid bunachar sonraí agus iarmhír uathúil á chur leis ainm fada comhaid atá ann cheana féin ar an stóráil. Féach an:ref: nóta díghabhála \<storage-max-length-update\>\`maidir leis an argóint seo a chur le do ranganna stórála saincheaptha.

#### Foirmeacha

- Déanann giuirléidí foirme tréithe anois le luach `True` nó False\` mar thréithe boolean HTML5.
- Ligeann an modh nua:meth: ~django.forms.form.has\_error () a sheiceáil an bhfuil earráid ar leith tarla.
- \<label\>Má shainmhínítear ~django.forms.form.required\_css\_class ar fhoirm, ansin beidh an rang seo i láthair ina tréithe ar na clibeanna do réimsí riachtanacha.
- Cuimsíonn rindreáil earráidí neamh-réimse i liostaí neamh-ordaithe (``` `<ul>) anois ``neamh-réimse ``` ina liosta ranganna chun iad a idirdhealú ó earráidí réimsiú-shonracha.
- [`Field`](/ga/5.2/ref/forms/fields/#django.forms.Field) now accepts a
  [`label_suffix`](/ga/5.2/ref/forms/fields/#django.forms.Field.label_suffix) argument, which will override the
  form's [`label_suffix`](/ga/5.2/ref/forms/api/#django.forms.Form.label_suffix). This enables customizing the
  suffix on a per-field basis — previously it wasn't possible to override
  a form's [`label_suffix`](/ga/5.2/ref/forms/api/#django.forms.Form.label_suffix) while using  shortcuts such
  as `{{ form.as_p }}` in templates.
- [`SelectDateWidget`](/ga/5.2/ref/forms/widgets/#django.forms.SelectDateWidget) now accepts an
  [`empty_label`](/ga/5.2/ref/forms/widgets/#django.forms.SelectDateWidget.empty_label) argument, which will
  override the top list choice label when [`DateField`](/ga/5.2/ref/forms/fields/#django.forms.DateField)
  is not required.
- Tar éis an:class: ~django.forms.imagefield a ghlanadh agus a bhailíochtú, beidh tréith breise `` `image `` ag an réad `UploadedFile` ina bhfuil an cás Pillow `Image` a úsáidtear chun seiceáil an raibh an comhad ina íomhá bailí. Déanfaidh sé nuashonrú freisin `uploadedfile.content_type` le cineál ábhair na híomhá mar a chinneann Pillow.
- Is féidir leat glaoch a rith anois a thugann athrá roghanna ar ais agus a: class: ~django.forms.choicefield á gcur isteach.

#### Tuairimí cineálacha

- Féadfaidh tuairimí cineálacha a úsáide:class: ~Django.Views.Generic.List.MultipleObjectMixin an t-ordú a chuirtear i bhfeidhm ar:attr: ~django.views.generic.list.multipleObjectMixin.QuerySet a shonrú trí shocrú: attr: ~django.views.generic.list.multipleObjectMixin.Ordering nó overriding\` :meth: ~django.views.generic.list.multipleObjectMixin.get\_Ordering () .
- Ceadaíonn an tréith nua:attr: SingleObjectMixin.query\_pk\_and\_slug \`\<django.views.generic.detail.SingleObjectMixin.query\_pk\_and\_slug\>iompar: meth: \`~django.views.generic.detail.singleObjectMixin.get\_object () a athrú ionas go ndéanfaidh sé a chuardach ag baint úsáide as an eochair phríomhúil agus an slug araon.
- Ní éilíonn an modh:Meth: ~django.views.generic.edit.formmixin.get\_form () \`\`form\_class\` a sholáthar níos mó. Mura soláthraítear réamhshocraithe `form_class` to:meth: ~django.views.generic.edit.formmixin.get\_form\_class () .
- Tacaíonn sealbhóirí ion:attr: ModelFormMixin.success\_url \<django.views.generic.edit.ModelFormMixin.success\_url\>\`anois leis an gcomhréir Python: py:Meth: \`str.format (). Tacaítear fós leis an gcomhréir oid \<foo\>hreachta `% () s` ach bainfear í i Django 1.10.

#### Idirnáisiúnú

- [`FORMAT_MODULE_PATH`](/ga/5.2/ref/settings/#std-setting-FORMAT_MODULE_PATH) can now be a list of strings representing
  module paths. This allows importing several format modules from different
  reusable apps. It also allows overriding those custom formats in your main
  Django project.

#### Logáil

- Tá a: meth: ~django.utils.log.adminemailHandler modh anois ag an rang:class: ~django.utils.log.adminemailHandler.send\_mail chun é a dhéanamh níos cairdiúla do fho-aicme.

#### Orduithe Bainistíochta

- Tá naisc bhunachar sonraí dúnta anois i gcónaí tar éis d'ordú bainistíochta ar a dtugtar ón líne ordaithe a chuid oibre a dhéanamh críochnaithe.
- Aimsítear orduithe ó fhormáidí malartacha pacáiste mar uibheacha anois freisin.
- Ligeann an rogha nua:option: dumpdata --output comhad a shonrú ina bhfuil na sonraí sraitheach scríofa air.
- Ceadaíonn na roghanna nua:option: makemessages --exclude agus:option: compilemessages --exclude a eisiamh ó phróiseáil.
- [`compilemessages`](/ga/5.2/ref/django-admin/#django-admin-compilemessages) now has a `--use-fuzzy` or `-f` option which
  includes fuzzy translations into compiled files.
- Déanann an roghna:option: loaddata --ignorenonexistent neamhaird anois ar shonraí do mhúnlaí nach bhfuil ann a thuilleadh.
- : djadmin: Úsáideann runserver snáitheanna daemon anois le haghaidh athluchtú níos tapa.
- [`inspectdb`](/ga/5.2/ref/django-admin/#django-admin-inspectdb) now outputs `Meta.unique_together`. It is also able to
  introspect [`AutoField`](/ga/5.2/ref/models/fields/#django.db.models.AutoField) for MySQL and PostgreSQL
  databases.
- Agus orduithe bainistíochta á ghlaoch agat le roghanna ag baint úsáid:func: ~django.core.management.call\_command, is féidir leis an ainm rogha líne ordaithe a mheaitseáil (gan na sraitheanna tosaigh) nó ainm athróg ceann scríbe an rogha deiridh, is é an rogha a fhaigheann an t-ordú anois an t-ainm dest\` a shonraítear sa sainmhíniú rogha ordaithe (chomh fada agus a úsáideann an t-ordú an:mod: modúl parse).
- Tacaíonn an t-ordú: DJadmin: dbshell anois le socrú údaráis roghnach deimhnithe SSL MySQL (`- ssl-ca`).
- Ceadaíonn an nua:option: makemigrations --name ainm saincheaptha a thabhairt don imirce/na himirce in ionad ceann a ghintear.
- Cuireann an t-ordú: Djadmin: loaddata cosc anois ar luchtú daingneáin arís agus arís eile. Má tá dúbailtí nó cosán eolaire daingneáin réamhshocraithe (`app_name/fixtures`) i FIXTURE\_DIRS, ardaítear eisceacht.
- Ceadaíonn an rogha nua `makemigrations --exit` imeacht le cód earráide mura gcruthaítear aon imirce.
- Ligeann an t-ordú nua:djadmin: showmigrations gach imirce agus a gcuid spleáchais a liostáil i dtionscadal.

#### Meán-earraí

- \<django.middleware.common.CommonMiddleware.response\_redirect\_class\>Ceadaíonn an tréith: Attr: CommonMiddleware.Response\_Redirect\_class duit na hathreoruithe arna eisiúint ag an middleware a shaincheapadh.
- Logálfar teachtaireacht dífhabhtaithe chuig an logger `django.request` nuair a ardaíonn middleware a:exc: ~django.core.exceptions.middlewareNotUsed eisceacht in:setting: DEBUG.

#### Imirce

- Is féidir leis an oibríocht: Class: ~django.db.migrations.operations.runsql paraiméadair a chuirtear chuig na ráitis SQL a láimhseáil anois.
- \<data-migrations\>Is féidir anois imirce a bheith agat (is dóichí: ref: imirce sonraí ) d'iarratais gan samhlacha.
- Is féidir le himirce anois:ref: bainisteoirí samhlacha a shraithu \<using-managers-in-migrations\>'mar chuid den stát samhail.
- \<migrations-removing-model-fields\>A: Ref: Cuireadh meicníocht chineálach chun díghníomhú réimsí samhlacha a láimhseáil leis.
- \<django.db.migrations.operations.RunSQL.noop\>Cuireadh modh/tréith aicme: Meth: RunPython.noop () \<django.db.migrations.operations.RunPython.noop\>\`agus:attr: \`Runsql.noop chun oibríochtaí RunPython\` agus Runsql\` a dhéanamh inchúlghabháilte.
- Glaonn na hoibríochtaí imirce:class: ~django.db.migrations.operations.runpython agus:class: ~django.db.migrations.operations.runsql anois ar an modh: allow\_migrate de ródairí bunachar sonraí. Is féidir leis an ródaire na hargóintí `app_label` agus hints\` nua-tugadh a úsáid chun cinneadh ródaithe a dhéanamh. \<deprecated-signature-of-allow-migrate\>Chun leas a bhaint as an ngné seo ní mór duit an ródaire a nuashonrú go dtí an síniú nua allow\_migrate\`, féach an ranna:ref: diprecation le haghaidh tuilleadh sonraí.

#### Samhla

- Logálann Django anois 9000 fiosrúchán ar a mhéad i connections.queries\`, d'fhonn úsáid iomarcach cuimhne a chosc i bpróisis fhada i mód dífhabhtaithe.
- \<django.db.models.Options.default\_related\_name\>Tá rogha samhail `Meta` ann anois chun a: attr: ainm gaolmhar réamhshocraithe a shainiú do gach réimse gaolmhar de mhúnla.
- Ní thacaítear go hoifigiúil le samhlacha piceála agus ceisteanna cearraí ar fud leaganacha éagsúla de Django (b'fhéidir go n-oibreoidh sé, ach níl aon ráthaíocht ann). Cuirtear athróg breise a shonraíonn an leagan reatha Django anois le staid picilte na samhlacha agus na gcearaiseanna, agus ardaíonn Django `RuntimeWarning` nuair a dhéantar na rudaí seo neamhphicilte i leagan difriúil ná an ceann inar piceáladh iad.
- \<django.db.models.Model.from\_db () \>Cuireadh leis: Meth: Model.from\_DB (a úsáideann Django aon uair a luchtaítear rudaí ag baint úsáide as an ORM. Ligeann an modh iompar luchtaithe samhail a shaincheapadh.
- Ligeann ```extra (select= {...}) `duit anois seicheamh liteartha ``%s``` éalú ag baint úsáide as `%%s`.
- [Custom Lookups](/ga/5.2/howto/custom-lookups/) can now be registered using
  a decorator pattern.
- Ceadaíonn an tréith nua:attr: Transform.bilateral \<django.db.models.Transform.bilateral\>\`claochlú déthaobhacha a chruthú. Cuirtear na claochlú seo i bhfeidhm ar \`\`lhs\` agus rhs\` araon nuair a úsáidtear iad i léiriú cuardaigh, ag soláthar deiseanna le haghaidh cuardaigh níos sofaisticiúla.
- Éalaítear carachtair speisialta SQL (,%, \_) i gceart anois nuair a úsáidtear cuardach patrún (m.sh. `contains`, ```startswith`, srl.) le abairt ``F () ``mar an taobh deise. Sna cásanna sin, déanann an bunachar sonraí an éalú, rud a d'fhéadfadh ceisteanna beagán casta a bheith mar thoradh ar ghlaonna feidhme ``REPLACE``` neadaithe.
- \<django.db.models.Model.refresh\_from\_db\>Is féidir leat cásanna samhail a athnuachan anois trí:meth: Model.fresh\_from\_db () a úsáid.
- \<django.db.models.Model.get\_deferred\_fields\>Is féidir leat an tacar réimsí iarchurtha a fháil anois do mhúnla ag baint úsáidea:meth: Model.get\_deferred\_fields () .
- Úsáidtear réimsí samhail `réamhshocraithe` anois nuair a shocraítear príomhréimsí eochair go `None`.

#### Comharthaí

- \<django.dispatch.Signal.send\_robust\>Tá eisceachtaí ó na tupáin `(glacadóir, eisceacht)` ar ais ag: meth: signal.send\_robust () \`tá a rianairiú ceangailte anois mar thréith \`\`\_\_traceback\_\_\`.
- Cuireadh an argóint timpeallacht , ina bhfuil struchtúr timpeallachta WSGI ón iarraidh, leis an gcomhartha: data: ~django.core.signals.request\_started.
- Is féidir leat an comhartha: func: ~django.test.signals.setting\_changed a iompórtáil anois ó `django.core.signals` chun luchtú `django.test` a sheachaint i gcásanna neamh-tástála. Ní dhéanann Django é sin féin a thuilleadh.

#### Creat Seiceála Córais

- [`register`](/ga/5.2/topics/checks/#django.core.checks.register) can now be used as a function.

#### Teimpléid

- [`urlize`](/ga/5.2/ref/templates/builtins/#std-templatefilter-urlize) now supports domain-only links that include characters after
  the top-level domain (e.g. `djangoproject.com/` and
  `djangoproject.com/download/`).
- [`urlize`](/ga/5.2/ref/templates/builtins/#std-templatefilter-urlize) doesn't treat exclamation marks at the end of a domain or
  its query string as part of the URL (the URL in e.g. `'djangoproject.com!`
  is `djangoproject.com`)
- Cuireadh a:class leis: aicme LocMem.Loader \<django.template.loaders.locmem.Loader\>\`a luchtaíonn teimpléid Django ó fhoclóir Python.
- Is féidir leis an gclibe:ttag: now a aschur a stóráil anois in athróg comhthéacs leis an ggnáthchomhréir: `{% now 'j n Y' mar varname%}`.

#### Iarrataí agus Freagraí

- Tá meas ag `WSGIrequest` anois cosáin ag tosú le `//`.
- \<django.http.HttpRequest.build\_absolute\_uri\>Láimhseálann an modh:Meth: HttpRequest.build\_absolute\_uri () \`cosáin anois ag tosú le \`//\`\` i gceart.
- Más rud é: Setting: DEBUG `True` agus ardaíonn iarratas a:exc: ~Django.Core.Exceptions.SuspiciousOperation, tabharfar an freagra le leathanach earráide mionsonraithe.
- Tá an argóint `query_string` de:class: ~django.http.QueryDict roghnach anois, ag réamhshocrú go `None`, mar sin is féidir QueryDict\` bán a chur isteach anois le ```QueryDict () ``in ionad ``QueryDict (None)``` nó QueryDict (“) \`.
- Is iad tréithe `GET` agus POST \`\`\` réad an:class: ~django.http.httpRequest anois:class: ~django.http.querydicts seachas foclóirí, agus is `ValuMultiedict` an tréith FILES\` anois. Tugann sé seo an rang seo ar aon dul leis an doiciméadú agus le `WSGIrequest`.
- \<django.http.HttpResponse.charset\>Cuireadh an tréith: Attr: HttpResponse.charSet leis.
- Leanann `wsgirequestHandler` RFC anois ag tiontú URI go IRI, ag baint úsáide as uri\_to\_iri () .
- Éalaíonn an modh:Meth: HttpRequest.get\_full\_path () \<django.http.HttpRequest.get\_full\_path\>\`carachtair neamhshábháilte anois ón gcuid cosáin d'Aitheantóir Acmhainní Aonfhoirmeach (URI) i gceart.
- [`HttpResponse`](/ga/5.2/ref/request-response/#django.http.HttpResponse) now implements a few additional methods
  like [`getvalue()`](/ga/5.2/ref/request-response/#django.http.HttpResponse.getvalue) so that instances can be used
  as stream objects.
- Ceadaíonn an modh nua:meth: HttpResponse.setDefault () \<django.http.HttpResponse.setdefault\>\`ceanntásc a shocrú mura bhfuil sé socraithe cheana féin.
- Is féidir leat an new:class: ~django.http.fileResponse a úsáid chun comhaid a shruthlú.
- Tacaíonn an maisitheoir: Func: ~django.views.decorators.http.condition le haghaidh próiseála amharc coinníollach anois leis an gceannteideal `if-unmodified-since`.

#### Tástálacha

- Cuireadh na modhanna: Class: RequestFactory.trace () \`agus \<django.test.RequestFactory\>:class: \`Client.trace () i bhfeidhm, rud a ligeann duit iarratais TRACE\` \<django.test.Client.trace\>\`a chruthú i do thástálacha.
- Cuireadh an argóint `count` leis la:meth: ~django.test.simpletestCase.assertTemplateUsed. Ligeann sé seo duit a dhearbhú gur rinneadh teimpléad ar fáil líon ar leith uaireanta.
- Ligeann an dearbhú nua:meth: ~django.test.simpletestcase.assertjsonNoteQual duit tástáil nach bhfuil dhá bhrúin JSON cothrom.
- \<test --debug-sql\>Cuireadh roghanna leis an \<test --keepdb\>ordú:djadmin: tást chun an bunachar sonraí tástála a chaomhnú (:option: --keepdb \`), chun na cásanna tástála a reáchtáil in ord droim (:option: \`--reverse), agus logáil SQL a chumasú le haghaidh tástálacha \<test --reverse\>a theip (:option: --debug-sql ).
- Cuireadh an tréith: attr: ~django.test.response.resolver\_match le freagraí cliant a thástáil.
- Cuireadh roinnt socruithe leis a cheadaíonn saincheapadh paraiméadair spáis tástála do Oracle: :setting: DATAFILE, :setting: DATAFILE\_TMP, :setting: DATAFILE\_MAXSIZE agus:setting: DATAFILE\_TMP\_MAXSIZE.
- Is féidir leis an maisitheoir: Func: ~django.test.override\_settings dul i bhfeidhm anois ar an mháistir-ródaire in:setting: DATABASE\_ROUTERS.
- Cuireadh tacaíocht cliant tástála le haghaidh uaslódála comhad le rudaí cosúil le comhad.
- Úsáidtear taisce roinnte anois agus tú ag tástáil le bunachar sonraí in-chuimhne SQLite agus Python 3.4+ agus SQLite 3.7.13+ á úsáid agat. Ligeann sé seo an bunachar sonraí a roinnt idir snáithe.

#### Bailíochtóirí

- [`URLValidator`](/ga/5.2/ref/validators/#django.core.validators.URLValidator) now supports IPv6 addresses,
  Unicode domains, and URLs containing authentication data.

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

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

### Reáchtáiltear oibríochtaí réad gaolmhara in idirbheart

Rith roinnt oibríochtaí ar rudaí gaolmhara mar: meth: ~Django.db.Models.Fields.Related.RelatedManager.add () \`nó sannadh díreach ceisteanna iolracha modhnaithe sonraí gan iad a fhilleadh in idirbhearta. Chun an riosca éillithe sonraí a laghdú, déanann gach modh modhnú sonraí a théann i bhfeidhm ar rudaí gaolmhara iolracha (ie \`add () \`, remove ()\`, clear () , agus sannadh díreach) anois a gcuid ceisteanna modhnaithe sonraí ó idirbheart, ar choinníoll go dtacaíonn do bhunachar sonraí.

Tá fo-iarmhairt neamh-chomhoiriúnach amháin ag baint leis seo, déantar láimhseálaithe comharthaí a spreagtar ó na modhanna seo a fhorghníomhú anois laistigh d'idirbheart an mhodha agus cuirfidh aon eisceacht i láimhseálaí comhartha cosc ​​ar an oibríocht iomlán.

### Ardaíonn earráid neamhshábháilte a shannadh do chaidrimh

> **Note**
>
> Chun úsáid samhlacha i gcuimhne a cheadú níos éasca, cuireadh an t-athrú seo ar ais i Django 1.8.4 agus cuireadh seiceáil ina ionad le linn model.save () . Mar shampla:
>
> ```pycon
> >>> book = Book.objects.create(name="Django")
> >>> book.author = Author(name="John")
> >>> book.save()
> Traceback (most recent call last):
> ...
> ValueError: save() prohibited to prevent data loss due to unsaved related object 'author'.
> ```
>
> Baineadh seiceáil den chineál céanna ar shannadh chun caidreamh duine le duine a aisiompú i Django 1.8.5.

Ardaíonn rudaí neamhshábháilte do a:class: ~django.db.models.foreignKey, :class: ~django.contrib.contentTypes.Fields.GenericForeignKey, agus:class: ~django.db.models.onetoonefield anois: exc: ValueError.

Roimhe seo, déanfaí neamhaird go ciúin ar shannadh réad neamhshábháilte. Mar shampla:

```pycon
>>> book = Book.objects.create(name="Django")
>>> book.author = Author(name="John")
>>> book.author.save()
>>> book.save()

>>> Book.objects.get(name="Django")
>>> book.author
>>>
```

Anois, ardófar earráid chun caillteanas sonraí a chosc:

```pycon
>>> book.author = Author(name="john")
Traceback (most recent call last):
...
ValueError: Cannot assign "<Author: John>": "Author" instance isn't saved in the database.
```

Más gá duit cásanna neamhshábháilte a cheadú (an sean-iompar) agus mura bhfuil imní ort faoin bhféidearthacht caillteanais sonraí (m.sh. ní shábhálann tú na rudaí sa bhunachar sonraí riamh), is féidir leat an seiceáil seo a dhíchumasú tríd an tréith `ForeignKey.ALLOW_UNSAVED_INSTANCE_ASSIGNMENT` a úsáid. (Baineadh an tréith seo i 1.8.4 toisc nach bhfuil sé ábhartha a thuilleadh.)

### Orduithe bainistíochta nach nglacann ach argóintí seasaimh

Má tá ordú bainistíochta saincheaptha scríofa agat nach nglacann ach le hargóintí seasaimh agus nár shonraigh tú an t-athróg ordaithe args, b'fhéidir go bhfaighidh tú earráid mar Earráid: argóintí neamhaitheanta:... , mar tá parsáil athraitheach bunaithe anois ar:py:mod: argparse nach nglacann le hargóintí seasaimh. Is féidir leat d'ordú a dhéanamh comhoiriúnach ar ais trí athróg aicme args\` a shocrú. Mar sin féin, mura gá duit comhoiriúnacht a choinneáil le leaganacha níos sine Django, is fearr an modh nua: meth: ~django.core.management.basecommand.add\_arguments a chur i bhfeidhm mar a thuairiscítear in:doc: /howto/custom-management-commands.

### Argóintí ordaithe bainistíochta tástála saincheaptha trí reathóir

Tá athrú tagtha ar an modh chun argóintí saincheaptha a chur leis an ordú bainistíochta tástála tríd an riteoir tástála. Roimhe seo, d'fhéadfá athróg aicme `option_list` a sholáthar ar an reathróir tástála chun tuilleadh argóintí a chur leis (à la: py:mod: optparse). Anois chun an t-iompar céanna a chur i bhfeidhm, caithfidh tú modh aicme ```add_arguments (cls, parser) ``a chruthú ar an reathnóir tástála agus glaoch ar `parser.add_argument``` chun aon argóintí saincheaptha a chur leis, mar tá parser anois:py:class: ArgParse.ArgumentParser sampla.

### Cinntíonn seiceáil mhúnla go bhfuil ainmneacha colún a ghintear uathoibríoch

Féadann ainm réimse atá níos faide ná fad ainm an cholúin a thacaíonn bunachar sonraí fadhbanna a chruthú. Mar shampla, le MySQL gheobhaidh tú eisceacht ag iarraidh an colún a chruthú, agus le PostgreSQL déanann an bunachar sonraí ainm an cholúin a ghearradh (b'fhéidir go bhfeicfidh tú rabhadh sna logaí PostgreSQL).

Tugadh seiceáil samhail isteach chun úsáideoirí a chur ar an eolas níos fearr faoin gcás seo sula gcruthaítear táblaí bunachar sonraí iarbhír.

Má tá samhail ann cheana agat inar cosúil gur dearfach bréagach é an seiceáil seo, mar shampla ar PostgreSQL áit a raibh an t-ainm á ghearradh cheana féin, ní gá ach húsáid:attr: ~django.db.models.field.db\_column chun an t-ainm atá á úsáid a shonrú.

Baineann an seiceáil freisin leis na colúin a ghintear i samhail intuigthe ManyTomanyField.through . Má ritheann tú i gceist ann, bain úsáid as: attr: ~django.db.models.manyToManyField.through chun samhail follasach a chruthú agus ansin sonraithe:attr: ~django.db.models.field.db\_column ar a cholún (anna) de réir mar is gá.

### Seiceálann cuardaigh caidrimh ceisteanna anois cineálacha

Seiceálann fiosrú ar chuardach samhlacha anois an bhfuil an réad a rith den chineál ceart agus ardaíonn sé a:exc: ValueError mura bhfuil. Roimhe seo, ní raibh cúram ag Django an raibh an réad den chineál ceart; d'úsáid sé ach tréith réimse gaolmhar an réada (m.sh. id \`) don chuardach. Anois, ardaítear earráid chun cuardach mícheart a chosc:

```pycon
>>> book = Book.objects.create(name="Django")
>>> book = Book.objects.filter(author=book)
Traceback (most recent call last):
...
ValueError: Cannot query "<Book: Django>": Must be "Author" instance.
```

### Seiceálann select\_related () réimsí ar leith anois

Bailíonn select\_related () anois go bhfuil na réimsí a thugtar ann i ndáiríre. Roimhe seo, rinneadh neamhaird go ciúin ar réimsí gan ann. Anois, ardaítear earráid:

```pycon
>>> book = Book.objects.select_related("nonexistent_field")
Traceback (most recent call last):
...
FieldError: Invalid field name(s) given in select_related: 'nonexistent_field'
```

Cinntíonn an bailíochtú freisin go bhfuil an réimse ar leith gaolmhar:

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

### Mhéadaigh réamhshocraithe `emailfield.MAX_LENGTH` go 254

Ní raibh an sean-charachtar réamhshocraithe 75 ```max_length ``in ann gach seoladh ríomhphoist féideartha a chomhlíonadh RFC3696/5321-a a stóráil. D'fhonn gach seoladh ríomhphoist bailí féideartha a stóráil, tá an ``max_length ``méadaithe go 254 carachtar. Beidh ort imirce bunachar sonraí a ghiniúint agus a chur i bhfeidhm do na samhlacha atá buailte (nó ``max_length = 75``` a chur leis más mian leat an fad a choinneáil ar do réimsí reatha). Tá imirce le haghaidh: attr: django.contrib.auth.models.user.email san áireamh.

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

Sroichtear deireadh na dtréimhsí tacaíochta suas srutha i mí Iúil 2014 do PostgreSQL 8.4. Mar thoradh air sin, socraíonn Django 1.8 9.0 mar an leagan íosta PostgreSQL a thacaíonn sé go hoifigiúil.

Áirítear leis seo freisin tacaíocht titim do PostGIS 1.3 agus 1.4 toisc nach dtacaítear leis na leaganacha seo ar leaganacha de PostgreSQL níos déanaí ná 8.4.

Éilíonn Django anois úsáid Psycopg2 leagan 2.4.5 nó níos airde (nó 2.5+ más mian leat úsáid: mod: django.contrib.postgres).

### Tacaíocht do leaganacha MySQL níos sine ná 5.5

Sroichtear deireadh na dtréimhsí tacaíochta suas srutha i mí Eanáir 2012 do MySQL 5.0 agus na Nollag 2013 do MySQL 5.1. Mar thoradh air sin, socraíonn Django 1.8 5.5 mar an leagan íosta MySQL a thacaíonn sé go hoifigiúil.

### Tacaíocht do leaganacha Oracle níos sine ná 11.1

Sroichtear deireadh na dtréimhsí tacaíochta suas srutha i mí Iúil 2010 do Oracle 9.2, Eanáir 2012 do Oracle 10.1, agus Iúil 2013 le haghaidh Oracle 10.2. Mar thoradh air sin, socraíonn Django 1.8 11.1 mar an leagan íosta Oracle a thacaíonn sé go hoifigiúil.

### Pribhléidí sonracha a úsáidtear in ionad róil le haghaidh tástálacha

Thug leaganacha níos luaithe de Django na róil CONNECT agus RESOURCE don úsáideoir tástála ar Oracle. Tá na róil seo imithe, mar sin úsáideann Django 1.8 na pribhléidí bunúsacha sonracha ina ionad sin. Athraíonn sé seo na pribhléidí a theastaíonn ón bpríomh-úsáideoir le haghaidh tástálacha a reáchtáil (mura bhfuil an tionscadal cumraithe chun úsáideoir tástála a \<oracle-notes\>Tá na pribhléidí cruinne a theastaíonn anois mionsonraithe in:ref: Nótaí Oracle .

### Ceadaíonn `Abstractuser.Last_Login` luachanna null

\<django.contrib.auth.models.User.last\_login\>Ceadaíonn an réimse: Attr: AbstractUSER.LAST\_LOGIN luachanna neall anois. Roimhe seo, rinne sé réamhshocraithe go dtí an t-am nuair a cruthaíodh an t-úsáideoir a bhí míthreorach mura logáil isteach an t-úsáideoir riamh. Má tá an t-úsáideoir réamhshocraithe á úsáid agat (:class: django.contrib.auth.models.user), reáchtáil an imirce bunachar sonraí atá san áireamh i `contrib.auth`.

Má tá samhail úsáideora saincheaptha á úsáid agat a fhaigheann oidhreacht ó AbstractUser, beidh ort rith: djadmin: makemigrations agus imirce a ghiniúint do d'aip ina bhfuil an tsamhail sin. Chomh maith leis sin, más mian leat `last_login` a shocrú go `NULL` d'úsáideoirí nach bhfuil logáil isteach orthu, is féidir leat an cheist seo a reáchtáil:

```
from django.db import models
from django.contrib.auth import get_user_model
from django.contrib.auth.models import AbstractBaseUser

UserModel = get_user_model()
if issubclass(UserModel, AbstractBaseUser):
    UserModel._default_manager.filter(last_login=models.F("date_joined")).update(
        last_login=None
    )
```

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

- Tá tacaíocht do GEOS 3.1 agus GDAL 1.6 titim.
- Tá tacaíocht do SpatiaLite \<2.4 titim.
- Athraíodh cuardaigh atá sonrach le GIS chun an API: class: Django.db.Models.lookup a úsáid.
- Athraíodh an léiriú réamhshocraithe `str` o:class: ~django.contrib.gis.geos.geosgeometry rudaí ó WKT go formáid EWKT (lena n-áirítear an SRID). Toisc go n-úsáidtear an léiriú seo sa chreat sraitheach, ciallaíonn sé sin go mbeidh luach SRID na rudaí geoiméadrachta anois ag aschur dumpdata.

### Tosaíocht na bpróiseálaithe comhthéacs do `TemplateResponse` a thugtar i gcomhréir le `render`

Tá an tógálaí: Class: ~Django.Template.Response.TemplateResponse deartha le bheith ina athsholáthar titim isteach don fheidhme:func: ~django.shortcuts.render. Mar sin féin, bhí neamhchomhoiriúnacht beag aige, sa mhéid go bhféadfadh sonraí comhthéacs ón bhfoclóir a rith i gcomhthéacs a scáthú le sonraí comhthéacs a chuir ar ais ó phróiseálaithe comhthéacs, ach maidir le `render` bhí sé ar an mbealach eile. Ba fabht a bhí anseo, agus tá iompar `render` níos oiriúnaí, ós rud é go gceadaíonn sé na próiseálaithe comhthéacs atá sainmhínithe go domhanda a shárú go háitiúil sa radharc. Má bhí tú ag brath ar an bhfíric go bhféadfaí sonraí comhthéacs i “TemplateResponse” a shárú ag baint úsáide as próiseálaí comhthéacs, beidh ort do chód a athrú.

### Sárú `SetupClass`/`TearDownClass` i gcásanna tástála

Gníomhaíonn na maisióirí: func: ~django.test.override\_settings agus:func: ~django.test.modify\_settings anois ag leibhéal an ranga nuair a úsáidtear iad mar mhaisitheoirí ranga. Mar thoradh air sin, nuair a bhíonn setupClass () \`\`nó \`teardownClass ()\` a shárú, ba chóir cur i bhfeidhm `super` a ghlaoch i gcónaí.

### Baineadh `django.contrib.formtools`

Bogadh an aip contrib formtools chuig pacáiste ar leithligh agus rinneadh na leathanaigh doiciméadaithe ábhartha a nuashonrú nó a bhaint.

Tá an pacáiste nua ar fáil ar GitHub \_ agus ar PyPI.

### Athluchtú nasc bunachar sonraí idir tástálacha

Dúnaigh Django naisc bunachar sonraí roimhe seo idir gach tástáil laistigh de `cás tástála`. Ní hamhlaigh sé seo a thuilleadh mar a fhilleann Django anois an `cás tástála` iomlán laistigh d'idirbheart. Má bhí cuid de do thástálacha ag brath ar an sean-iompar, ba cheart go mbeadh oidhreacht agat ó TransactionTestCase\` ina ionad sin.

### Glanadh an spás ainmneacha `django.template`

Má bhí tú ag brath ar APIs príobháideacha atá nochtaithe sa mhodúl `django.template`, b'fhéidir go mbeidh ort iad a iompórtáil ó django.template.base\` ina ionad.

Chomh maith leis sin baineadh APIs príobháideacha ```django.template.base.compile_string () ``, `django.template.loader.find_template ()```, agus django.template.loader.get\_template\_from\_string () .

### Tréith samhail ar chaidreamh samhail phríobháideach

I leaganacha níos luaithe de Django, ar mhúnla le príomhchaidreamh eachtrach ar ais (mar shampla), samhail. Chuir \_meta.get\_all\_related\_objects () \`\`an caidreamh ar ais mar \`\`Django.db.Models.Related.RelatedObject\` leis an tréith `model` atá leagtha amach le foinse an chaidrimh. Anois, filleann an modh seo an caidreamh mar ```Django.db.Models.Fields.Related.manyTooneRel ``(baineadh API príobháideach ``RelateDObject```), agus socraítear an tréith `model` \`\` \`\` \`\` \`\` \`\` \`\` \`\` \`\` Tá an tsamhail foinse inrochtana ar an tréith `related_model` ina ionad.

Smaoinigh ar an sampla seo ón rang teagaisc i Django 1.8:

```pycon
>>> p = Poll.objects.get(pk=1)
>>> p._meta.get_all_related_objects()
[<ManyToOneRel: polls.choice>]
>>> p._meta.get_all_related_objects()[0].model
<class 'polls.models.Poll'>
>>> p._meta.get_all_related_objects()[0].related_model
<class 'polls.models.Choice'>
```

agus déan comparáid idir é leis an iompar ar leaganacha níos sine:

```pycon
>>> p._meta.get_all_related_objects()
[<RelatedObject: polls:choice related to poll>]
>>> p._meta.get_all_related_objects()[0].model
<class 'polls.models.Choice'>
```

Chun rochtain a fháil ar an tsamhail fhoinse, is féidir leat patrún mar seo a úsáid chun cód a scríobh a oibreoidh le leaganacha Django 1.8 agus níos sine araon:

```
for relation in opts.get_all_related_objects():
    to_model = getattr(relation, "related_model", relation.model)
```

Tabhair faoi deara freisin go bhfuil get\_all\_related\_objects () scothaithe i 1.8.

### API cúltaca bunachar sonraí

Déantar na hathruithe seo a leanas ar API inneall an bhunachair shonraí a dhoiciméadú chun cabhrú leo siúd atá ag scríobh inneall tríú páirtí a gcód a nuashonrú:

- Tá ranganna `BasedatabaSexxx` aistríodh chuig `django.db.backends.base`. Iompórtáil iad ó na háiteanna nua le do thoil:

  ```
  from django.db.backends.base.base import BaseDatabaseWrapper
  from django.db.backends.base.client import BaseDatabaseClient
  from django.db.backends.base.creation import BaseDatabaseCreation
  from django.db.backends.base.features import BaseDatabaseFeatures
  from django.db.backends.base.introspection import BaseDatabaseIntrospection
  from django.db.backends.base.introspection import FieldInfo, TableInfo
  from django.db.backends.base.operations import BaseDatabaseOperations
  from django.db.backends.base.schema import BaseDatabaseSchemaEditor
  from django.db.backends.base.validation import BaseDatabaseValidation
  ```
- Tá na tréithe `data_types`, data\_types\_suffix\`, agus `data_type_check_restricints` tar éis bogadh ón rang `DatabaseCreation` go DatabaseWrapper\`.
- Glacann an modh ```SqlCompiler.as_sql () ``paraiméadar ``subcheiste``` anois (:ticket: 24164).
- Ní thógann an modh BaseDatabaseOperations.Date\_Interval\_SQL () anois ach paraiméadar \`\`timedel.

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

- Ní ghlacann `adminsite` argóint `app_name` a thuilleadh agus baineadh a tréith `app_name`. Is é “admin” ainm an fheidhmchláir i gcónaí (seachas ainm na sampla is féidir leat a shaincheapadh fós ag baint úsáide as adminSite (ainm =”...”) .
- Tógann an modh ```ModelAdmin.get_Object () `(API príobháideach) anois tríú argóint darb ainm ``from_field``` d'fhonn a shonrú cén réimse ba chóir a mheaitseáil leis an object\_id\` a sholáthraítear.
- Tógann an modh: Meth: ModelAdmin.response\_delete () \<django.contrib.admin.ModelAdmin.response\_delete\>\`an dara argóint darb ainm \`\`obj\_id\` arb é an t-aitheantóir sraitheach a úsáidtear chun an réad a aisghabháil sula scriosadh é.

### Réamhshocraithe uathoibríoch feidhmeanna i `django.template.defaultfilters`

D'fhonn scagairí teimpléad ionsuite a dhéanamh a aschuireann HTML “sábháilte de réir réamhshocraithe” agus iad ag glaoch i gcód Python, athraíodh na feidhmeanna seo a leanas i django.template.defaultfilters\` chun a luach ionchuir a éalú go huathoibríoch:

- `` `Bhreastala ``
- `linebreaksbr`
- `linebreaks_filter`
- `Uimhreacha líne`
- `liosta_neamh-ordúnaí`
- `Urlize`
- `urlizetrunc`

Is féidir leat filleadh ar an sean-iompar trí autoescape=false a shonrú má tá ábhar iontaofa á rith agat. Níl aon éifeacht ag an athrú seo agus na scagairí comhfhreagracha á n-úsáid i dteimpléid.

### Ilghnéitheach

- Is tréith léite amháin é `connections.queries` anois.
- Ní mheastar go bhfuil naisc bunachar sonraí comhionann ach amháin má tá siad an réad céanna. Níl siad inúsáidte níos mó.
- [`GZipMiddleware`](/ga/5.2/ref/middleware/#django.middleware.gzip.GZipMiddleware) used to disable compression
  for some content types when the request is from Internet Explorer, in order
  to work around a bug in IE6 and earlier. This behavior could affect
  performance on IE7 and later. It was removed.
- Ní chuireann `URLField.to_python` slasc rianaithe le URLanna gan bhealach a thuilleadh.
- Filleann an scagaire teimpléad:TFilter: Length `0` anois le haghaidh athróg neamhshainithe, seachas teaghrán folamh.
- Athraíodh ````ForeignKey.default_error_message ['neamhbhailí'] ``ó ```% (model) s sampla le pk% (pk) r níl ann. '``go```% (model) s sampla le% (field) s% (value) r níl ann.'```` Má tá an teachtaireacht seo á úsáid agat i do chód féin, nuashonraigh liosta interpolach le do thoil paraiméadair. Go hinmheánach, leanfaidh Django ar aghaidh ag soláthar an paraiméadar `pk` i params\` le haghaidh comhoiriúnacht ar ais.
- `````UserCreationForm.error_messages ['duplicate_username'] ``ní úsáidtear a thuilleadh. Más mian leat an teachtaireacht earráide sin a shaincheapadh, :ref: `athraigh é ar an bhfoirm `ag baint <modelforms-overriding-default-fields>úsáide as an eochair ``''unique'` i `Meta.error_Messages ['username'] ``nó, má tá réimse foirme saincheaptha agat le haghaidh ````username'`````, úsáid an eochair 'unique' in:attr: ~django.forms.field.Argóint error\_messages.
- Éilíonn an bloc `usertools` sa teimpléad `base.html` de:mod: django.contrib.admin anois an athróg comhthéacs `has_permission` a shocrú. \<django.contrib.admin.AdminSite.each\_context\>Má tá aon tuairimí riaracháin saincheaptha agat a úsá \<django.contrib.admin.AdminSite.has\_permission\>ideann an teimpléad seo, nuashonraigh iad chun pas: meth: adminsite.has\_permit () \`mar luach an athróg nua seo nó go simplí:meth: \`adminsite.Each\_context (iarratas) sa chomhthéacs.
- Rinneadh athruithe inmheánacha ar an giuirléid:: class: ~django.forms.clearaableFileInput chun níos mó saincheaptha a cheadú. Baineadh an tréith `url_markup_template` neamhdhoiciméadaithe i bhfabhar `template_with_initial`.
- Le haghaidh comhsheasmhachta le mór-dhíoltóirí eile, tá Luain anois mar an chéad lá den tseachtain ag an áitiúil `En_Gb`.
- Baineadh soicindí ó aon áiteanna a raibh siad i TIME\_FORMAT\`, DATETIME\_FORMAT\`, nó `SHORT_DATETIME_FORMAT`.
- Tá méadú tagtha ar mhéid uasta réamhshocraithe spás tábla tástála Oracle ó 300M (nó 200M, roimh 1.7.2) go 500M.
- Filleann ```reverse () ``agus ``reverse_lazy ()``` teaghráin Unicode anois in ionad bytestrings.
- Baineadh an shim `Cacheclass` ó gach cúltaca taisce. Cuireadh na hainmneacha seo ar fáil le haghaidh comhoiriúnacht ar ais le Django 1.3. Má tá tú fós á úsáid agat, nuashonraigh do thionscadal le do thoil chun an fíor-ainm ranga atá le fáil san eochair:setting: BACKEND \`den socrú:setting: \`CACH \<CACHES-BACKEND\>ES a úsáid.
- De réir réamhshocraithe, :func: ~django.core.management.call\_command scipeánann an creat seiceála anois i gcónaí (mura rachaidh tú air skip\_checks=false\`).
- \<278\>Agus tú ag athrá thar línte, úsáideann: class: ~django.core.files.file anois: pep: línte nua uilíoch \`. Aithnítear na nithe seo a leanas mar chríochnú líne: coinbhinsiún deireadh líne Unix \`\`\\ n ', coinbhinsiún Windows \`'rn '`, agus an sean-choinbhinsiún Macintosh`'r'.
- Scriosfaidh na cúltaca taisce Memcached `MemcachedCache` agus `Pylibmccache` eochair má theipeann set () . Tá sé seo riachtanach chun a chinntiú go bhfaigheann an siopa seisiún cache\_db\` na sonraí seisiúin is reatha i gcónaí.
- Baineadh APIs príobháideacha `override_template_loaders` agus `override_with_test_loader` i django.test.utils\`. Athraigh `TEMPLATES` le `override_settings` ina ionad sin.
- Ní dhéantar rabhaidh ó chúltaca bunachar sonraí MySQL a thiontú go eisceachtaí a thuilleadh nuair:socrú: “DEBUG” ná `True`.
- [`HttpRequest`](/ga/5.2/ref/request-response/#django.http.HttpRequest) now has a simplified `repr` (e.g.
  `<WSGIRequest: GET '/somepath/'>`). This won't change the behavior of
  the [`SafeExceptionReporterFilter`](/ga/5.2/howto/error-reporting/#django.views.debug.SafeExceptionReporterFilter) class.
- Ardóidh tuairimí ranga-bhunaithe a úsáideann eisceacht: Class: ~Django.Views.Generic.Edit.ModelFormMixin an:exc: ~Django.Core.Exceptions.ImProperlyConfigured nuair a shonraítear na tréithe `fields` agus form\_class araon. Roimhe seo, rinneadh neamhaird go ciúin ar fields\`.
- Agus atreoruithe á leanúint agat, ardaíonn an cliant tástála anois:exc: ~django.test.client.redirectCycleError má bhraitheann sé lúb nó má bhuaileann sé teorainn athsheolta uasta (seachas dul go ciúin).
- Déantar teaghráin inaistrithe atá socraithe mar pharaiméadar `default` sa réimse a chaitheamh chuig teaghráin choincréite níos déanaí, mar sin tá an cineál tuairisceáin Field.get\_default () difriúil i gcásanna áirithe. Níl aon athrú ar luachanna réamhshocraithe atá mar thoradh ar inghlaoch.
- Is é `GenericipAddressField.empty_Strings_Allowed` anois `False`. Ní thiontfaidh cúltaca bunachar sonraí a léirmhíníonn teaghráin folamh mar null (ach Oracle i measc na gcúltaca a chuimsíonn Django) luachanna neall a thiontú ar ais go sreang folamh a thuilleadh. Tá sé seo ag teacht le cúltaca eile.
- Nuair is é `False` an tréith `BaseCommand.leave_locale_alone`, déantar aistriúcháin a dhíghníomhachtú anois in ionad an áitiúil “en-us” a chur i bhfeidhm. Sa chás go raibh teaghráin neamh-Béarla i do mhúnlaí agus go raibh tú ag brath ar aistriúcháin Béarla le gníomhachtú in orduithe bainistíochta, ní tharlóidh sé seo níos mó. D'fhéadfadh sé a bheith go ngintear imirce nua bunachar sonraí (uair amháin) tar éis dul ar imirce go 1.8.
- [`django.utils.translation.get_language()`](/ga/5.2/ref/utils/#django.utils.translation.get_language) now returns `None` instead
  of [`LANGUAGE_CODE`](/ga/5.2/ref/settings/#std-setting-LANGUAGE_CODE) when translations are temporarily deactivated.
- Nuair nach bhfuil aistriúchán ann le haghaidh litriúil ar leith, tógtar an tagairt anois ón teanga:setting: LANGUAGE\_CODE (in ionad ón teachtaireacht `msgid` gan aistriú).
- Tá an réimse ```ainm ``de:class: `Django.Contrib.ContentTypes.Models.ContentType` bainte le himirce agus tá maoin ina ionad. Ciallaíonn sé sin nach féidir ``ContentType``` a cheistiú nó a scagadh tríd an réimse seo a thuilleadh.

  Bí cúramach má dhéanann tú uasghrádú go Django 1.8 agus má scipeann tú Django 1.7. Má reáchtáil tú `manage.py migration --fake`, scipeánfar an imirce seo agus feicfidh tú ```RuntimeError: Earráid ag cruthú cineálacha nua ábhair. ``eisceacht toisc nach dtiocfar an colún ``ainm``` ón mbunachar sonraí. Úsáid `manage.py migration --fake-initial` chun an imirce tosaigh a bhréalú amháin ina ionad.
- Ceadaíonn an rogha nua :rogha: migrate --fake-initial ascnaimh tosaigh a bhréagnú. In 1.7, bhí ascnaimh tosaigh i gcónaí bréagach go huathoibríoch má bhí na táblaí go léir a cruthaíodh le linn imirce tosaigh ann cheana féin.
- D'fhéadfadh earráid eochairsrianta eachtrach a bheith mar thoradh ar aipe\* gan imirce le `ForeignKey` chuig aipe\*la\* imirce anois agus tú ag imirce an mbunachar sonraí nó ag reáchtáil tástálacha. I Django 1.7, d'fhéadfadh go dteipfeadh air seo go ciúin agus srian ar iarraidh a bheith mar thoradh air. Chun an earráid a réiteach, cuir imirce leis an aip gan iad.

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

### Modhanna roghnaithe i `Django.db.Models.Options.Options`

Mar chuid de fhoirmiú an Mhúnla. API \_meta\` (ón aicme:class: Django.db.Models.Options.Options), tá roinnt modhanna curtha in iúl agus bainfear iad i Django 1.10:

- faigh\_all\_field\_ainmneacha () \`
- 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 () \`
- faigh\_réimsí coincréite\_with\_model () \`
- get\_field\_by\_ainm () \`
- faigh\_fields\_with\_model () \`\`
- get\_m2m\_with\_model () \`

### Clibeanna teimpléad `timthriall` agus `firstof` á luchtú ó leabharlann `todhcha`

Thug Django 1.6 isteach `{% timthriall ualaigh ón todhchaí%}` agus `{% load firstof ón todhchaí%}` comhréir le haghaidh comhoiriúnacht ar aghaidh na gclibeanna teimpléad:ttag: timthriall agus:ttag: firstof. Tá an comhréireacht seo díscríofa anois agus bainfear é i Django 1.10. Ní féidir leat ach na clibeanna `{% load... a bhaint as clibeanna%}` sa todhchaí.

### django.conf.urls.patrons () \`\`

Sna seanlaethanta de Django, spreagadh é chun tuairimí a thagairt mar teaghráin i urlpatterns:

```
urlpatterns = patterns(
    "",
    url("^$", "myapp.views.myview"),
)
```

agus d'iompórfadh Django `myapp.views.myview` go draíochtúil go hinmheánach agus iompórfadh an teaghrán ina dtagairt feidhme fíor. D'fhonn athrá a laghdú agus iad ag tagairt go leor tuairimí ón modúl céanna, glacann an fheidhm ```patrúin () ``argóint tosaigh riachtanach ``prefix``` atá réamhdhéanta do gach dearcadh mar teaghráin sa tsraith sin de `urlpatterns`:

```
urlpatterns = patterns(
    "myapp.views",
    url("^$", "myview"),
    url("^other/$", "otherview"),
)
```

Sa ré nua-aimseartha, rinneamar an rang teagaisc a nuashonrú chun do mhodúl tuairimí a iompórtáil agus tagairt a dhéanamh go díreach do fheidhmeanna radhairc (nó ranganna). Tá roinnt buntáistí aige seo, gach rud a eascraíonn ón bhfíric go bhfuilimid ag úsáid gnáth-Python in ionad “Django String Magic”: níl na hearráidí nuair a chríochnóidh tú ainm amharc níos doiléire, is féidir le IDEanna cabhrú le huathchomhlánú ainmneacha amharc, srl.

Mar sin na laethanta seo, is dóichí go scríobfar an úsáid thuas den `prefix` arg (agus is fearr é scríofa) mar:

```
from myapp import views

urlpatterns = patterns(
    "",
    url("^$", views.myview),
    url("^other/$", views.otherview),
)
```

Dá bhrí sin is beag cuspóir a fhreastalaíonn ```patrúin () ``agus is ualach é agus úsáideoirí nua á múineadh (ag freagairt ceist an newbie “cén fáth a dteastaíonn an sreang folamh seo uaim mar an chéad argóint le ``patrúin ()```?”). Ar na cúiseanna seo, táimid ag cur síos air. Tá do chód a nuashonrú chomh simplí le a chinntiú gur liosta de chásanna django.conf.urls.url () é urlpatterns. Mar shampla:

```
from django.conf.urls import url
from myapp import views

urlpatterns = [
    url("^$", views.myview),
    url("^other/$", views.otherview),
]
```

### Ag cur sreang mar `view` chuig django.conf.urls.url () \`\`

Baineann leis an mír roimhe seo, tá tagairt a thabhairt do thuairimí mar theagairtí sa fheidhm url () . Pas an radharc inghlaonta mar a thuairiscítear sa chuid roimhe seo ina ionad sin.

### Socruithe a bhaineann le teimpléad

Mar thoradh ar athfhachtóir na n-inneall teimpléad iolracha, déantar roinnt socruithe a dhíchur i bhfabhra: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Í`

### `django.core.context_processors`

Tá próiseálaithe comhthéacs teimpléad ionsuite aistrithe chuig `django.template.context_processors`.

### `Django.Test.SimpleTestCase.URLs`

Tá an tréith SimpleTestCase.url chun cumraíocht URLConf a shonrú i dtástálacha a dhíchur agus bainfear é i Django 1.10. Úsáid: FUNC: @override\_settings (ROOT\_URLCONF =...) \<django.test.override\_settings\>\`ina ionad sin.

### Argóint `prefix` chuig: func: ~django.conf.urls.i18n.i18n\_patterns

Baineann leis an mír roimhe seo, tá an argóint `prefix` <go:func>: django.conf.urls.i18n.i18n\_patterns curtha in iúl. Níl ort ach liosta de chásanna django.conf.urls.url () a rith ina ionad.

### Ag baint úsáide as comhaireamh mícheart luachanna neamhphacáilte sa chlib teimpléad:ttag: for

Ag baint úsáide as comhaireamh mícheart de luachanna neamhphacáilte i gclib: ttag: for, ardóidh eisceacht seachas go teip go ciúin i Django 1.10.

### Ag dul i gcosán poncaigh chuig reverse () agus:ttag: url

Is oibríocht daor é URLanna a aisiompú le cosán Python mar is cúis leis an gcosán a iompórtáil. Mar thoradh ar an iompar seo tá [saincheist slándála](https://www.djangoproject.com/weblog/2014/apr/21/security/#s-issue-unexpected-code-execution-using-reverse) mar thoradh ar an iompar seo freisin. Úsáid:ref: patrúin URL ainmnithe \<naming-url-patterns\>\`chun aisiompú ina ionad sin.

Má tá tú ag baint úsáide:mod: django.contrib.sitemaps, cuir an argóint `ainm` leis an url \`\`a thagann tagair:func: \`django.contrib.sitemaps.views.sitemap:

```
from django.contrib.sitemaps.views import sitemap

url(
    r"^sitemap\.xml$",
    sitemap,
    {"sitemaps": sitemaps},
    name="django.contrib.sitemaps.views.sitemap",
)
```

chun comhoiriúnacht a chinntiú nuair a bhaintear cosán Python a aisiompú i Django 1.10.

Mar an gcéanna le haghaidh léarscáileanna láithreáin GIS, cuir `name='django.contrib.gis.sitemaps.views.kml'` nó `name='django.contrib.gis.sitemaps.views.kmz'`.

Má tá cosán Python á úsáid agat don socrú:: LOGIN\_URL nó:setting: LOGIN\_REDIRECT\_URL, bain úsáid as ainm an url () ina ionad.

### Modhanna agus modúil chomhiomlána

Tá na modúil `django.db.models.sql.aggregates` agus `django.contrib.gis.db.models.sql.aggregates` (an dá API príobháideach), curtha as `django.db.models.aggregates` agus `django.contrib.gis.db.models.aggregates` tá siad freagrach anois as giniúint SQL freisin. Bainfear na sean-mhodúil i Django 1.10.

Má bhí na sean-mhodúil á úsáid agat, féach: doc: Query Expressions \</ref/models/expressions\> le haghaidh treoracha maidir le comhiomlánacha saincheaptha a athscríobh ag baint úsáide as an API cobhsaí nua.

Tá na modhanna agus na hairíonna seo a leanas de Django.db.Models.sql.query.query\` a dhíchur freisin agus bainfear na shims comhoiriúnachta ar ais i Django 1.10:

- `Query.aggregates`, ina ionad annotations\`.
- `Query.Aggregate_Select`, annotation\_select\` in ionad.
- ```Query.add_aggregate () ``, ina ionad ``add_annotation ()```.
- ```Query.set_aggregate_mask () ``, ina ionad `set_annotation_mask ()```.
- ```Query.append_aggregate_mask () ``, ina ionad ``append_annotation_mask ()```.

### Argóintí ordaithe bainistíochta a leathnú trí `Command.option_list`

Úsáideann orduithe bainistíochta anois: py:mod: argparse in ionad:py:mod: optparse chun argóintí líne ordaithe a chuirtear chuig orduithe a pháirseáil. Ciallaíonn sé seo freisin go bhfuil athrú tagtha ar an mbealach chun argóintí saincheaptha a chur le horduithe: in ionad an liosta ranga `option_list` a leathnú, ba cheart duit anois an modh:meth: ~django.core.management.baseCommand.add\_arguments a shárú agus argóintí a chur trí argparse.add\_argument () . Féach: ref: an sampla seo \<custom-commands-options\>\`le haghaidh tuilleadh sonraí.

### `Django.Core.Management.NoArgsCommand`

Tá an rang `NoArgsCommand` díluaite anois agus bainfear é i Django 1.10. Úsáid:class: ~django.core.management.baseCommand ina ionad sin, nach dtógann aon argóintí de réir réamhshocraithe.

### Liostáil gach imirce i dtionscadal

Tá an rogha `--list` den ordú bainistíochta: djadmin: migrate díluachtaithe agus bainfear é i Django 1.10. Úsáid: djaDmin: showmigrations ina ionad.

### Rogha `cache_choices` de ModelChoiceField\` agus `ModelMultipleChoiceField`

[`ModelChoiceField`](/ga/5.2/ref/forms/fields/#django.forms.ModelChoiceField) and
[`ModelMultipleChoiceField`](/ga/5.2/ref/forms/fields/#django.forms.ModelMultipleChoiceField) took an undocumented, untested
option `cache_choices`. This cached querysets between multiple renderings of
the same `Form` object. This option is subject to an accelerated deprecation
and will be removed in Django 1.9.

### django.template.resolve\_variable () \`\`

Tá an fheidhm marcáilte go neamhfhoirmiúil mar “Díluachtaithe” le tamall. Cuir ```resolve_variable (cosán, comhthéacs) ``in ionad ``django.template.variable (path) .solve (comhthéacs)```.

### `django.contrib.webdesign`

Chuir sé an clib teimpléad: ttag: lorem ar fáil atá san áireamh anois sna clibeanna ionsuite. Níl ort ach `'django.contrib.webdesign'` a bhaint ó:setting: INSTALLED\_APPS agus `{% load webdesign%}` ó do theimpléid.

### `error_message` argóint chuig `django.forms.regexfield`

Chuir sé comhoiriúnacht ar ais do chód réamh-1.0, ach tá a fheidhmiúlacht iomarcach. Úsáid field.error\_messages \['neamhbhailí'\] ina ionad.

### Sean:tFilter: comhréir unordered\_list

Tá formáid ionchuir níos sine (réamh-1.0), níos srianta agus níos teoranta don scagaire teimpléad:tfilter: unordered\_list a dhíchur:

```
["States", [["Kansas", [["Lawrence", []], ["Topeka", []]]], ["Illinois", []]]]
```

Ag baint úsáide as an gcomhréir nua, éiríonn sé seo:

```
["States", ["Kansas", ["Lawrence", "Topeka"], "Illinois"]]
```

### Django.Forms.Field. \_aigh\_athraithe () \`\`

Athainmnigh an modh seo go: meth: ~django.forms.field.has\_changed tríd an bhunscór tosaigh a bhaint. Oibreoidh an sean-ainm fós go dtí Django 1.10.

### ````django.utils.html.remove_tags () ``agus scagaire teimpléad ```removetags````

Tá ```django.utils.html.remove_tags () ``chomh maith leis an scagaire teimpléad ``removetags``` a dhíchur mar ní féidir leo aschur sábháilte a ráthú. Is dócha go n-úsáidfear iad i gcomhthéacsanna atá íogair ó shlándáil nuair nach bhfuil siad sábháilte i ndáiríre.

Tá an fheidhm django.utils.html.strip\_entity () neamhúsáidte agus neamh-dhoiciméadaithe a dhíchur freisin.

### `is_admin_site` argóint chuig django.contrib.auth.views.password\_reset () \`\`

Is rogha oidhreachta é nár chóir go mbeadh gá a thuilleadh.

### `Subfieldbase`

Tá `Django.db.Models.Fields.subclassing.subfieldbase` díluaite agus bainfear é i Django 1.10. Go stairiúil, baineadh úsáid as chun réimsí a láimhseáil ina raibh gá le comhshó cineálacha agus iad á luchtú ón mbunachar sonraí, ach níor úsáideadh é i nglaonna .values () \`nó i gcomhiomlánacha. Cuireadh: meth: \`~django.db.models.field.from\_db\_value in ionad é.

Ní ghlaonn an cur chuige nua ar an modh:: meth: ~django.db.models.field.to\_python ar shannadh mar a bhí le `SubfieldBase`. \< <https://github.com/django/django/blob/stable/1.8.x/django/db/models/fields/subclassing.py#L31-L44>\>Má theastaíonn an t-iompar sin uait, athchur i bhfeidhm an aicme Cruthaitheoir ó chód foinse Django \_ i do thionscadal.

### `django.utils.checksums`

Tá an modúl `django.utils.checksums` díluaite agus bainfear é i Django 1.10. Ní raibh an fheidhmiúlacht a sholáthair sé (seicsum a bhailíochtú ag baint úsáide as algartam Luhn) gan doiciméadú agus níor úsáidtear é i Django. Tá an modúl aistrithe chuig an bpacáiste: pypi: django-localflavor (leagan 1.1+).

### InlineAdminForm.Original\_Content\_Type\_ID \`\`

Tá an tréith `original_content_type_id` ar `inlineAdminform` díluaite agus bainfear é i Django 1.10. Go stairiúil, baineadh úsáid as chun an URL “amharc ar an láithreán” a thógáil. Tá an URL seo inrochtana anois ag baint úsáide as tréith absolute\_url den fhoirm.

### Argóint `foirm_clas` `django.views.generic.edit.formmixin.get_form ()`

Ba cheart do fho-aicmí FormMixin\` a sháraíonn an modh ```get_form () ``a chinntiú go gcuirfeadh luach réamhshocraithe a sholáthar don argóint ``form_class``` ós rud é go bhfuil sé roghnach anois.

### Teimpléid rindreála luchtaithe ag: func: ~django.template.loader.get\_template () \`le a:class: \`~django.template.context

Tá athrú tagtha ar an gcineál tuairisceáin de:func: ~django.template.loader.get\_template () \`i Django 1.8: in ionad a:class: \`django.template.template, filleann sé sampla `Template` ar ais a bhfuil a chineál cruinn ag brath ar an gcúltaca a luchtaigh é.

Soláthraíonn an dá rang modh render () \`, áfach, glacann an chéad cheann a:class: django.template.context mar argóint agus tá an dara ceann ag súil le a:class: dict. Cuirtear an t-athrú seo i bhfeidhm trí chosán diúltaithe do theimpléid Django.

Baineann sé seo go léir freisin la:func: ~django.template.loader.select\_template () .

### [`Template`](/ga/5.2/ref/templates/api/#django.template.Template) and [`Context`](/ga/5.2/ref/templates/api/#django.template.Context) classes in template responses

Roinnt modhanna de:class: ~django.template.response.simpletemplateResponse agus:class: ~django.template.response.templateResponse ghlacth:class: django.template.context agus:class: django.template.template.template rudaí mar argóintí. Ba chóir dóibh anois: aicme: dict agus rudaí teimpléad atá ag brath ar chúltaca faoi seach a fháil.

Baineann sé seo freisin leis na cineálacha tuairisceáin má tá ceachtar aicme freagartha teimpléad curtha agat.

Seiceáil an doiciméadú [template response API](/ga/5.2/ref/template-response/) le haghaidh sonraí.

### Argóint current\_app de APIs a bhaineann le teimpléad

Ní ghlacfaidh na feidhmeanna agus na ranganna seo a leanas le paraiméadar `current_app` a thuilleadh chun spás ainmneacha URL a shocrú i Django 1.10:

- django.shortcuts.render () \`\`
- Django.Template.context () \`\`
- Django.Template.requestContext () \`\`
- Django.Template.Response.TemplateResponse () \`\`

Socraigh ```request.current_app ``ina ionad sin, áit a bhfuil ``request``` an chéad argóint leis na feidhmeanna nó na ranganna seo. Má tá “Context” simplí á úsáid agat, bain úsáid as `requestContext` ina ionad.

### Argóintí `foclóir` agus `context_instance` na bhfeidhmeanna rindreála

Ní ghlacfaidh na feidhmeanna seo a leanas leis na paraiméadair `Dictionary` agus context\_instance\` i Django 1.10 a thuilleadh:

- django.shortcuts.render () \`\`
- django.shortcuts.render\_to\_response () \`\`
- django.template.loader.render\_to\_string () \`\`

Úsáid an paraiméadar `context` ina ionad. Nuair a chuirtear foclóir ar rith mar argóint seasaimh, arb é an t-athrú is coitianta, ní gá aon athruithe.

Má tá tú ag rith a:class: ~django.template.context i context\_instance\`, pas a:class: dict sa pharaiméadar `context` ina ionad. Má tá tú ag rith a:class: ~django.template.requestContext, cuir an t-iarratas ar leithligh sa pharaiméadar `request`.

### Argóint `dirs` de fheidhmeanna aimsithe teimpléad

Ní ghlacfaidh na feidhmeanna seo a leanas le paraiméadar `dirs` a thuilleadh chun TEMPLATE\_DIRS\` a shárú i Django 1.10:

- [`django.template.loader.get_template()`](/ga/5.2/topics/templates/#django.template.loader.get_template)
- [`django.template.loader.select_template()`](/ga/5.2/topics/templates/#django.template.loader.select_template)
- [`django.shortcuts.render()`](/ga/5.2/topics/http/shortcuts/#django.shortcuts.render)
- django.shortcuts.render\_to\_response () \`\`

Níor oibrigh an paraiméadar go comhsheasmhach thar lódairí teimpléid éagsúla agus níor oibrigh sé do theimpléid áirithe.

### `Django.Template.Loader.BaseLoader`

Athainmníodh `Django.Template.Loader` go Django.Template.Loaders.Base.Loader\`. Má tá lódóir teimpléad saincheaptha scríofa agat a fhaigheann `Baseloader` oidhreachta, ní mór duit `Loader` a oidhreacht ina ionad sin.

### Django.Test.Utils.TestTemplateLoader \`\`

Tá API príobháideach `Django.Test.Utils.TestTemplateLoader` a dhíchur i bhfabhar `Django.Template.Loaders.Locmem.Loader` agus bainfear é i Django 1.9.

### Tacaíocht don argóint ```max_length ``ar ranganna saincheaptha ``Stóráil```

Ba chóir go gcuirfeadh fo-aicmí `Max_Length=None` mar pharaiméadar chuig: ~django.core.files.storage.storage.get\_available\_name agus/nó :meth: ~django.core.files.storage.storage.save má sháraíonn siad ceachtar modh. Bainfear tacaíocht do stórais nach nglacann leis an argóint seo i Django 1.10.

### cuir `qn` in ionad tiomsaitheoir \`\`

I leaganacha Django roimhe seo, ghlac modhanna inmheánacha ORM éagsúla (modhanna as\_sql\` den chuid is mó) le argóint `qn` (le haghaidh “ainm luachana”), a bhí ina thagairt d'fheidhm a luaigh aitheantóirí le seoladh chuig an mbunachar sonraí. I Django 1.8, athainmníodh an argóint sin go `compiler` agus is sampla iomlán `SQLcompiler` í anois. Maidir le comhoiriúnacht ar ais, déanann glaoch ar shampla `SQLCompiler` an t-ainm céanna a luaitear leis an bhfeidhm `qn`. Mar sin féin, déantar an shim comhoiriúnachta cúil seo a dhíchur láithreach: ba cheart duit d'argóintí `qn` a athainmniú go `compiler`, agus glaoch ar ```compiler.quote_name_unless_alias (...) ``áit ar thug tú ``qn (...)``` roimhe seo.

### Luach réamhshocraithe de `RedirectView.permanent`

Athróidh luach réamhshocraithe an tréith: attr: RedirectView.permanent \<django.views.generic.base.RedirectView.permanent\>\`ó \`\`True\` go `False` i Django 1.9.

### Ag baint úsáide as `AuthenticationMiddleWare` gan SessionAuthenticationMiddleware\`

Cuireadh `django.contrib.auth.middleware.sessionAuthenticationMiddleware` i Django 1.7. I Django 1.7.2, aistríodh a fheidhmiúlacht chuig \`auth.get\_user () \`\`agus, le haghaidh comhoiriúnacht ar ais, cumasaíodh é ach amháin má tá \`\`django.contrib.auth.middleware.sessionAuthenticationMiddleware' le feiceáil i \`MIDDLEWARE\_CLASSES.

I Django 1.10, cumasófar fíorú seisiúin beag beann an bhfuil ```SessionAuthenticationMiddleware` cumasaithe nó nach bhfuil (ag an bpointe sin ní bheidh aon tábhacht ag ``SessionAuthenticationMiddleware```). Is féidir leat é a chur le do MIDDLEWARE\_CLASSES\` am éigin roimh sin chun roghnú isteach. \<session-invalidation-on-password-change\>Léigh le do thoil an:ref: breithnithe uasghrádaithe ar dtús.

### `Django.Contrib.Sitemaps.FlatPageSitemap`

Tá `Django.Contrib.SiteMaps.FlatPageSitemap` tar éis bogadh chuig `Django.Contrib.FlatPages.Sitemaps.FlatPageSitemap`. Tá an sean-shuíomh allmhairithe díscoite agus bainfear é i Django 1.9.

### Múnla `Field.Related`

Tá tréith phríobháideach `Django.db.Models.Field.Related` a dhíchur i bhfabhar `Field.rel`. Is sampla é an dara ceann de `Django.db.Models.Fields.Related.ForeignoBjectrel` a chuireann in ionad `Django.db.Models.Related.RelatedObject`. Baineadh an modúl `django.db.models.related` agus bainfear an tréith `Field.Related` i Django 1.10.

### Clib teimpléad `ssi`

Ligeann an chlib teimpléad `ssi` comhaid a áireamh i dteimpléad de réir cosán iomlán. Úsáidtear teoranta é seo i bhformhór na gcásanna imscartha, agus is minic a bhíonn níos ciall ag an gclibe:ttag: include. Tá an chlib seo imithe anois agus bainfear é i Django 1.10.

### `=` mar oibreoir comparáide i gclib teimpléad if \`\`

Bhí comhartha comhionann amháin a úsáid leis an gclib teimpléad `{% if%}` le haghaidh tástáil comhionannais gan doiciméadú agus gan tástáil. Tá sé curtha anois i bhfabhar `==`.

### Comhréir `% (<foo>) s` i ModelFormMixin.Success\_URL\`

\<django.views.generic.edit.ModelFormMixin.success\_url\>Tá an comhréir oidhreachta `% (<foo>) s` in:attr: ModelFormMixin.Success\_URL díluachtaithe agus bainfear é i Django 1.10.

### Modhanna comhiomlána GeoquerySet \`\`

Tá na modhanna comhiomlána ```collection () ``, `mhéid ()```, extent3d () \`, make\_line ()\`, agus ```unionagg () ``,``` luchtaithe agus ba cheart a gcoibhéisí comhiomlán feidhmiúbhunaithe a chur in ionad iad (Collect\`, Extent\`, Extent3D\`, Makeline\`, agus Aontas ).

### Síniú an modh ródaire allow\_migrate\`

Tá síniú an modh:meth: allow\_migrate de ródairí bunachar sonraí athraithe ó ```allow_migration (db, model) ``go `allow_migration (db, app_label, model_name=None, **leideanna)```.

Nuair a shocraítear `model_name`, is féidir an luach a tugadh roimhe seo tríd an argóint seasaimh ```samhail` `a fháil taobh istigh den fhoclóir ``leideanna ``faoin eochair ``samhail```.

Tar éis aistriú go dtí an síniú nua glaofar an ródaire freisin ag na hoibríochtaí:: class: ~django.db.migrations.operations.runpython agus:class: ~django.db.migrations.operations.runsql.

## Gnéithe bainte i 1.8

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

- Baintear `django.contrib.comments`.
- Baintear na APIs bainistíochta idirbheart seo a leanas:

  - `Idirbheartaíocht Meánmhéireach`
  - na maisitheoirí agus na bainisteoirí comhthéacs `autochommit`, commit\_on\_rath\`, agus `commit_láimh`, a shainmhínítear in `django.db.transaction`
  - na feidhmeanna `commit_unless_managed` agus `rollback_unless_managed`, atá sainmhínithe freisin in `django.db.transaction`
  - an socrú `TRANSACTIONS_MANAGED`
- Ealaíonn clibeanna teimpléad:ttag: timthriall agus:ttag: firstof a n-argóintí go huathoibríoch.
- Baintear an socrú `SEND_BROKEN_LINK_EMAILS`.
- Baintear `django.middleware.doc.xviewmiddleware`.
- An `Samhail. Baintear alias _meta.module_name`.
- Baintear na shimanna comhoiriúnacha ar chúl a tugadh isteach chun `get_query_set` a athainmniú agus modhanna ceisteanna comhchosúla. Bíonn tionchar aige seo ar na haicmí seo a leanas: BaseModelAdmin\`, Changelist\`, BaseCommentNode\`, GenericForeignKey\`, `Manager`, SingleRelateDObjectDescriptor\` agus `ReversesingleRelateDobjectDescriptor`.
- Baintear na shims comhoiriúnacha ar chúl a tugadh isteach chun na tréithe `changelist.root_query_set` agus Changelist.query\_set\` a athainmniú.
- Baintear `django.views.defaults.shortcut` agus `django.conf.urls.shortcut`.
- Baintear tacaíocht do mhodúl Leabharlann Íomháithe Python (PIL).
- Baintear na APIs príobháideacha seo a leanas:

  - `django.db.backend`
  - django.db.close\_connection () \`\`
  - Django.db.backends.creation.basedatabasecreation.set\_autoCommit () \`\`
  - django.db.transaction.is\_managed () \`\`
  - django.db.transaction.managed () \`\`
- Baintear `Django.Forms.Widgets.RadioInput`.
- Baintear an modúl `django.test.simple` agus an rang `Django.Test.Simple.DjangoTestSuiterunner`.
- An modúl django.test. Baintear \_doctest .
- Baintear an socrú `CACHE_MIDDLEWARE_ANONYMOUS_ONLY`. Bíonn tionchar ag an athrú seo ar `django.middleware.cache.cacheMiddleware` agus `django.middleware.cache.updatecacheMiddleware` araon in ainneoin easpa rabhaidh díphríochta sa rang deireanach.
- Úsáid an “Rialú”, nó “Ordú” crua-chódaithe ar Mac, chun níos mó ná ceann amháin a roghnó.\* ní dhéanann Django níos mó ag an gciseal samhail ná ag an gciseal foirmeacha samhail ```ManyTomany` a thuilleadh le ``help_text``` a sholáthraíonn an úsáideoir.
- An Samhail. Baintear modhanna \_meta.get\_ (add|change|scriosadh) \_ceadúnaí.
- Ní léitear an eochair seisiúin `django_language` a thuilleadh le haghaidh comhoiriúnacht ar ais.
- Baintear léarscáileanna Suímh Geografacha (`django.contrib.gis.sitemaps.views.index` agus `django.contrib.gis.sitemaps.views.sitemap`).
- Baintear `django.utils.html.fix_ampersands`, an scagaire teimpléad `fix_ampersands`, agus `django.utils.html.clean_html`.
