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

*4 Aibreán, 2017*

Fáilte go dtí Django 1.11!

Clúdaíonn na nótaí scaoilte seo na:ref: gnéithe nua \<whats-new-1.11\>, chomh maith le roinnt: ref: athruithe neamh-chomhoiriúnacha ar chúl\<backwards-incompatible-1.11\> a mbeidh tú ag iarraidh a bheith ar an eolas fúthu agus tú ag uasghrádú ó Django 1.10 nó leaganacha níos sine. \<deprecated-features-1.11\>We've:ref: thosaigh an próiseas díghabhála do roinnt gnéithe .

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

\<Long-term support release\>Ainmnítear Django 1.11 mar a: téarma: 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.8, i mí Aibreáin 2018.

## Comhoiriúnacht Python

Éilíonn Django 1.11 Python 2.7, 3.4, 3.5, 3.6, nó 3.7 (amhail 1.11.17). Molaimid\*\* go hard\*\* agus ní thacaímid go hoifigiúil ach leis an scaoileadh is déanaí de gach sraith.

Is é an tsraith Django 1.11.x an ceann deireanach a thacaíonn le Python 2. Ní thacóidh an chéad eisiúint mhór eile, Django 2.0, ach le Python 3.4+.

## Ní bhíonn rabhaidh dhíspreagtha ard a thuilleadh de réir réamhshoc

Murab ionann agus leaganacha níos sine de Django, ní thaispeántar rabhaidh diúltaithe Django féin de réir réamhshocraithe a thuilleadh. Tá sé seo ag teacht le hiompar réamhshocraithe Python.

Ligeann an t-athrú seo d'aipeanna tríú páirtí tacú le Django 1.11 LTS agus Django 1.8 LTS araon gan cód a chur leis chun rabhaidh díghrádaithe a sheachaint.

Tar éis Django 2.0 a scaoileadh, molaimid go scaoilfidh údair aip tríú páirtí tacaíocht do gach leagan de Django roimh 1.11. Ag an am sin, ba cheart go mbeadh tú in ann tástálacha do phacáiste a reáchtáil ag baint úsáide as python -Wd\` ionas go mbeidh rabhaidh dífhabhtaithe le feiceáil. Tar éis duit na socruithe rabhaidh díghrádaithe a dhéanamh, ba chóir go mbeadh d'aip comhoiriúnach le Django 2.0.

## Cad atá nua i Django 1.11

### Innéacsanna samhail rang-bhunaithe

Tá ranganna sa mhodúl nua:mod: django.db.models.indexes a éascaíonn innéacsanna bunachar sonraí a chruthú. \<django.db.models.Options.indexes\>Cuirtear innéacsanna le samhlacha ag baint úsáide as an rogha: attr: Meta.Indexes .

Cruthaíonn an rang:Class: ~django.db.models.index innéacs b-crann, amhail is dá n-úsáide:attr: ~django.db.models.field.db\_index ar an réimse samhail nó ```index_together ``ar an rang `Meta``` samhail. Is féidir é a fho-aicmiú chun tacú le cineálacha innéacs éagsúla, mar shampla:class: ~django.contrib.postgres.indexes.ginIndex. Ligeann sé freisin an t-ord (ASC/DESC) a shainiú do cholúin an innéacs.

### Rindreáil giuirléid bunaithe ar theimpléad

Chun giuirléidí a shaincheapadh a éascú, déantar rindreáil giuirléid foirme anois ag baint úsáide as an gcóras teimplé Féach: doc: /ref/foirme/renderers.

\<template-widget-incompatibilities-1-11\>B'fhéidir go mbeidh ort aon ghuirléidí saincheaptha atá scríofa agat a choigeartú le haghaidh cúpla athrú: ref: athruithe neamh-chomhoiriúnacha ar ais .

### Nathanna `Subcheiste`

Ceadaíonn na nathanna bunachar sonraí nua:class: ~django.db.models.subquery agus:class: ~django.db.models.exists fo-cheisteanna follasacha a chruthú. Féadfaidh fo-cheisteanna tagairt a dhéanamh do réimsí ón tacar ceisteanna seachtrach ag baint úsáide as an aic:class: ~Django.db.Models.OuterRef.

### Mionghnéithe

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

- [`ModelAdmin.date_hierarchy`](/ga/5.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin.date_hierarchy) can now reference fields across relations.
- Ligeann an crúca nua:meth: ModelAdmin.get\_Exclude () \<django.contrib.admin.ModelAdmin.get\_exclude\>\`na réimsí eisiata a shonrú bunaithe ar an iarratas nó an tsamhail.
- Is féidir an teimpléad `popup_response.html` a shárú anois in aghaidh an aip, in aghaidh an tsamhail, nó tríd an tréith: :attr: .modeladmin.popup\_response\_template a shocrú.

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

- Méadaítear 20% an líon athraithe réamhshocraithe don hasher pasfhocal PBKDF2.
- Cuireann tuairimí rang-bhunaithe an:class: ~django.contrib.auth.views.loginView agus:class: ~django.contrib.auth.views.logoutView in ionad na tuairimí bunaithe ar fheidhm login () agus logout () .
- The:Class: ~django.contrib.auth.views.passwordChangeView, :class: ~django.contrib.auth.views.paswordChangeDoneView, :class: ~django.contrib.auth.views.passwordResetView, :class: ~django.contrib.auth.views.wordDresetView , :class: \`~django.contrib.auth.views.PasswordResetConfirmView, agus:class: ~django.contrib.auth.views.PasswordResetCompleteView athsholáthraíonn tuairimí aicmbunaithe ar an password\_change () \`, password\_change (), wordpass\_reset ()\`, ```password_reset_done () ``, `password_reset_confirm ()```, agus password\_reset\_complete () \`\` tuairimí bunaithe ar fheidhm.
- Ceadaíonn an tréith nua `post_reset_login` d':class: ~django.contrib.auth.views.passwordResetConfirmView logáil isteach go huathoibríoch ar úsáideoir tar éis athshocrú pasfhocal rathúil. Má tá go leor ```AUTHENTICATION_BACKENDS` cumraithe agat, bain úsáid as an tréith ``post_reset_login_backend``` chun cén ceann atá le húsáid a roghnú.
- Chun an fhéidearthacht comhartha athshocraithe pasfhocal a sceitheadh trí cheanntásc HTTP Referer a sheachaint (mar shampla, má chuimsíonn an leathanach athshocraithe tagairt do CSS nó JavaScript arna óstáil ar fhearann eile), stóráilíonn an:class: ~django.contrib.auth.views.PasswordResetConfirmView (ach ní an password\_reset\_confirm () amharc feidhm-bhunaithe) treoraíonn sé féin chun an fhoirm athraithe pasfhocal a chur i láthair don úsáideoir gan an comhartha san URL.
- [`update_session_auth_hash()`](/ga/5.2/topics/auth/default/#django.contrib.auth.update_session_auth_hash) now rotates the session
  key to allow a password change to invalidate stolen session cookies.
- Ceadaíonn an tréith nua `success_url_allowed_hosts` d':class: ~django.contrib.auth.views.loginView agus:class: ~django.contrib.auth.views.logoutView sraith óstach atá sábháilte le hathreorú tar éis logáil isteach agus logáil amach a shonrú.
- Breiseadh bailíochtóirí pasfhocal `help_text` chuig:class: ~django.contrib.auth.forms.userCreationForm.
- Cuirtear an HttpRequest\` anois chuig:func: ~django.contrib.auth.autenticate a chuireann chuig an gcúltaca fíordheimhnithe é ina dhiaidh sin má ghlacann sé le argóint `request`.
- Faigheann an comhartha:func: ~django.contrib.auth.signals.user\_login\_failed argóint `iarrat` anois.
- [`PasswordResetForm`](/ga/5.2/topics/auth/default/#django.contrib.auth.forms.PasswordResetForm) supports custom user
  models that use an email field named something other than `'email'`.
  Set [`CustomUser.EMAIL_FIELD`](/ga/5.2/topics/auth/customizing/#django.contrib.auth.models.CustomUser.EMAIL_FIELD) to the name of the field.
- [`get_user_model()`](/ga/5.2/topics/auth/customizing/#django.contrib.auth.get_user_model) can now be called at import time,
  even in modules that define models.

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

- Nuair a bhraitear cineálacha ábhar seasta san ordú:djadmin: remove\_stale\_contenttypes, tá liosta de rudaí gaolmhara ann anois mar Auth.Permission\`s a scriosfar freisin. Roimhe seo, níor liostaíodh ach na cineálacha ábhair (agus bhí an pras seo tar éis `imirce` seachas in ordú ar leithligh).

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

- Ceadaíonn na modhanna nua:meth: .geosgeometry.from\_GML agus:meth: .ogrgeometry.from\_GML geoiméadraí a chruthú ó GML.
- Tacaíocht bhreise don chuardach: lookup: dwithin ar SpatiaLite.
- Oibríonn an fheidhm: Class: ~django.contrib.gis.db.models.functions.Area, :class: ~django.contrib.gis.db.models.functions.distance feidhm, agus cuardaigh achair anois le comhordanáidí geodéiseacha ar Spatialite.
- Úsáideann na giuirléidí foirmeacha bunaithe ar OpenLayers anois ```OpenLayers.js ``ó``` <https://cdnjs.cloudflare.com> `atá níos oiriúnaí le húsáid táirgeachta ná an sean-fhoinse` <https://openlayers.org/> . Déantar iad a nuashonrú freisin chun OpenLayers 3 a úsáid.
- Is féidir le himirce PostGIS toisí réimse a athrú anois.
- Cuireadh an cumas leis na paraiméadair ```size ``, `shape```, agus `offset` a rith agus rudaí:class: ~django.contrib.gis.gdal.gdalRaster á chruthú.
- Cuirtear tacaíocht Spatialite leis an bhfeidhm: class: ~django.contrib.gis.db.models.functions.isValid, :class: ~django.contrib.gis.db.models.functions.makeValid feidhm, agus:lookup: isvalid cuardach.
- Cuireadh tacaíocht Oracle leis an bhfeidhm: class: ~django.contrib.gis.db.models.functions.asgml, :class: ~django.contrib.gis.db.models.functions.boundingCircle feidhm, :class: ~django.contrib.db.models.functions.isvalid feidhm, agus:lookup: validis.

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

- Cinneann an argóint nua `distint` do:class: ~django.contrib.postgres.aggregates.stringagg an mbeidh luachanna comhtháite ar leith.
- Ceadaíonn na ranganna nua:class: ~django.contrib.postgres.indexes.ginIndex agus:class: ~django.contrib.postgres.indexes.brinIndex innéacsanna `GIN` agus BRIN\` a chruthú sa bhunachar sonraí.
- Glacann `django.contrib.postgres.fields.jsonfield` le paraiméadar nua `encoder` chun rang saincheaptha a shonrú chun cineálacha sonraí nach dtacaíonn an t-ionchódóir caighdeánach a ionchódú.
- Ligeann an t-oibríocht imirce nua `citext` agus:class: ~django.contrib.postgres.operations.CiteXtExtension síneadh `citext` PostgreSQL a úsáid le haghaidh cuardaigh cás-neamh-íogair. Cuirtear trí réimse ar fáil: Cicharfield\`, Ciemailfield\`, agus `CitextField`.
- Ceadaíonn an nua:class: ~django.contrib.postgres.aggregates.jsonBagg luachanna a chomhiomlánú mar eagar JSON.
- Ceadaíonn an: Class: ~django.contrib.postgres.fields.hStorefield (réimse samhail) agus:class: ~django.contrib.postgres.forms.hStorefield (réimse foirme) luachanna null a stóráil.

#### Cache

- Cuireann cúltaca Memcached anois ábhar: socrú: OPTIONS \<CACHES-OPTIONS\>\`mar argóintí eochairfhocal chuig tógálaí na gcliant, rud a cheadaíonn rialú níos airde ar iompar cliant. Féach an doiciméad:ref: cache argóintí \<cache\_arguments\>\`le haghaidh samplaí.
- Ligeann cúltaca Memcached anois freastalaithe iolracha a shainiú mar shreang teoranta le camóg in:socrú: LOCATION \<CACHES-LOCATION\>, ar mhaithe le seirbhísí tríú páirtí a úsáideann teaghráin den sórt sin in athróga comhshaoil.

#### CSRF

- Cuireadh an socrú: socrú: CSRF\_USE\_SESSIONS leis chun an comhartha CSRF a stóráil i seisiún an úsáideora seachas i bhfianán.

#### Cúltaca bunachar sonraí

- Cuireadh an argóint skip\_locked\` leis la:meth: .queryset.select\_for\_update () \`ar PostgreSQL 9.5+ agus Oracle chun ceisteanna a fhorghníomhú le \`\`FOR UPDATE SKIP LOCKED\`.
- Cuireadh an socrú: socrú: TEST \['TEMPLATE'\] \<TEST\_TEMPLATE\>\`leis chun ligean d'úsáideoirí PostgreSQL teimpléad a shonrú chun an bunachar sonraí tástála a chruthú.
- [`QuerySet.iterator()`](/ga/5.2/ref/models/querysets/#django.db.models.query.QuerySet.iterator) úsáideann [cúrsóirí taobh an fhreastalaí](https://www.psycopg.org/docs/usage.html#server-side-cursors) anois ar PostgreSQL. Aistríonn an ghné seo cuid d’ualach cuimhne an oibrí (a úsáidtear chun torthaí fiosrúcháin a choinneáil) chuig an mbunachar sonraí agus d’fhéadfadh sé úsáid chuimhne an bhunachair shonraí a mhéadú.
- \<mysql-isolation-level\>Cuireadh tacaíocht MySQL leis an rogha `` `isolation_level' `` in:setting: OPTIONS chun ligean an: ref: leibhéal aonrú idirbheart a shonrú. Chun caillteanas sonraí féideartha a sheachaint, moltar aistriú ó leibhéal réamhshocraithe MySQL, inathsheolta, go léamh tiomanta.
- Tacaíocht bhreise do CX\_Oracle 5.3.

#### Ríomhphost

- Cuireadh an socrú: leagan: EMAIL\_USE\_LOCALTIME leis chun ceannteidil dáta SMTP a sheoladh sa chrios ama áitiúil seachas i UTC.
- Tagann ```emailmessage.attachment () ``agus ``attach_file ()``` ar ais anois go cineál MIME: mimetype: application/octet-stream nuair a shonraítear ábhar dénártha nach féidir a dhíchódú mar UTF-8 le haghaidh a:mimetype: text/\* ceangaltán.

#### Stóráil Comhad

- Chun é a dhéanamh infhilleadh ag: class: IO.TextioWrapper, :class: ~django.core.files.file anois tá na modhanna ```inléiteach () ``, `scríofa ()```, agus searchable () .

#### Foirmeacha

- An tréith nua `empty_value` ar:class: ~django.forms.charfield, :class: ~django.forms.emailfield, :class: ~django.forms.regexfield, :class: ~django.forms.slugfield, agus:class: ~django.forms.URLField Ligeann ELD\` an luach Python le húsáid a shonrú chun “folamh” a léiriú.
- \<django.forms.Form.get\_initial\_for\_field\>Tugann an modh nua:meth: form.get\_initial\_for\_field () sonraí tosaigh ar ais do réimse foirme.

#### Idirnáisiúnú

- Tacaíonn formáidiú uimhreacha agus an socrú: NUMBER\_GROUPING le grúpáil dhigit neamh-aonfhoirmeach.

#### Orduithe Bainistíochta

- Ceadaíonn an rogha nua:option: loaddata --exclude samhlacha agus aipeanna a eisiamh agus sonraí á luchtú ó daingneáin.
- Ligeann an rogha nua:option: diffsettings --default modúl socruithe seachas socruithe réamhshocraithe Django a shonrú chun comparáid a dhéanamh ina gcoinne.
- Cuireann argóintí app\_label\` teorainn anois leis an aschur: showmigrations --plan.

#### Imirce

- Tacaíocht bhreise le haghaidh sraitheadh rudaí UUID.UUID .

#### Samhla

- \<django.db.models.query.QuerySet.update\_or\_create\>Cuireadh tacaíocht le haghaidh luachanna inghlaonta san argóint `defaults` de:meth: queryset.update\_or\_create () \`agus:meth: \`~django.db.models.query.queryset.get\_or\_create.
- [`ImageField`](/ga/5.2/ref/models/fields/#django.db.models.ImageField) now has a default
  [`validate_image_file_extension`](/ga/5.2/ref/validators/#django.core.validators.validate_image_file_extension) validator.
  (This validator moved to the form field in [Django 1.11.2](/ga/5.2/releases/1.11.2/).)
- Tacaíocht bhreise le haghaidh gearradh ama chuig feidhmeanna: class: ~Django.db.Models.Functions.trunc.
- Chuir an fheidhm: class: ~django.db.models.functions.extractWeek leis chun an tseachtain a bhaint ó:class: ~django.db.models.dateField agus:class: ~django.db.models.DateTimeField agus nochtaigh sé tríd an cuardach: seachtain.
- Chuir an fheidhme:class: ~django.db.models.functions.truncTime leis an bhfeidhm chuig truncate:class: ~Django.db.Models.DateTimeField lena chomhpháirt ama agus nochtaigh sé tríd an cuardach: lookup: time.
- Tacaíocht bhreise le haghaidh abairtí in:meth: .queryset.values agus:meth: ~.queryset.values\_list.
- Tacaíocht bhreise le haghaidh abairtí fiosrúcháin ar chuardaigh a thógann go leor argóintí, mar shampla raon \`.
- Is féidir leat an rogha `Unique=True` a úsáid anois le:class: ~django.db.models.filefield.
- \<django.db.models.Expression.asc\>Cuireadh na paraiméadair `nulls_first` agus `nulls_last` chuig: class: Expression.asc () \`agus:meth: \`~django.db.Models.Expression.desc chun ordú luachanna null a rialú.
- \<using-f-expressions-in-filters\>Ceadaíonn an abairt nua `F` ```bitleftshift () ``agus ``bitrightshift ()``` modhanna: ref: oibríochtaí aistrithe bitwise .
- Cuireadh leis: Meth: .QuerySet.Union, :meth: ~.QuerySet.Intersection, agus:meth: ~.querySet.Difference.

#### Iarrataí agus Freagraí

- \<django.http.QueryDict.fromkeys\>Cuireadh leis: Meth: Querydict.fromKeys () .
- [`CommonMiddleware`](/ga/5.2/ref/middleware/#django.middleware.common.CommonMiddleware) now sets the
  `Content-Length` response header for non-streaming responses.
- Cuireadh an socrú:setting: SECURE\_HSTS\_PRELOAD leis chun ligean an treoir réamh-load\` a chur leis an gceannteideal Strict-Transport-Security .
- [`ConditionalGetMiddleware`](/ga/5.2/ref/middleware/#django.middleware.http.ConditionalGetMiddleware) now adds the
  `ETag` header to responses.

#### Sraitheadh

- Ligeann an tréith nua Django.Core.Serializers.Base.Serializer.Stream\_Class d'fho-aicmí an sruth réamhshocraithe a shaincheapadh.
- Is féidir an t-ionchódóir a úsáideann an: ref: JSON serializer \<serialization-formats-json\>\`a shaincheapadh anois trí argóint eochairfhocal \`\`cls\` a chur chuig an bhfeidhm serializers.serialize () .
- [`DjangoJSONEncoder`](/ga/5.2/topics/serialization/#django.core.serializers.json.DjangoJSONEncoder) now serializes
  [`timedelta`](https://docs.python.org/3/library/datetime.html#datetime.timedelta) objects (used by
  [`DurationField`](/ga/5.2/ref/models/fields/#django.db.models.DurationField)).

#### Teimpléid

- [`mark_safe()`](/ga/5.2/ref/utils/#django.utils.safestring.mark_safe) can now be used as a decorator.
- \<TEMPLATES-OPTIONS\>Tacaíonn cúltaca teimpléad:class: ~django.template.backends.jinja2.jinja2 le próiseálaithe comhthéacs anois tríd an rogha 'context\_processors'\` a shocrú in:setting: OPTION.
- Tugann an clibe:ttag: athghrúpa `namedtuple`s anois in ionad foclóirí ionas gur féidir leat an réad grúpa a dhíphacáil go díreach i lúb, m.sh. `{% for grouper, liosta i athghrúpáilte%}`.
- Cuireadh clib teimpléad a:ttag: resetcicle leis chun seicheamh an chlib teimpléad: ttag: timthriall a athshocrú.
- \<django.template.loaders.filesystem.Loader\>Is féidir leat eolairí ar leith a shonrú anois le haghaidh áirithe: class: Filesystem.loader .

#### Tástálacha

- Cuireadh leis: Meth: .DiscoverRunner.get\_Test\_Runner\_Kwargs chun ligean na hargóintí eochairfhocal a chuirtear chuig an rádálaí tástála a shaincheapadh.
- Cuireadh an rogha: rogha: test --debug-mode leis chun cabhrú le teipeanna tástála a réiteach tríd an socrú: socrú: DEBUG go True\`.
- Déanann na feidhmeanna nua:func: django.test.utils.setup\_databases (bogadh ó `django.test.runner`) agus:func: ~django.test.utils.teardown\_databases níos éasca reathaithe tástála saincheaptha a thógáil.
- Tacaíocht bhreise le haghaidh: meth: python: unittest.testcase.subtest agus an rogha: 'test --parallel\` á úsáid agat.
- Ritheann `DiscoverRunner` seiceálacha an chórais anois ag tús rith tástála. Athraigh an modh:meth: .DiscoverRunner.run\_checks más mian leat é sin a dhíchumasú.

#### Bailíochtóirí

- Cuireadh leis: Class: ~django.core.validators.fileExtensionValidator chun síntí comhaid a bhailíochtú agus:data: ~django.core.validators.validate\_image\_file\_extension chun comhaid íomhá a bhailíochtú.

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

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

- Chun an bunachar cóid a shimpliú agus toisc go bhfuil sé níos éasca a shuiteáil ná nuair a scaoileadh `contrib.gis` den chéad uair, is spleáchas riachtanach é: ref: gdalbuild anois do GeoDjango. I leaganacha níos sine, ní theastaíonn sé ach le haghaidh SQLite.
- Baintear `contrib.gis.maps` toisc go ndéanann sé comhéadan le leagan ar scor de API Google Maps agus is cosúil nach bhfuil sé cothabháilte. \<14284\>Má tá tú ag úsáid é, :ticket: Cuir in iúl dúinn .
- Déanann an t-oibreoir comhionannais Geosgeometry comparáid anois idir SRID.
- Úsáideann na giuirléidí foirmeacha bunaithe ar OpenLayers OpenLayers 3 anois, agus tá na teimpléid gis/openlayers.html\` agus `gis/openlayers-osm.html` nuashonraithe. Seiceáil do thionscadal má dhéanann tú na giuirléidí seo a fho-rangú nó má leathnaíonn Chomh maith leis sin, oibríonn na giuirléidí nua beagán difriúil ná na seancinn. In ionad uirlisí uirlisí a úsáid sa ghuirléid, cliceáil tú chun tarraingt, cliceáil agus tarraingt chun an léarscáil a bhogadh, agus cliceáil agus tarraingt point/beart/cúinne chun é a bhogadh.
- Titeann tacaíocht do SpatiaLite \<4.0.
- Titear tacaíocht do GDAL 1.7 agus 1.8.
- Úsáideann na giuirléidí in `contrib.gis.forms.widgets` agus `OpenLayersWidget` an riaracháin an:doc: foirm rindreála API seachas loader.render\_to\_string () \</ref/forms/renderers\> \`. Má tá teimpléad giuirléid saincheaptha á úsáid agat, beidh ort a bheith cinnte gur féidir le do rindreoir foirme é a aimsiú. Mar shampla, d'fhéadfá an renderer: class: \`~django.forms.renderers.templateSetting a úsáid.

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

- D'fhéadfadh go dteipeann ar collectstatic\` anois le linn iar-phróiseála agus stóráil comhaid statacha hashed á n-úsáid má tá lúb tagartha ann (m.sh. ``` `foo.css'` tagairtí ``bar.css' ``` a thagraíonn do foo.css') nó má tá an slabhra comhaid eile ró-dhomhain le réiteach i roinnt pasanna. Sa chás deireanach sin, méadaigh líon na bpasanna ag baint úsáidea:attr: \`.manifestStaticFilesStorage.MAX\_POST\_PROCESS\_PASES.
- Agus `ManifestStaticFilesStorage` á n-úsáid agat, ardaíonn comhaid statacha nach bhfaightear sa léiriú ag an tréimhse `ValueError` anois in ionad cosán gan athrú a thabhairt ar ais. Is féidir leat filleadh ar an sean-iompar trí shocrú: attr: .manifestStaticFilesStorage.manifest\_strict go `False`.

### API cúltaca bunachar sonraí

Déanann an rannán seo cur síos ar athruithe a d’fhéadfadh a bheith ag teastáil ar dhroim bhunachar sonraí tríú páirtí.

- Cuirtear an modh `DatabaseOperations.time_trunc_sql ()` leis chun tacú le trongáil ```Timefield`. Glacann sé le hargóintí ``lookup_type``` agus field\_name\` agus filleann sé an SQL cuí ar ais chun an réimse ama tugtha `field_name` a ghearradh chuig réad ama nach bhfuil ach an sainiúlacht ar leith air. Is féidir leis an argóint `lookup_type` a bheith ina `` `uair ' ``, ````nóiméad'`, nó ```soicind````.
- Cuirtear an modh ```DatabaseOperations.DateTime_Cast_Time_SQL () `leis chun tacú leis an cuardach: lookup: `time`. Glacann sé le hargóintí ``field_name``` agus `tzname` agus filleann sé an SQL riachtanach chun luach dáta-ama a chaitheamh go luach ama.
- Chun tacaíocht `FOR UPDATE SKIP LOCKED` a chumasú, socraigh `databaseFeatures.HAS_SELECT_FOR_UPDATE_SKIP_LOCKED = True`.
- Sonraíonn an tréith nua `DatabaseFeatures.supports_index_column_ordering` an gceadaíonn bunachar sonraí ordú a shainiú do cholúin in innéacsanna. Is é an luach réamhshocraithe `True` agus ba chóir go mbeadh eochair ```'ordaithe '``i ngach ceann de na foclóirí ar ais le liosta luachanna ``ASC'` agus/nó ``DESC``` agus/nó luachanna `DESC` a fhreagraíonn d'ordú gach colún san innéacs.
- [`inspectdb`](/ga/5.2/ref/django-admin/#django-admin-inspectdb) no longer calls `DatabaseIntrospection.get_indexes()`
  which is deprecated. Custom database backends should ensure all types of
  indexes are returned by `DatabaseIntrospection.get_constraints()`.
- Athainmnigh an ghné ignores\_quoted\_identificfier\_case\` go ignores\_table\_name\_case\` chun léiriú níos cruinne an chaoi a n-úsáidtear é.
- Cuirtear an argóint eochairfhocal ```ainm ``leis an modh `DatabaseWrapper.create_cursor (self, name=None)``` chun cúrsaí taobh an fhreastalaí a úsáid ar chúltaca a thacaíonn leis a cheadú.

### Tacaíocht titim do PostgreSQL 9.2 agus PostGIS 2.0

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

Baintear tacaíocht do PostGIS 2.0 freisin mar is é PostgreSQL 9.2 an leagan deireanach chun tacú leis.

Chomh maith leis sin, méadaítear an leagan íosta tacaithe de psycopg2 ó 2.4.5 go 2.5.4.

### Ceanglaíonn `Liveservertestcase` le calafort nialas

Seachas raon calafoirt a ghlacadh agus athrá chun calafort saor in aisce a aimsiú, ceanglaíonn `Liveservertestcase` le calafort nialas agus braitheann sé ar an gcóras oibriúcháin chun calafort saor in aisce a shannadh. Ní úsáidtear an t-athróg timpeallachta `DJANGO_LIVE_TEST_SERVER_ADDRESS` a thuilleadh, agus toisc nach n-úsáidtear é a thuilleadh freisin, baintear an rogha manage.py test --liveserver.

Más gá duit `LiveserVertestCase` a cheangal le calafort ar leith, bain úsáid as an tréith port cuireadh i Django 1.11.2.

### Cosaint i gcoinne atreoruithe neamhchinnte i:mod: tuairimí django.contrib.auth agus `i18n`

Cosnaíonn `LoginView`, LogoutView\` (agus na coibhéisí bunaithe ar fheidhm atá díluaite), agus:func: ~django.views.i18n.set\_language úsáideoirí ó bheith atreoraithe chuig URLanna `next` neamh-HTTPS nuair a bhíonn an aip ag rith thar HTTPS.

### ```QuerySet.get_or_create () ``agus ``update_or_create ()``` argóintí a bhailíochtú

Chun clóscríobh a chosc ó rith go ciúin, :meth: ~django.db.models.query.queryset.get\_or\_create agus:meth: ~django.db.models.queryset.update\_or\_create seiceáil gur réimsí samhail iad a gcuid argóintí. Níor chóir go mbeadh sé seo comhoiriúnach ar chúl ach amháin sa bhfíric go bhféadfadh sé fabht i do thionscadal a nochtadh.

### Is spleáchas riachtanach é `pytz` agus tacaíocht do settings.TIME\_ZONE = None baintear

Chun láimhseáil crios ama Django a shimpliú, is spleáchas riachtanach anois é pytz. Tá sé suiteáilte go huathoibríoch mar aon le Django.

Baintear tacaíocht do settings.time\_zone = None \`\`toisc nach n-úsáidtear an t-iompar go coitianta agus tá sé úsáideach go cinnte. Más mian leat an crios ama a bhrath go huathoibríoch bunaithe ar chrios ama an chórais, is féidir leat úsáid a úsáid:pypi: \`tzlocal:

```
from tzlocal import get_localzone

TIME_ZONE = get_localzone().zone
```

Oibríonn sé seo cosúil le ```settings.time_zone = None ``ach amháin go socraíonn sé ``os.environ ['TZ']``` freisin. Cuir in iúl dúinn \`\_\_ má \< https://groups.google.com/g/django-developers/c/OAV3FChfuPM/discussion\> tá cás úsáide ann ina bhfaighidh tú nach féidir leat do chód a oiriúnú chun \`\`TIME\_ZONE\` a shocrú.

### Athruithe HTML i dteimpléid riaracháin

Cuirtear clib \<p class="help"\>\`\`\`\` in ionad `<div>` chun liostaí a áireamh laistigh de théacs cabhrach.

\<div class="readonly"\>Tá réimsí léite amháin fillte i ```...</div> <p>``in ionad```...\</p\> chun aon chineál HTML a cheadú mar ábhar an réimse.

### Athruithe mar gheall ar rindreáil giuirléid bunaithe ar theimpléad a thabhairt isteach

Baintear roinnt ranganna neamhdhoiciméadaithe i `django.forms.widgets`:

- `Subwidget`
- `RendererMixin`, RoghiceFieldRenderer\`, RadioFieldRender\`, CheckboxFieldRender\`
- `RoiceInput`, RadioChoiceInput\`, CheckboxChoiceInput\`

Baintear an modh Select.render\_option () neamhdhoiciméadaithe.

Baintear an modh `Widget.format_output()`. Úsáid teimpléad giuirléid saincheaptha ina ionad sin.

Tá roinnt luachanna giuirléid, mar shampla roghanna ``` `, log <select>ánaithe anois má tá ``settings.use_l10n=true ```. D'fhéadfá filleadh ar an sean-iompar le teimpléid giuirléid saincheaptha a úsáideann an chlib teimpléad:ttag: localize chun logánú a mhúchadh.

### Django.Template.Backends.Django.Template.render () cosc ar chomhthéacs neamh-dict

Le haghaidh comhoiriúnacht le hinnill teimpléad iolracha, caithfidh ```django.template.backends.django.template.render () ``(ar ais ó APIs luchtaire teimpléad ardleibhéil mar ``loader.get_template ()```) foclóir comhthéacs a fháil seachas `Context` nó requestContext\`. Má bhí tú ag rith ceachtar den dá rang, pas foclóir ina ionad sin - tá sé sin ag luí ar ais le leaganacha níos sine de Django.

### Athruithe stáit samhail in oibríochtaí imirce

Chun luas imirce a chur i bhfeidhm a fheabhsú, cuirtear moill ar rindreáil samhlacha gaolmhara go dtí go ndéanfar oibríocht a theastaíonn iad (m.sh. Runpython\`). \<writing-your-own-migration-operation\>Má tá oibríocht saincheaptha agat a oibríonn le ranganna samhail nó cásanna samhail ón argóint `from_state` i database\_forwards () \`\`nó \`database\_backwards ()\`, ní mór duit stáit samhail a rinneadh ag baint úsáide as an modh clear\_delayed\_apps\_cache () mar a thuairiscítear in:ref: scríobh d'oibríocht imirce féin .

### Cúrsóirí taobh an fhreastalaí ar PostgreSQL

Cuireann an t-athrú chun déanaime:meth: .queryset.iterator () \`úsáid cúrsaí taobh an fhreastalaí ar PostgreSQL cosc ar Django a rith le PGBouncer i mód comhionannaithe idirbheart. \<DATABASE-DISABLE\_SERVER\_SIDE\_CURSORS\>Chun é sin a íoslódáil, bain úsáid as an socrú:setting: \`DISABLE\_SERVER\_SIDE\_CURSORS \`(curtha leis i Django 1.11.1) in:setting: \`DATABASES.

Féach:ref: transaction-pooling-server-side-cursors le haghaidh tuilleadh plé.

### Ilghnéitheach

- \<django.utils.feedgenerator.SyndicationFeed.latest\_post\_date\>Mura bhfuil tréith `pubdate` nó updateddate\` ag aon earraí sa bhfotha, filleann: meth: SyndicationFeed.latest\_post\_date () an dáta/am reatha UTC anois, in ionad dáta-am gan aon fhaisnéis crios ama.
- Tá teipeanna CSRF logáilte chuig an logger `django.security.csrf` in ionad `django.request`.
- [`ALLOWED_HOSTS`](/ga/5.2/ref/settings/#std-setting-ALLOWED_HOSTS) validation is no longer disabled when running tests.
  If your application includes tests with custom host names, you must include
  those host names in [`ALLOWED_HOSTS`](/ga/5.2/ref/settings/#std-setting-ALLOWED_HOSTS). See
  [Tests and multiple host names](/ga/5.2/topics/testing/advanced/#topics-testing-advanced-multiple-hosts).
- Ag baint úsáide as id eochair eachtrach (m.sh. `field_id'`) in ModelAdmin.list\_display\`, taispeánann ID an réad gaolmhar. Bain an iarmhír `_id` más mian leat sean-iompar léiriú teaghrán an réada.
- I bhfoirmeacha samhail, sábhálann: class: ~django.db.models.charfield le `Null=True` anois `NULL` le haghaidh luachanna bána in ionad teaghráin folamh.
- Ar Oracle, :meth: Model.validate\_unique () \<django.db.models.Model.validate\_unique\>\`ní sheiceálann teaghráin folamh le haghaidh uathúlacht a thuilleadh mar a léirmhíníonn an bunachar sonraí an luach mar \`NULL\`.
- Má dhéanann tú fo-aicmi:class: .abstractUser agus má sháraíonn tú ```clean () ``, bí cinnte go dtugann sé ``super ()```. :meth: Glaítear .BaseUserManager.Normalize\_Email i modh nua:meth: .abstractuser.clean ionas go gcuirfear normalú i bhfeidhm i gcásanna cosúil le bailíochtú foirm mhúnla.
- Ní ghlacann `emailfield` agus URLField\` leis an argóint eochairfhocal `strip` a thuilleadh. Bain é toisc nach bhfuil éifeacht aige i leaganacha níos sine de Django mar scriosann na réimsí seo spás bán i gcónaí.
- Úsáideann an tréith `seiceáil` agus `roghnaithe` a rinneadh ag giuirléidí foirme chomhréir boolean HTML5 anois seachas checked='checked'\` agus selected='roghnaithe'\` XHTML.
- [`RelatedManager.add()`](/ga/5.2/ref/models/relations/#django.db.models.fields.related.RelatedManager.add),
  [`remove()`](/ga/5.2/ref/models/relations/#django.db.models.fields.related.RelatedManager.remove),
  [`clear()`](/ga/5.2/ref/models/relations/#django.db.models.fields.related.RelatedManager.clear), and
  [`set()`](/ga/5.2/ref/models/relations/#django.db.models.fields.related.RelatedManager.set) now
  clear the `prefetch_related()` cache.
- Chun caillteanas féideartha socruithe sábháilte a chosc, ardaíonn: func: ~django.test.utils.setup\_test\_environment eisceacht anois má thugtar air an dara huair sula nglaonn sé: func: ~django.test.utils.teardown\_test\_environment.
- Baintear an alias `DateTimeAwarejsonEncoder` neamhdhoiciméadaithe do:class: ~django.core.serializers.json.djangojsonEncoder (athainmnithe i Django 1.0).
- Tá an: class: luchtóir teimpléad cached \<django.template.loaders.cached.Loader\>\`cumasaithe anois mura ndéantar socrú: \`OPTIONS \['luchtaitheoirí'\]\<TEMPLATES-OPTIONS\> sonraithe agus:setting: OPTIONS \['debug'\] \`\<TEMPLATES-OPTIONS\>is \`False\` (réamhshocraíonn an rogha deireanach go luach:socrú: DEBUG). \<template\_tag\_thread\_safety\>D'fhéadfadh sé seo a bheith comhoiriúnach ar chúl má tá clibeanna teimpléad éigin agat: ref: nach bhfuil sábháilte snáithe .
- Ní tharlaíonn an pras le haghaidh scriosadh cineál ábhair seasta a thuilleadh tar éis an t-ordú `imirce` a reáchtáil. Úsáid an t-ordú nua:djadmin: remove\_stale\_contenttypes ina ionad.
- Úsáideann giuirléid an riaracháin do `IntegerField` `type="number"` seachas `type="text"`.
- Déantar ceanntásca coinníollach HTTP a pháirseáil agus comparáid anois de réir na sonraíochta Iarrataí Coinníollacha: rfc: 7232 seachas an níos sine: rfc: 2616.
- [`patch_response_headers()`](/ga/5.2/ref/utils/#django.utils.cache.patch_response_headers) no longer adds a
  `Last-Modified` header. According to the [**RFC 7234 Section 4.2.2**](https://datatracker.ietf.org/doc/html/rfc7234.html#section-4.2.2), this
  header is useless alongside other caching headers that provide an explicit
  expiration time, e.g. `Expires` or `Cache-Control`.
  [`UpdateCacheMiddleware`](/ga/5.2/ref/middleware/#django.middleware.cache.UpdateCacheMiddleware) and
  [`add_never_cache_headers()`](/ga/5.2/ref/utils/#django.utils.cache.add_never_cache_headers) call
  `patch_response_headers()` and therefore are also affected by this change.
- Sna teimpléid riaracháin, cuirtear clib \<p class="help"\>\`\`\`\` in ionad `<div>` chun liostaí a áireamh laistigh de théacs cabhrach.
- [`ConditionalGetMiddleware`](/ga/5.2/ref/middleware/#django.middleware.http.ConditionalGetMiddleware) no longer sets the
  `Date` header as web servers set that header. It also no longer sets the
  `Content-Length` header as this is now done by
  [`CommonMiddleware`](/ga/5.2/ref/middleware/#django.middleware.common.CommonMiddleware).

  Má tá middleware agat a athraíonn ábhar freagra agus atá le feiceáil roimh `CommonMiddleware` i socruithe `MIDDLEWARE` nó MIDDLEWARE\_CLASSES\`, ní mór duit do mheán a athordú ionas nach ndéanfar freagraí tar éis Content-Length\` a shocrú nó an freagra a athshocrú.
- [`get_model()`](/ga/5.2/ref/applications/#django.apps.AppConfig.get_model) and
  [`get_models()`](/ga/5.2/ref/applications/#django.apps.AppConfig.get_models) now raise
  [`AppRegistryNotReady`](/ga/5.2/ref/exceptions/#django.core.exceptions.AppRegistryNotReady) if they're called before
  models of all applications have been loaded. Previously they only required
  the target application's models to be loaded and thus could return models
  without all their relations set up. If you need the old behavior of
  `get_model()`, set the `require_ready` argument to `False`.
- Baintear an tréith `BaseCommand.can_import_settings` neamhúsáidte.
- Baintear an `django.utils.functional.lazy_property` neamhdhoiciméadaithe.
- Le haghaidh comhsheasmhachta le hiarratais neamh-ilpháirteach, fágann ````` `MultipartParser.parse () ````Request.Post ````` inathraithe anois. Má tá tú ag modhnú an `QueryDict` sin, ní mór duit anois é a chóipeáil ar dtús, m.sh. Request.post.copy () .
- Baintear tacaíocht do CX\_Oracle \< 5.2.
- Baintear tacaíocht do IPython \<1.0 ón ordú `sliog`.
- D'athraigh síniú API príobháideach ```Widget.build_attrs () ``ó `Extra_Attrs=None, **kwargs``` go base\_attrs, extra\_attrs=None .
- Tá réada cosúil le comhad (m.sh., :class: ~io.stringio agus:class: ~io.bytesio) a uaslódáil chuig an:class: ~django.db.models.imagefield ag baint úsáide as an cliant tástála ag teastáil tréith `name` anois le luach a rachaidh an:data: ~django.core.validators.extenate\_image\_file\_sione\_ bailíochtaitheoir. Féach an nóta in:meth: .client.post.
- [`FileField`](/ga/5.2/ref/models/fields/#django.db.models.FileField) now moves rather than copies the file
  it receives. With the default file upload settings, files larger than
  [`FILE_UPLOAD_MAX_MEMORY_SIZE`](/ga/5.2/ref/settings/#std-setting-FILE_UPLOAD_MAX_MEMORY_SIZE) now have the same permissions as
  temporary files (often `0o600`) rather than the system's standard umask
  (often `0o6644`). Set the [`FILE_UPLOAD_PERMISSIONS`](/ga/5.2/ref/settings/#std-setting-FILE_UPLOAD_PERMISSIONS) if you need
  the same permission regardless of file size.

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

### models.permalink () maisitheoir

Úsáid: func: django.urls.reverse ina ionad. Mar shampla:

```
from django.db import models

class MyModel(models.Model):
    ...

    @models.permalink
    def url(self):
        return ("guitarist_detail", [self.slug])
```

éiríonn sé:

```
from django.db import models
from django.urls import reverse

class MyModel(models.Model):
    ...

    def url(self):
        return reverse("guitarist_detail", args=[self.slug])
```

### Ilghnéitheach

- Tá tuairimí bunaithe ar fheidhm `` `contrib.auth `` login () \`\`agus \`\`logout () \`\` luasghabhunaithe i bhfabhar radhairc nua aicme-bhunaithe: class: ~django.contrib.contrib.auth.views.loginView agus:class: ~django.contrib.auth.views.logoutView.
- Tá an paraiméadar `extra_context` neamhúsáidte de contrib.auth.views.logout\_then\_login () a dhíchur.
- Tá `contrib.auth` password\_change () \`, password\_change\_done ()\`, password\_reset () \`, password\_reset\_done ()\`, password\_reset\_done () \`, password\_reset\_verify ()\`, agus password\_reset\_complete () tuairimí nua ar fheidhm tuairimí range-bhunaithe: class: \`~django.contrib.auth.views.passwordChangeView, :class: ~django.contrib.auth.views.passwordChangedOneView, :class: ~django.contrib.auth.views.passwordResetView, :class: ~django.contrib.auth.views.passwordResetView DoneView\`, :class: ~django.contrib.auth.views.PasswordResetConfirmView, agus:class: ~django. Contrib.auth.views.PasswordResetCompleteView.
- Bogtar django.test.runner.setup\_databases () chuig: func: django.test.utils.setup\_databases. Tá an sean-shuíomh mionscailte.
- Tá ```django.utils.translation.string_concat () ``luasghabháilte i bhfabhr:func: `django.utils.text.format_lazy`. Is féidir ``format_lazy ('{}' * len (teaghráin), *teaghráin) ``a chur in ionad ``string_concat (*teaghráin)```.
- Maidir leis an gcúltaca taisce `Pylibmccache`, tá socruithe iompraíochta pylibmc\` a rith mar thréithe barrleibhéil de `OPTIONS` a dhíchur. Socraigh iad faoi eochair ```iompraíochtaí ``laistigh de `OPTIONS``` ina ionad.
- Tá an paraiméadar `host` de django.utils.http.is\_safe\_url () \`\`a dhíchur i bhfabhar an pharaiméadar nua \`\`allowed\_hosts\`.
- Tá eis \<include\>ceachtaí a thostú a ardaíodh agus clib teimpléad: ttag: {% include%} á léiriú díreach mar is minic a bhíonn an t-iompar níos mearbhall ná cabhrach. I Django 2.1, ardófar an eisceacht.
- Tá `DatabaseIntrospection.get_Indexes ()` díscoilte i bhfabhar DatabaseIntrospection.get\_Constraints () .
- [`authenticate()`](/ga/5.2/topics/auth/default/#django.contrib.auth.authenticate) now passes a `request` argument
  to the `authenticate()` method of authentication backends. Support for
  methods that don't accept `request` as the first positional argument will
  be removed in Django 2.1.
- Tá an socrú `USE_ETAG` díluaite i bhfabhr:class: ~django.middleware.http.ConditionalGetMiddleware a chuireann an ceannteideal `Etag` anois le freagraí beann ar an socrú. Ní shocróidh `CommonMiddleware` agus django.utils.cache.patch\_response\_heads () eTaganna a thuilleadh nuair a chríochnaíonn an díphacáil.
- `Samhail. Tá _meta.has_auto_field` a dhíchur i bhfabhar seiceáil an bhfuil Samhail. Níl \_meta.auto\_field Non \`.
- Tá grúpaí léirithe rialta le Ilmsu#\` in url () \`\`díluchtaithe. Is é an t-aon ghrúpa atá úsáideach ná \`\`(? i) \`\`le haghaidh URLanna cás-neamh-íogair, áfach, ní dea-chleachtas iad URLanna cás-neamh-íogair toisc go gcruthaíonn siad iontrálacha iolracha d'innill chuardaigh, mar shampla. D'fhéadfadh réiteach malartach a bheith a chruthú a:data: \`~django.conf.urls.handler404 a lorgaíonn carachtair uachtaracha sa URL agus a atreoraíonn chuig coibhéis beaga.
- \<django.forms.Widget.render\>Cuirtear an argóint `renderer` leis an modh:meth: Widget.render () . Oibreoidh modhanna nach nglacann leis an argóint sin trí thréimhse díscrúdaithe.
