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

*1 Nollaig, 2015*

Fáilte go dtí Django 1.9!

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

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

## Comhoiriúnacht Python

Éilíonn Django 1.9 Python 2.7, 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 é an tsraith Django 1.8 an ceann deireanach a thacaíonn le Python 3.2 agus 3.3.

## Cad atá nua i Django 1.9

### Gníomhartha a dhéanamh tar éis idirbheart a dhéanamh

Ceadaíonn an crúca nua:func: ~django.db.transaction.on\_commit gníomhartha a dhéanamh tar éis idirbheart bunachar sonraí a dhéanamh go rathúil. Tá sé seo úsáideach le haghaidh tascanna mar ríomhphoist fógra a sheoladh, tascanna scuaine a chruthú, nó táscáin a chur ar bhailí.

Tá an fheidhmiúlacht seo ón bpacáiste: pypi: django-transaction-hooks comhtháite i Django.

### Bailíochtú pasfhocal

Cuireann Django bailíochtú pasfhocal ar fáil anois chun cabhrú le húsáid pasfhocail laga ag úsáideoirí a chosc. Tá an bailíochtú comhtháite sna foirmeacha athraithe agus athshocraithe pasfhocal san áireamh agus tá sé simplí a chomhtháthú in aon chód eile. Déanann bailíochtaithe amháin nó níos mó bailíochtú, cumraithe sa shocrú nua:setting: AUTH\_PASSWORD\_VALIDATORS.

Tá ceithre bhailíochtóir san áireamh i Django, ar féidir leo fad íosta a fhorfheidhmiú, an pasfhocal a chur i gcomparáid le tréithe an úsáideora cosúil lena n-ainm, a chinntiú nach bhfuil pasfhocail uimhriúla go hiomlán, nó seiceáil i gcoinne liosta pasfhocail choitianta. Is féidir leat ilbhailíochtóirí a chur le chéile, agus tá roghanna cumraíochta saincheaptha ag roinnt bailíochtóirí. Mar shampla, is féidir leat a roghnú liosta saincheaptha de phasfhocail choitianta a sholáthar. Soláthraíonn gach bailíochtóir téacs cabhrach chun a riachtanais a mhíniú don úsáideoir.

De réir réamhshocraithe, ní dhéantar aon bhailíochtú agus glactar leis na pasfhocail go léir, mar sin mura socraíonn tú: setting: AUTH\_PASSWORD\_VALIDATORS, ní fheicfidh tú aon athrú. I dtionscadail nua a cruthaíodh leis an teimpléad réamhshocraithe: djadmin: startproject, cumasaítear tacar simplí bailíochtóirí. Chun bailíochtú bunúsach a chumasú sna foirmeacha auth san áireamh do do thionscadal, d'fhéadfá a shocrú, mar shampla:

```
AUTH_PASSWORD_VALIDATORS = [
    {
        "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator",
    },
    {
        "NAME": "django.contrib.auth.password_validation.MinimumLengthValidator",
    },
    {
        "NAME": "django.contrib.auth.password_validation.CommonPasswordValidator",
    },
    {
        "NAME": "django.contrib.auth.password_validation.NumericPasswordValidator",
    },
]
```

Féach:ref: bailíochtú pasfhocal le haghaidh tuilleadh sonraí.

### Meascáin ceadúnais le haghaidh tuairimí rang-bhunaithe

Seolann Django anois leis na meascáin: class: ~django.contrib.auth.mixins.accessMixin, :class: ~django.contrib.auth.mixins.loginrequiredMixin, :class: ~django.contrib.auth.mixins.permissionrequiredMixin, agus:class: ~django.contrib.contrib.Mixins.userPassestestMixin chun feidhmiúlacht an django.contrib.auth.decorators a sholáthar le haghaidh tuairimí rang-bhunaithe. Tógadh na meascáin seo ón tionscadal [django-braces](https://django-braces.readthedocs.io/en/latest/index.html), nó spreagtar iad ar a laghad.

Tá cúpla difríocht idir cur i bhfeidhm Django agus django-braces ', áfach:

- Ní féidir an tréith: Attr: ~django.contrib.auth.mixins.accessMixin.raise\_exception a bheith ach `True` nó `False`. Ní thacaítear le heisceachtaí saincheaptha nó glaonna.
- Ní ghlacann an modh:Meth: ~django.contrib.auth.mixins.accessMixin.handle\_no\_permission argóint ```iarraidh`. Tá an t-iarratas reatha ar fáil in ``self.request```.
- Ní ghlacann an saincheaptha ```test_func () ``o:class: `~django.contrib.auth.mixins.userPassestestMixin` argóint ``úsáideora```. Tá an t-úsáideoir reatha ar fáil in `self.request.user`.
- Tacaíonn an tréith: attr: permission\_required \<django.contrib.auth.mixins.PermissionRequiredMixin\>\`le sreang (cead amháin a shainmhíníonn) nó le liosta/tiúpla teaghráin (ceadanna iolracha a shainiú) nach mór a chomhlíonadh chun rochtain a dheonú.
- Ceadaíonn an tréith nua:attr: ~django.contrib.auth.mixins.accessmixin.permission\_denied\_message teachtaireacht a chur chuig an eisceacht `PermissionDenied`.

### Stíl nua do `contrib.admin`

Spóirt an riarthóir dearadh nua-aimseartha, cothrom le deilbhíní SVG nua a bhreathnaíonn foirfe ar scáileáin HiDPI. Soláthraíonn sé eispéireas lánfheidhmeach fós do bhrabhsálaithe [YUI A-grád](https://github.com/yui/yui3/wiki/Graded-Browser-Support). D’fhéadfadh leibhéil éagsúla díghrádaithe a bheith ag brabhsálaithe níos sine.

### Tástálacha reatha go comhthreomhar

Tacaíonn an t-ordú: DjaDmin: tástála anois le rogha a: --comhthreomhar chun tástálacha tionscadail a reáchtáil i bpró \<test --parallel\>isis iolracha go comhthreomhar.

Faigheann gach próiseas a bhunachar sonraí féin. Ní mór duit a chinntiú nach bhfuil rochtain ag cásanna tástála éagsúla ar na hacmhainní céanna Mar shampla, ba cheart do chásanna tástála a théann i dteagmháil leis an gcóras comhaid eolaire sealadach a chruthú lena n-úsáid féin.

Tá an rogha seo cumasaithe de réir réamhshocraithe do shraith tástála Django féin ar fáil:

- tacaíonn an OS leis (gach ceann ach Windows)
- tacaíonn cúltaca an bhunachar sonraí leis (na cúltaca ionsuite go léir ach Oracle)

### Mionghnéithe

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

- Tá tréithe ```model_admin ``nó ``admin_site``` ag tuairimí riaracháin anois.
- \<app\>\<model\>\<pk\>Athraíodh URL an radharc athraithe riaracháin (bhí sé ag `/admin//<app>//` de réir réamh \<model\>\<pk\>shocraithe agus tá sé anois ag /admin///change/ ). Níor cheart go ndéanfadh sé seo difear d'iarratas mura bhfuil URLanna riaracháin crua-chódaithe agat. \<admin-reverse-urls\>Sa chás sin, cuir na naisc sin in ionad: ref: URLanna riaracháin a aisiompú ina ionad sin. Tabhair faoi deara go n-atreoraíonn an sean-URL go dtí an ceann nua fós le haghaidh comhoiriúnacht ar ais, ach féadfar é a bhaint i leagan amach anseo.
- [`ModelAdmin.get_list_select_related()`](/ga/6.0/ref/contrib/admin/#django.contrib.admin.ModelAdmin.get_list_select_related) was added to allow
  changing the `select_related()` values used in the admin's changelist query
  based on the request.
- \<django.contrib.admin.AdminSite.each\_context\>Cuireadh an t-athróg comhthéacs available\_apps\`, a liostaíonn na feidhmchláir atá ar fáil don úsáideoir reatha, leis an modh: meth: adminsite.each\_context () .
- \<django.contrib.admin.ModelAdmin.empty\_value\_display\>:attr: Adminsite.empty\_value\_display \`agus:attr: \<django.contrib.admin.AdminSite.empty\_value\_display\>\`ModelAdmin.empty\_value\_display cuireadh leis chun taispeáint luachanna folmha i liosta athruithe riaracháin a shárú. Is féidir leat an luach do gach réimse a shaincheapadh freisin.
- Cuireadh imeachtaí jQuery leis: ref: nuair a chuirtear foirm inlíne leis nó baintear \<admin-javascript-inline-form-events\>\`ar an leathanach foirm athraithe.
- Cuimsíonn an giuirléid roghnaithe ama rogha '6 p.m' chun comhsheasmhainneacht roghanna réamhshainithe a bheith agat gach 6 uair an chloig.
- Tacaíonn giniúint slug JavaScript anois le carachtair na Rómáine.

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

- Déanann an chuid samhail den admindocs cur síos anois ar mhodhanna a thógann argóintí, seachas neamhaird a dhéanamh orthu.

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

- Méadaíodh 20% an líon athraithe réamhshocraithe don hasher pasfhocal PBKDF2. Ní dhéanfaidh an t-athrú comhoiriúnach ar chúl difear d'úsáideoirí a bhfuil fo-aicmithe ag `Django.contrib.auth.hashers.pbkdf2PasswordHasher` chun an luach réamhshocraithe a athrú.
- Déanfaidh an BCryptsha256PasswordHasher\` pasfhocail a nuashonrú anois má athraítear a thréith rounds\`.
- Bogadh `AbstractBaseUser` agus `BaseUserManager` chuig modúl nua `django.contrib.auth.base_user` ionas gur féidir iad a allmhairiú gan `django.contrib.auth` a chur san áireamh in:setting: INSTALLED\_APPS (ag déanamh amhlaidh rabhadh i leaganacha níos sine agus ní thacaíonn sé i Django 1.9).
- The permission argument of
  [`permission_required()`](/ga/6.0/topics/auth/default/#django.contrib.auth.decorators.permission_required) accepts all
  kinds of iterables, not only list and tuples.
- De bharr nua:class: ~django.contrib.auth.middleware.persistentRemoteUserMiddleware is féidir `REMOTE_USER` a úsáid le haghaidh socruithe nach bhfuil an ceannteideal ach ar leathanaigh logála isteach in ionad gach iarratas sa seisiún.
- Glacann an radharc ```django.contrib.auth.views.password_reset () ``le paraiméadar ``extra_email_context```.

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

- Is féidir anois: attr: ~django.db.models.options.ORDER\_with\_RESPECT\_TO a úsáid le `GenericForeignKey`.

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

- Tá gach modh `GeoquerySet` a dhíscríobh agus cuireadh: doc: feidhmeanna bunachar sonraí coibhéiseach 'ina ionad. \</ref/contrib/gis/functions\> Chomh luath agus a cuirtear na modhanna oidhreachta in ionad i do chód, ba cheart go mbeadh tú in ann an “Geomanager” speisialta a bhaint as do ranganna cumasaithe GIS fiú.
- \<raster-data-source-objects\>Tacaíonn an comhéadan GDAL anois le comhadbhunaithe agus in-chuimhne:ref: rudaí GDAlraster ó shonraí amh. Cuireadh socraithe le haghaidh airíonna raster cosúil le luachanna teilgean nó picteilín.
- \<creating-and-saving-raster-models\>Maidir le húsáideoirí PostGIS, ceadaíonn an nua:class: ~django.contrib.gis.db.models.rasterfield: ref: rudaí GDAlraster a stóráil . Tacaíonn sé le cruthú innéacs spásúil uathoibríoch agus athléiriú nuair a shábháil Ní thacaíonn sé le fiosrúchán spásúil fós.
- Ligeann an \<django.contrib.gis.gdal.GDALRaster.warp\>modh nua:meth: gdalraster.warp () raster a chreamú trí airíonna raster sprioc-raster a shonrú mar bhunús, leithead, airde nó méid picteilín (i measc eile).
- Ligeann an modh nua:meth: gdalraster.transformer () \<django.contrib.gis.gdal.GDALRaster.transform\>\`raster a athrú go córas tagartha spásúil difriúil trí sprioc \`\`srid\` a shonrú.
- Ceadaíonn an rang nua:class: ~django.contrib.gis.geoip2.geoip2 bunachair sonraí GeoLite2 MaxMind a úsáid a chuimsíonn tacaíocht do sheoltaí IPv6.
- Nuashonraíodh an leagan réamhshocraithe leabharlainne OpenLayers atá san áireamh i giuirléidí ó 2.13 go 2.13.1.

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

- Tacaíocht bhreise don chuardach: lookup: rangefield.contained\_by do roinnt réimsí tógtha i réimsí a fhreagraíonn do na réimsí raon.
- Cuireadh `django.contrib.postgres.fields.jsonfield` leis.
- Cuireadh leis: doc: /ref/contrib/postgres/aggregates.
- Cuireadh feidhm bunachar sonraí: class: ~django.contrib.postgres.functions.TransactionNow leis.

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

- Athraítear an tsamhail seisiúin agus na ranganna `SessionStore` do na cúltaca `db` agus cached\_db\` chun ligean cúltaca seisiúin bunachar sonraí saincheaptha tógáil orthu. Féach: Ref: extending-database-backed-seision-inneallaire le haghaidh tuilleadh sonraí.

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

- [`get_current_site()`](/ga/6.0/ref/contrib/sites/#django.contrib.sites.shortcuts.get_current_site) now handles the case
  where `request.get_host()` returns `domain:port`, e.g.
  `example.com:80`. If the lookup fails because the host does not match a
  record in the database and the host has a port, the port is stripped and the
  lookup is retried with the domain part only.

#### [`django.contrib.syndication`](/ga/6.0/ref/contrib/syndication/#module-django.contrib.syndication)

- Cuireadh tacaíocht le haghaidh iolracha iolracha in aghaidh an earra beatha. Má shainmhínítear iolrghabhálacha ar fhotha RSS, ardaítear eisceacht mar ní thacaíonn fothaí RSS, murab ionann agus fothaí Atom, le iolracha iolracha in aghaidh an earra beatha.

#### Cache

- Tá modh ```get_or_set () ``anois ag `django.core.cache.backends.base.baseCache```.
- [`django.views.decorators.cache.never_cache()`](/ga/6.0/topics/http/decorators/#django.views.decorators.cache.never_cache) now sends more persuasive
  headers (added `no-cache, no-store, must-revalidate` to `Cache-Control`)
  to better prevent caching. This was also added in Django 1.8.8.

#### CSRF

- Is féidir ainm ceanntásc an iarratais a úsáidtear le haghaidh fíordheimhniú CSRF a shaincheapadh la:setting: CSRF\_HEADER\_NAME.
- Tá ceanntásc tagairtí CSRF bailíochtaithe anois i gcoinne an socruithe:: CSRF\_COOKIE\_DOMAIN má tá sé socraithe. Féach: ref: how csrf-works le haghaidh sonraí.
- Soláthraíonn an socrú nua:setting: CSRF\_TRUSTED\_ORIGINS bealach chun iarratais neamhshábháilte tras-bhunús (m.sh. POST \`) a cheadú thar HTTPS.

#### Cúltaca bunachar sonraí

- Tá an cúltaca PostgreSQL (`django.db.backends.postgresql_psycopg2`) ar fáil freisin mar `django.db.backends.postgresql`. Leanfaidh an sean-ainm ar fáil le haghaidh comhoiriúnacht ar ais.

#### Stóráil Comhad

- [`Storage.get_valid_name()`](/ga/6.0/ref/files/storage/#django.core.files.storage.Storage.get_valid_name) is now called when
  the [`upload_to`](/ga/6.0/ref/models/fields/#django.db.models.FileField.upload_to) is a callable.
- [`File`](/ga/6.0/ref/files/file/#django.core.files.File) now has the `seekable()` method when using
  Python 3.

#### Foirmeacha

- [`ModelForm`](/ga/6.0/topics/forms/modelforms/#django.forms.ModelForm) accepts the new `Meta` option
  `field_classes` to customize the type of the fields. See
  [Sárú ar na réimsí réamhshocraithe](/ga/6.0/topics/forms/modelforms/#modelforms-overriding-default-fields) for details.
- Is féidir leat anois an t-ord ina ndéantar réimsí foirme a shonrú leis an tréith: attr: ~django.forms.form.field\_order, an t-argóint tógálaí `field_order`, nó an modh:meth: ~django.forms.form.ORDER\_fields.
- Is féidir réimír foirme a shonrú taobh istigh de rang foirme, ní amháin nuair a bhíonn foirm á chur i bhfeidhm. Féach: ref: form-prefix le haghaidh sonraí.
- Is féidir leat anois:ref: argóintí eochairfhocal a shonrú \<custom-formset-form-kwargs\>\`a theastaíonn uait a chur chuig tógálaí foirmeacha i bhfoirmeach.
- [`SlugField`](/ga/6.0/ref/forms/fields/#django.forms.SlugField) now accepts an
  [`allow_unicode`](/ga/6.0/ref/forms/fields/#django.forms.SlugField.allow_unicode) argument to allow Unicode
  characters in slugs.
- [`CharField`](/ga/6.0/ref/forms/fields/#django.forms.CharField) now accepts a
  [`strip`](/ga/6.0/ref/forms/fields/#django.forms.CharField.strip) argument to strip input data of leading
  and trailing whitespace. As this defaults to `True` this is different
  behavior from previous releases.
- Tacaíonn réimsí foirme anois leis an argóint: attr: ~django.forms.field.disabled, rud a ligeann an giuirléid réimse a thaispeáint faoi dhíchumasú ag brabhsálaithe.
- It's now possible to customize bound fields by overriding a field's
  [`get_bound_field()`](/ga/6.0/ref/forms/fields/#django.forms.Field.get_bound_field) method.

#### Tuairimí cineálacha

- Tá tréithe `view_class` agus view\_initkwargs\` anois ag tuairimí rang-bhunaithe a ghintear ag baint úsáide as as\_view () .
- [`method_decorator()`](/ga/6.0/ref/utils/#django.utils.decorators.method_decorator) can now be used with a list
  or tuple of decorators. It can also be used to [decorate classes instead
  of methods](/ga/6.0/topics/class-based-views/intro/#id1).

#### Idirnáisiúnú

- \<url-internationalization\>Atreoraíonn an amharc:func: django.views.i18n.set\_language i gceart anois chuig:ref: URLanna aistrithe , nuair atá ar fáil.
- Oibríonn an radharc django.views.i18n.javascript\_catalog () i gceart anois má úsáidtear é arís agus arís eile le cumraíochtaí éagsúla ar an leathanach céanna.
- Fuair an fheidhm:func: django.utils.timezone.make\_aware argóint `is_dst` chun cabhrú le hamanna débhríochta a réiteach le linn aistrithe DST.
- Is féidir leat leaganacha áitiúla a úsáid anois le tacaíocht ó gettext. Úsáidtear iad seo de ghnáth le haghaidh teangacha is féidir iad a scríobh i scripteanna éagsúla, mar shampla Laidin agus Cirillic (m.sh. be @latin \`).
- Cuireadh an dearcadh django.views.i18n.json\_catalog () leis chun cabhrú le leabharlann saincheaptha i18n ar thaobh an chliaint a thógáil ar aistriúcháin Django. Tugann sé réad JSON ar ais ina bhfuil catalóg aistriúcháin, socruithe formáidithe, agus riail iolra.
- Cuireadh an tréith `name_translated` leis an réad ar ais ag an gclib teimpléad:ttag: get\_language\_info. Chuir scagaire teimpléad comhfhreagrach leis freisin: :tfilter: language\_name\_translated.
- Is féidir leat anois: djadmin: compilemessages a rith ó eolaire fréimhe do thionscadail agus gheobhaidh sé na comhaid teachtaireachta aip go léir a chruthaigh: djadmin: makemessages.
- [`makemessages`](/ga/6.0/ref/django-admin/#django-admin-makemessages) now calls `xgettext` once per locale directory
  rather than once per translatable file. This speeds up localization builds.
- [`blocktrans`](/ga/6.0/topics/i18n/translation/#std-templatetag-blocktrans) supports assigning its output to a variable using
  `asvar`.
- Tá dhá theanga nua ar fáil: Spáinnis na Colóime agus Gaeilge na hAlban.

#### Orduithe Bainistíochta

- Ligeann an t-ordú nua:djadmin: sendtestemail duit ríomhphost tástála a sheoladh chun a dhearbhú go héasca go bhfuil seoladh ríomhphoist trí Django ag obair.
- Chun inléiteacht an chóid SQL a ghineann: djadmin: sqlmigrate a mhéadú, cuirtear tuairisc na hoibríochta roimh an gcód SQL a ghintear do gach oibríocht imirce.
- Tá an t-aschur ordaithe: DJAdmin: dumpdata ordaithe go cinntiúil anois. Thairis sin, nuair a shonraítear an rogha --aschur , taispeánann sé barra dul chun cinn sa chríochfort freisin.
- Tá bratach `--dry-run` anois ag an ordú: DjaDmin: createcachetable chun an SQL a phriontáil amach seachas é a fhorghníomhú.
- Cruthaíonn an t-ordú:djaDmin: startapp comhad `apps.py`. Ós rud é nach n-úsáideann sé `default_app_config` (:ref: a dhíspreagtha API \`\<configuring-applications-ref\>), ní mór duit cosán cumraíocht an aip a shonrú, m.sh. \`\`Polls.apps.pollsconfig', in:setting: INSTALLED\_APPS chun é a úsáid (in ionad `polls'` amháin).
- Agus cúltaca PostgreSQL á úsáid agat, is féidir leis an ordú:djadmin: dbshell nascadh leis an mbunachar sonraí ag baint úsáide as an bhfocal faire ó do chomhad socruithe (in ionad a cheangal go ndéanfar é a iontráil de láimh).
- Is féidir an pacáiste `django` a reáchtáil mar script, ie `python -m django`, a iompraíonn mar an gcéanna le `django-admin`.
- Glacann orduithe bainistíochta a bhfuil an rogha `--noinput` acu anois `--no-input` mar ainm don rogha sin.

#### Imirce

- Tá imirce tosaigh marcáilte anois le tréith \<django.db.migrations.Migration.initial\>aicme: attr: inicial = True \`a cheadaíonn: rogha: \`migrar --fake-initial chun imirce tosaigh a bhrath níos éasca.
- Tacaíocht bhreise le haghaidh sraitheadh cásanna `functools.partial` agus `LazyObject`.
- Agus “None” á sholáthar agat mar luach in:setting: MIGRATION\_MODULES, measfaidh Django an aip mar aip gan imirce.
- Agus imirce á chur i bhfeidhm, ní ríomhaíonn an chéim “Stáit samhail rindreála” a thaispeántar agus imirce á reáchtáil le verbosity 2 nó níos airde anois ach na stáit do na himirce a cuireadh i bhfeidhm cheana féin. Gintear na stáit samhail maidir le himirce atá á chur i bhfeidhm ar éileamh, ag laghdú go suntasach an méid cuimhne riachtanach.

  Mar sin féin, níl an feabhas seo ar fáil nuair nach gcuirtear i bhfeidhm imirce agus mar sin tá gá fós le réamh-ríomh agus stóráil na stáit imirce idirmheánacha.

  Éilíonn an feabhsú seo freisin nach dtacaíonn Django le pleananna imirce measctha a thuilleadh. Is éard atá i bpleananna measctha liosta aistrithe a bhfuil cuid acu á gcur i bhfeidhm agus cinn eile nach bhfuil á gcur i bhfeidhm. Níor tugadh tacaíocht oifigiúil riamh dó seo agus ní raibh API poiblí ann riamh a thacaíonn leis an iompar seo.
- Tacaíonn an t-ordú: Djadmin: squashmigrations anois leis an imirce tosaigh a shonrú óna ndéanfar imirce a scriosadh.

#### Samhla

- \<django.db.models.query.QuerySet.bulk\_create\>: meth: QuerySet.bulk\_create () oibríonn anois ar mhúnlaí seachfhreastalaí.
- Fuair cumraíocht bunachar sonraí a: leagan: TIME\_ZONE \<DATABASE-TIME\_ZONE\>\`rogha chun idirghníomhú le bunachair sonraí a stóráilíonn amanna dáta in am áitiúil agus nach dtacaíonn le criosanna ama nuai:socrú: \`USE\_TZ `True`.
- Chuir an modh: meth: RelatedManager.set () leis na bainisteoirí gaolmhara a chruthaigh \`\`ForeignKey\`, GenericForeignKey\`, \<django.db.models.fields.related.RelatedManager.set () \> agus `ManyTomanyField`.
- Tá paraiméadar `bulk` ag an modh: Meth: ~Django.DB.Models.Fields.Related.RelatedManager.Add ar eochair eachtrach droim ar ais anois chun ceist amháin a fhorghníomhú beag beann ar líon na rudaí atá á chur leis seachas ceist amháin in aghaidh an rud.
- Cuireadh an paraiméadar `keep_parents` chuig: meth: Model.delete () \<django.db.models.Model.delete\>\`chun sonraí linbh a scriosadh amháin i samhail a úsáideann oidhreacht il-tábla.
- \<django.db.models.query.QuerySet.delete\>:meth: Model.delete () \`agus:meth: \<django.db.models.Model.delete\>\`QuerySet.delete () cuir ar ais líon na rudaí a scriosadh.
- Cuireadh seiceáil córais leis chun cosc a chur ar `Meta.Ordering` agus `order_with_respect_to` araon a shainiú ar an tsamhail chéanna.
- [`Date and time`](/ga/6.0/ref/models/querysets/#std-fieldlookup-year) lookups can be chained with other lookups
  (such as [`exact`](/ga/6.0/ref/models/querysets/#std-fieldlookup-exact), [`gt`](/ga/6.0/ref/models/querysets/#std-fieldlookup-gt), [`lt`](/ga/6.0/ref/models/querysets/#std-fieldlookup-lt), etc.). For example:
  `Entry.objects.filter(pub_date__month__gt=6)`.
- Tacaíonn le cuardaigh ama (uair an chloig, nóiméad, dara) anois ó:class: ~django.db.models.timefield do gach cúltaca bunachar sonraí. Cuireadh tacaíocht do chúltaca seachas SQLite leis ach gan doiciméadú i Django 1.7.
- Is féidir leat an paraiméadar `output_field` den chomhiomlán: class: ~django.db.models.avg a shonrú d'fhonn comhiomlán a chomhiomlánú thar cholúin neamh-uimhriúla, mar shampla `DurationField`.
- Cuireadh an cuardach: lookup: dáta chuig:: class: ~django.db.models.DateTimeField chun cead a dhéanamh ar an réimse a fhiosrú faoin gcuid dáta amháin.
- Cuireadh feidhmeanna bunachar sonraí:: class: ~django.db.models.functions.greatest agus:class: ~django.db.models.functions.least leis.
- Cuireadh feidhm bunachar sonraí: class: ~django.db.models.functions.now leis, a thugann an dáta agus an t-am reatha ar ais.
- [`Transform`](/ga/6.0/ref/models/lookups/#django.db.models.Transform) is now a subclass of
  [Func()](/ga/6.0/ref/models/expressions/#func-expressions) which allows `Transform`s to be used on
  the right hand side of an expression, just like regular `Func`s. This
  allows registering some database functions like
  [`Length`](/ga/6.0/ref/models/database-functions/#django.db.models.functions.Length),
  [`Lower`](/ga/6.0/ref/models/database-functions/#django.db.models.functions.Lower), and
  [`Upper`](/ga/6.0/ref/models/database-functions/#django.db.models.functions.Upper) as transforms.
- [`SlugField`](/ga/6.0/ref/models/fields/#django.db.models.SlugField) now accepts an
  [`allow_unicode`](/ga/6.0/ref/models/fields/#django.db.models.SlugField.allow_unicode) argument to allow Unicode
  characters in slugs.
- Tacaíocht bhreise chun anótaí a thagairt i QuerySet.Distinct () .
- Taispeánann `connection.queries` ceisteanna le paraiméadair ionadaithe ar SQLite.
- [Query expressions](/ga/6.0/ref/models/expressions/) can now be used when
  creating new model instances using `save()`, `create()`, and
  `bulk_create()`.

#### Iarrataí agus Freagraí

- \<django.http.HttpResponse.status\_code\>Unless:attr: Tá HttpResponse.Reason\_frase \<django.http.HttpResponse.reason\_phrase\>\`socraithe go sainráite, socraítear é anois ag an luach reatha de:attr: \`HttpResponse.STATUS\_CODE. Athrófar luach `status_code` lasmuigh den tógálaí luach `réasúna_frase` freisin.
- Taispeánann an dearcadh dífhabhtaithe sonraí faoi eisceachtaí slabhraithe ar Python 3 anois.
- Glacann na tuairimí earráide réamhshocraithe 40x leis an dara paraiméadar suímh anois, an eisceacht a spreag an radharc.
- Tacaíonn láimhseálaithe earráide féach anois:class: ~django.template.response.templateResponse, a úsáidtear go coitianta le tuairimí rang-bhunaithe.
- Cuirtear eisceachtaí a ardaítear leis an modh ```render () ``anois chuig modh ``process_exception ()``` de gach middleware.
- Is féidir iarratas a dhéanamh anois:attr: HttpRequest.urlconf \<django.http.HttpRequest.urlconf\>\`go \`\`None\` chun aon athruithe a rinne middleware roimhe seo a chur ar ais agus filleadh ar an: setting: ROOT\_URLCONF a úsáid.
- Ardaíonn an seiceála:SETTING: DISALLOWED\_USER\_AGENTS eisceacht in:class: ~django.middleware.commonMiddleware anois: a:class: ~django.core.exceptions.permissiondenied seachas filleadh ara:class: ~django.http.http.httpresponsedden ionas ionas go ndéan:data: ~django.conf.forbid.conf.Iarraítear ar .urls.handler403.
- \<django.http.HttpRequest.get\_port\>Cuireadh leis: Meth: HttpRequest.get\_port () chun calafort tionscnaimh an iarratais a fháil.
- Cuireadh an paraiméadar `json_dumps_params` chuig: class: ~django.http.jsonResponse chun argóintí eochairfhocal a chur chuig an nglao json.dumps () a úsáidtear chun an freagra a ghiniúint.
- Déanann an [`BrokenLinkEmailsMiddleware`](/ga/6.0/ref/middleware/#django.middleware.common.BrokenLinkEmailsMiddleware) neamhaird anois ar 404anna nuair a bhíonn an moltóir cothrom leis an URL iarrtha. Chun dul timpeall ar an tseiceáil atreoraithe folamh a cuireadh i bhfeidhm cheana féin, shocraigh roinnt róbónna gréasáin an tagróir chuig an URL iarrtha.

#### Teimpléid

- Is féidir le clibeanna teimpléad a cruthaíodh leis an gcúntóir: meth: ~django.template.library.simple\_tag torthaí a stóráil anois in athróg teimpléad tríd an argóint as a úsáid.
- \<django.template.Context.setdefault\>Cuireadh: meth leis: Context.setDefault () modh.
- Cuireadh \<django-template-logger\>logger:ref: django.template leis agus tá na teachtaireachtaí seo a leanas ann:

  - Teachtaireacht leibhéal DEBUG\` le haghaidh athróga comhthéacs atá in easnamh.
  - Teachtaireacht leibhéal RABHADH \`\`d'eisceachtaí gan ghabháil a ardaíodh le linn rindreáil\` {% include%} `nuair a bhíonn modh dífhabhtaithe as (cabhrach ós rud é go gcuireann` {% include%} an eisceacht a thostaíonn agus cuireann sé sreang folamh ar ais).
- Tacaíonn an chlib teimpléad: ttag: firstof leis an aschur a stóráil in athróg ag baint úsáide as 'as'.
- [`Context.update()`](/ga/6.0/ref/templates/api/#django.template.Context.update) can now be used as
  a context manager.
- Is féidir le lódóirí teimpléid Django teimpléid a shíneadh go hathchúrsach anois.
- Cuimsíonn an teimpléad leathanaigh dífhabhtaithe post mortem anois aschur ó gach inneall atá suiteáilte.
- [Debug page integration](/ga/6.0/howto/custom-template-backend/#template-debug-integration) for custom
  template engines was added.
- \<TEMPLATES-OPTIONS\>Fuair an cúltaca: Class: ~django.template.backends.django.djangoTemplates an cumas leabharlanna agus tógáin a chlárú go sainráite tríd an teimpléad:setting: OPTIONS .
- Feabhsaíodh na scagairí `timesince` agus `timeuntil` chun déileáil le blianta léim nuair a thugtar spaitheanna móra ama.
- Déanann an chlib san áireamh rudaí teimpléid pháirseáilte anois le linn rindreála teimpléid, ag luasú athúsáide in áiteanna mar lúb.

#### Tástálacha

- Cuireadh an modh: meth: json () \<django.test.Response.json\>\`leis chun freagraí cliant a thástáil chun rochtain a thabhairt ar an gcomhlacht freagartha mar JSON.
- Added the [`force_login()`](/ga/6.0/topics/testing/tools/#django.test.Client.force_login) method to the test
  client. Use this method to simulate the effect of a user logging into the
  site while skipping the authentication and verification steps of
  [`login()`](/ga/6.0/topics/testing/tools/#django.test.Client.login).

#### URLanna

- Ceadaítear dearbhú rialta breatharound abairt anois i bpatrúin URL.
- Is féidir spás ainmneacha an fheidhmchláir a shocrú anois ag baint úsáide as tréith `app_name` ar an modúl nó an réad san áireamh. Is féidir é a shocrú freisin trí dhá thúpla de (\<list of patterns\>,\<application namespace\>) a rith mar an chéad argóint chun include () .
- Cuireadh seiceálacha córais le haghaidh botúin patrún URL coitianta.

#### Bailíochtóirí

- Cuireadh leis: func: django.core.validators.int\_list\_validator chun bailíochtóirí teaghráin a ghiniúint ina bhfuil sláimhreacha scartha le carachtar saincheaptha.
- [`EmailValidator`](/ga/6.0/ref/validators/#django.core.validators.EmailValidator) now limits the length of
  domain name labels to 63 characters per [**RFC 1034**](https://datatracker.ietf.org/doc/html/rfc1034.html).
- Cuireadh leis: func: ~django.core.validators.validate\_unicode\_slug chun slugs a bhféadfadh carachtair Unicode a bheith ina mbailíochtú.

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

> **Warning**
>
> Chomh maith leis na hathruithe a leagtar amach sa chuid seo, déan cinnte athbhreithniú a dhéanamh ar:ref: removed-features-1.9 do na gnéithe a shroich deireadh a dtimthriall díghabhála agus dá bhrí sin baineadh. Mura ndearna tú do chód a nuashonrú laistigh den amlíne díscoilte do ghné ar leith, d'fhéadfadh go mbeadh a bhaint mar athrú neamh-chomhoiriúnach ar chúl.

### API cúltaca bunachar sonraí

- Braitheann cúpla tástáil nua ar chumas an chúltaca réamhshocruithe colún a ionchur (an toradh a thabhairt ar ais mar Field.default'). Is féidir leat an ghné bunachar sonraí \`\`can\_introspect\_default\` a shocrú go `False` mura gcuireann do chúltaca seo i bhfeidhm. B'fhéidir gur mhaith leat athbhreithniú a dhéanamh ar an gcur chun feidhme ar na cúltaca a chuimsíonn Django le haghaidh tagartha (:ticket: 24245 ).
- Cuirtear cuibheoir nó tiontaire domhanda a chlárú ag leibhéal an mhodúil DB-API chun faisnéis chrios ama a láimhseáil de:class: ~datetime.datetime luachanna a rith mar pharaiméadair cheisteanna nó a chuirtear ar ais mar thorthaí fiosrúcháin ar bhunachar sonraí nach dtacaíonn le criosanna ama. Féadann sé coinbhleacht le leabharlanna eile.

  Is é an bealach a mholtar chun crios ama a chur chuig:class: ~datetime.datetime luachanna a fhaightear ón mbunachar sonraí ná tiontaire a chlárú do DateTimeField\` i DatabaseOperations.get\_DB\_Converters () \`.

  Baineadh an ghné bunachar sonraí needs\_datetime\_string\_cast\`. Caithfidh cúltaca bunachar sonraí a leagann sé tiontaire a chlárú ina ionad sin, mar a mhínítear thuas.
- \<type\>\<type\>Athainmníodh na modhanna ```databaseOperations.value_to_db_ <type>() ``go ``adapt_ field_value ()``` chun na modhanna  field\_value () a scáthú.
- Chun an cuardach nua ```dáta ``a úsáid, b'fhéidir go mbeidh ar chúltaca bunachar sonraí tríú páirtí an modh``` DatabaseOperations.DateTime\_Cast\_Date\_SQL () a chur i bhfeidhm.
- Cuireadh an modh `DatabaseOperations.TIME_EXTRACT_SQL ()` leis. Glaonn sé an modh date\_extract\_sql () atá ann cheana. Cuireann an cúltaca SQLite ar an modh seo chun cuardaigh ama (uair an chloig, nóiméad, dara) a chur chuig: class: \`~Django.db.Models.TimeField, agus d'fhéadfadh go mbeadh gá le cúltaca bunachar sonraí tríú páirtí uaidh.
- Tá an modh ``DatabaseOperations.DateTime_Cast_SQL () `(gan a mheascadh le`` DatabaseOperations.DateTime\_Cast\_Date\_SQL ()\` luaitear thuas) baineadh. D'fhreastail an modh seo chun dátaí a fhormáidiú ar Oracle i bhfad roimh 1.0, ach níor sháraigh aon chúltaca croí é le blianta agus níor ghlaoigh sé áit ar bith i gcód nó i dtástálacha Django.
- D'fhonn tacú le comhthreomhaíocht tástála, ní mór duit an ```DatabaseCreation a chur i bhfeidhm. Modh _clone_test_db () ``agus socraigh ``databaseFeatures.can_Clone_Databases = True```. B'fhéidir go mbeidh ort `Databasecreation.get_test_db_clone_settings ()` a choigeartú.

### Is liostaí anois iad socruithe réamhshocraithe a bhí ina tuples

Ba iad na socruithe réamhshocraithe i django.conf.global\_settings\` meascán de liostaí agus tuples. Is liostaí anois iad na socruithe go léir a bhí tuples roimhe seo.

### Baintear tréith `is_usable` ar luchtaitheoirí teimpléad

D'éilíodh luchtóirí teimpléad Django roimhe seo tréith `is_usable` a shainiú. Dá mbeadh lódóir cumraithe i socruithe na teimpléid agus dá mbeadh an tréith seo False\`, déanfaí neamhaird ar an lódóir go ciúin. Go praiticiúil, níor úsáid an lódóir uibheacha é seo ach chun a bhrath an raibh “setuptools” suiteáilte. Baintear an tréith `is_usable` anois agus ina ionad sin teipeann ar an lódóir uibheacha ag am rith mura bhfuil setuptools suiteáilte.

### Socrú díreach gaolmhar

Sannadh díreach rudaí gaolmhara san ORM a úsáidtear chun ```clear () ``a dhéanamh ina dhiaidh sin glao ar ``add ()```. Ba chúis leis seo athruithe móra sonraí gan ghá agus chuir sé cosc ar an gcomhartha: data: ~django.db.models.signals.m2m\_changed a úsáid chun athruithe aonair i gcaidreamh go leor a rianú.

Braitheann sannadh díreach anois ar an modh nua:meth: ~django.db.models.fields.related.relatedManager.set ar bhainisteoirí gaolmhara nach ndéanann ach athruithe a phróiseáil de réir réamhshocraithe idir an tacar gaolmhar atá ann cheana agus an ceann atá nua-shannta. Is féidir an t-iompar roimhe seo a athbhunú trí shannadh díreach a athsholáthar trí ghlao chuig set () \`\`leis an argóint eochairfhocal \`\`Clear=True\`.

Tá ModelForm”, agus dá bhrí sin ModelAdmin\`, ag brath go hinmheánach ar shannadh díreach le haghaidh caidrimh go leor agus mar thoradh air sin bain úsáid as an iompar nua anois.

### Glacann lódálaithe teimpléad bunaithe ar chóras comhaid eisceachtaí níos sonracha

Agus luchtóirí teimpléad:class: FileSystem.loader \<django.template.loaders.filesystem.Loader\>\`nó:class: \`App\_Directories.Loader á úsáid\<django.template.loaders.app\_directories.Loader\>, d'ardaigh leaganacha níos luaithe de Django earráid a:exc: ~django.template.templateDoesNotExist má bhí foinse teimpléad ann ach nach raibh sé inléite. D'fhéadfadh sé seo tarlú faoi go leor imthosca, mar shampla mura raibh ceadanna ag Django chun an comhad a oscailt, nó más eolaire é foinse an teimpléid. Anois, ní thostaíonn Django ach an eisceacht mura bhfuil an fhoinse teimpléid ann. Mar thoradh ar gach cás eile go n-ardaítear an Ioerror\` bunaidh.

### Ní chuirtear iallach ar atreoruithe HTTP a thuilleadh chuig URIanna

Ní thiontaítear atreoruithe coibhneasta go URIs iomlána a thuilleadh. :rfc: D'éilíonn 2616 go mbeadh an ceannteideal ```Suíomh ``i bhfreagraí atreoraithe ina URI iomlán, ach cuireadh in ionad aith:rfc: `7231` a cheadaíonn URIs coibhneasta i ``Suíomh```, ag aithint cleachtas iarbhír gníomhairí úsáideora, a thacaíonn beagnach gach ceann acu leo.

Dá bhrí sin, níor cheart go ginearálta go n-áireofaí sna URLanna ionchais a cuireadh ar aghaidh chuig `asertRedirects` an scéim agus an chuid fearainn de na URLanna a thuilleadh. Mar shampla, ba cheart \`\` self.assertRedirects(response, '/ some-url/')\`\` (mura rud é bhí URL iomlán go sonrach san atreorú).

Sa chás annamh go dteastaíonn an sean-iompar uait (a aimsíodh le leagan ársa de Apache le mod\_scgi\` a léirmhíníonn atreorú coibhneasta mar “atreorú inmheánach”), is féidir leat é a chur ar ais trí mheán saincheaptha a scríobh:

```
class LocationHeaderFix(object):
    def process_response(self, request, response):
        if "Location" in response:
            response["Location"] = request.build_absolute_uri(response["Location"])
        return response
```

### Tacaíocht titim do PostgreSQL 9.0

Tháinig deireadh le tacaíocht suas srutha do PostgreSQL 9.0 i Meán Fómhair 2015. Mar thoradh air sin, socraíonn Django 1.9 9.1 mar an leagan íosta PostgreSQL a thacaíonn sé go hoifigiúil.

### Tacaíocht titim do Oracle 11.1

Tháinig deireadh le tacaíocht suas srutha do Oracle 11.1 i mí Lúnasa 2015. Mar thoradh air sin, socraíonn Django 1.9 11.2 mar an leagan íosta Oracle a thacaíonn sé go hoifigiúil.

### Iompar mórchóir modh add () bainisteoirí gaolmhara

Chun feidhmíocht a fheabhsú, d'athraigh modhanna add () \`\`na mbainisteoirí gaolmhara a chruthaigh \`\`ForeignKey\` agus GenericForeignKey\` ó shraith glaonna `Model.save ()` chuig glao ```QuerySet.Update () ``amháin. Ciallaíonn an t-athrú nach seoltar comharthaí ``pre_save``` agus `post_save` níos mó. Is féidir leat an argóint eochairfhocal `Bulk=False` a úsáid chun filleadh ar an iompar roimhe seo.

### Baintear teimpléad `LoaderOrigin` agus `StringOrigin`

I leaganacha roimhe seo de Django, nuair a cuireadh inneall teimpléad a thionscnamh le dífhabhtú mar `True`, socraíodh sampla de `Django.Template.Loader.LoaderOrigin` nó `Django.Template.Base.StringOrigin` mar an tréith bunús ar an réad teimpléid. Cuireadh na ranganna seo le chéile la:class: ~django.template.base.origin agus tá sé socraithe anois i gcónaí beag beann ar an socrú dífhabhtaithe innill. Le haghaidh leibhéal íosta comhoiriúnachta ar ais, coimeádfar na sean-ainmneacha ranga mar ainmneacha don rang nua Origin\` go dtí Django 2.0.

### Athruithe ar an chumraíocht logála réamhshocraithe

Chun go mbeidh sé níos éasca cumraíochtaí logála saincheaptha a scríobh, ní shainmhíníonn cumraíocht logála réamhshocraithe Django logálaithe `django.request` agus `django.security` a thuilleadh. Ina áit sin, sainmhíníonn sé logálaí django \`\`amháin, a scagtar ag an leibhéal \`\`INFO\`, le dhá láimhseálaí:

- `console`: scagtha ag an leibhéal ```INFO ``agus níomhach ach amháin má tá `debug = True```.
- `mail_admins`: scagtha ag an leibhéal `ERROR` agus níomhach ach amháin má tá debug = false\`.

Mura bhfuil tú ag dul i bhfeidhm ar logáil réamhshocraithe Django, ba cheart go bhfeicfeá íosta athruithe ar iompar, ach b'fhéidir go bhfeicfidh tú roinnt logáil nua chuig an gconsól runserver\`, mar shampla.

Má tá tú ag cur i bhfeidhm ar logáil réamhshocraithe Django, ba chóir duit seiceáil chun a fheiceáil conas a chumraíonn do chumraíocht leis na réamhshocruithe nua.

### Sonraí HttpRequest i dtuairisciú earráide

Bhí sé iomarcach na sonraí iomlána fao:class: ~django.http.httpRequest a thaispeáint gach uair a bhí sé le feiceáil mar athróg fráma cruach sa leagan HTML den leathanach dífhabhtaithe agus ríomhphost earráide. Dá bhrí sin, taispeánfaidh an t-iarratas HTTP an léiriú caighdeánach céanna anois le hathróga eile (```repr (iarratas) ``). Mar thoradh air sin, baineadh an modh ``ExceptionReporterFilter.get_request_repr () ``agus an fheidhm ``django.http.build_request_repr ()``` neamhdhoiciméadaithe.

Athraíodh ábhar leagan téacs an ríomhphoist chun rianú den struchtúr céanna a sholáthar agus i gcás iarratais AJAX. Déantar na sonraí rianaithe a léiriú ag an modh ExceptionReporter.get\_TraceBack\_Text () .

### Cuibheoirí agus tiontairí domhanda atá ar an eolas ar chrios ama a bhaint d'amanna dáta

Ní chláraíonn Django oiriúntóirí agus tiontairí domhanda a thuilleadh chun faisnéis crios ama a bhainistiú ar:rang: ~ datetime.datetime luachanna a chuirtear chuig an mbunachar sonraí mar pharaiméadair fiosrúcháin nó a léitear ón mbunachar sonraí i dtorthaí fiosrúcháin. Bíonn tionchar ag an athrú seo ar thionscadail a chomhlíonann na coinníollacha seo a leanas go léir:

- Is é an socrú: USE\_TZ `True`.
- Is é an bunachar sonraí SQLite, MySQL, Oracle, nó bunachar sonraí tríú páirtí nach dtacaíonn le criosanna ama. Ar amhras, is féidir leat luach `connection.features.supports_timezones` a sheiceáil.
- Fiosraíonn an cód an bunachar sonraí lasmuigh den ORM, de ghnáth le cursor.execute (sql, params) .

Má tá tú ag dul paraiméadair aware:class: ~datetime.datetime chuig ceisteanna den sórt sin, ba cheart duit iad a iompú ina dáta naif i UTC:

```
from django.utils import timezone

param = timezone.make_naive(param, timezone.utc)
```

Má theipeann ort é sin a dhéanamh, déanfar an tiontú mar a bhí i leaganacha níos luaithe (le rabhadh díghníomhaíochta) suas go dtí Django 1.11. Ní dhéanfaidh Django 2.0 aon chomhshó, rud a d'fhéadfadh éilliú sonraí a bheith mar thoradh air.

Má tá tú ag léamh luachanna: class: ~datetime.datetime ó na torthaí, beidh siad naif in ionad a bheith ar an eolas. Is féidir leat cúiteamh mar seo a leanas:

```
from django.utils import timezone

value = timezone.make_aware(value, timezone.utc)
```

\<django.db.models.query.QuerySet.raw\>Ní theastaíonn aon cheann de seo uait má tá tú ag fiosrú ar an mbunachar sonraí tríd an ORM, fiú má tá ceisteanna: meth: raw () á úsáid agat. Tugann an ORM aire d'fhaisnéis crios ama a bhainistiú.

### Allmhairítear modúil clibeanna teimpléid nuair a dhéantar teimpl

Déanann an cúltaca: Class: ~django.template.backends.django.djangoTemplates fionnachtain anois ar mhodúil clibeanna teimpléad suiteáilte nuair a dhéantar iad a thionscnamh. \<TEMPLATES-OPTIONS\>Cuireann an nuashonrú seo ar chumas leabharlanna a sholáthar go sainráite tríd an eochair 'libraries'\` de:setting: OPTIONS nuair a shainmhínítear a:class: ~django.template.backends.django.djangoTemplates cúltaca. Teipeann ar earráidí allmhairithe nó comhréireachta i modúil clibeanna teimpléid go luath anois ag am tionscnaíochta seachas nuair a dhéantar teimpléad le clib a:ttag: {% load%}\<load\> a thiomsú ar dtús.

### django.template.base.add\_to\_builtins () baintear

\<load\>Cé gur API príobháideach a bhí ann, d'úsáid tionscadail go coitianta add\_to\_builtins () chun clibeanna teimpléad agus scagairí a chur ar fáil gan an clibe:ttag: {% load%} a úsáid. Tá an API seo foirmithe. \<TEMPLATES-OPTIONS\>Ba chóir do thionscadail leabharlanna ionsuite a shainmhíniú anois tríd an eochair builtins' de:setting: OPTIONS agus iad ag sainmhíniú a:class: ~django.template.backends.django.djangoTemplates cúltaca.

### Fillteann ```simple_tag ``aschur clibeanna anois i `conditional_escape```

\<tags-auto-escaping\>Go ginearálta, ní dhéanann clibeanna teimpléad a n-ábhar go huathoibríoch, agus is é an t-iompar seo: ref: doiciméadaithe \`. Maidir le clibeanna cosúil:class: \`~django.template.library.inclusion\_tag, ní fadhb í seo toisc go ndéanfaidh an teimpléad san áireamh autoescaping. Maidir le assignment\_tag () , éalófar an t-aschur nuair a úsáidtear é mar athróg sa teimpléad.

Maidir leis na cásanna úsáide atá beartaithe de:class: ~django.template.library.simple\_tag, áfach, tá sé an-éasca deireadh a chur le HTML mícheart agus b'fhéidir saothrú XSS. Mar shampla:

```
@register.simple_tag(takes_context=True)
def greeting(context):
    return "Hello {0}!".format(context["request"].user.first_name)
```

I leaganacha níos sine de Django, is saincheist XSS é seo toisc nach n-éaltar `user.first_name`.

I Django 1.9, socraítear é seo: má tá autoescape=True\` socraithe ag comhthéacs an teimpléid (an réamhshocraithe), ansin fillfidh simple\_tag aschur na feidhme clibeanna le:func: ~django.utils.html.conditional\_escape.

Chun do simple\_tag\`s a shocrú, is fearr na cleachtais seo a leanas a chur i bhfeidhm:

- Ba chóir d'aon chód a ghineann HTML an córas teimpléad nó: func: ~django.utils.html.format\_html a úsáid.
- Má theastaíonn aschur `simple_tag` éalú, bain úsáid as: func: ~django.utils.html.escape nó:func: ~django.utils.html.conditional\_escape.
- Má tá tú cinnte go bhfuil tú ag cur HTML ó fhoinse iontaofa (m.sh. réimse CMS a stóráilíonn HTML a chuireann riarthóirí isteach), is féidir leat é a mharcáil mar sin ag baint úsáid:func: ~django.utils.safestring.mark\_safe.

Beidh clibeanna a leanann na rialacha seo ceart agus sábháilte cibé an bhfuil siad á reáchtáil ar Django 1.9+ nó níos luaithe.

### `Paginator.Page_Range`

[`Paginator.page_range`](/ga/6.0/ref/paginator/#django.core.paginator.Paginator.page_range) is
now an iterator instead of a list.

I leaganacha de Django roimhe seo go 1.8, chuir Paginator.Page\_Range\` `liost` ar ais i Python 2 agus raon i Python 3. Chuir Django 1.8 liosta ar ais go comhsheasmhach, ach tá iterator níos éifeachtaí.

Is féidir an cód atá ann cheana atá ag brath ar ghnéithe sonracha ``liosta`, mar shampla innéacsú, a iompar tríd an iterator a thiontú go `liosta`` ag baint úsáide as liosta () .

### Cuardach intuigthe `` `QuerySet `` `` `__in `` bainte

I leaganacha níos luaithe, ceisteanna mar:

```
Model.objects.filter(related_id=RelatedModel.objects.all())
```

thiontódh sé go hinchinneach go:

```
Model.objects.filter(related_id__in=RelatedModel.objects.all())
```

mar thoradh air SQL mar `"related_id IN (SELECT id FROM...) "`.

Ní tharlaíonn an `__in` intuigthe seo a thuilleadh mar sin is é an “IN” SQL anois “=”, agus má fhilleann an fo-cheist torthaí iolracha, caitheoidh roinnt bunachair sonraí ar a laghad earráid.

### Tacaíocht brabhsálaí `contrib.admin`

Ní thacaíonn an riarachán le Internet Explorer 8 agus thíos a thuilleadh, mar tá deireadh saoil bainte amach ag na brabhsálaithe seo.

Baineadh CSS agus íomhánna chun tacú le Internet Explorer 6 agus 7. Cuireadh deilbhíní SVG in ionad deilbhíní PNG agus GIF, nach dtacaíonn Internet Explorer 8 agus níos luaithe leo.

Rinneadh uasghrádú ar an leabharlann jQuery atá leabaithe sa riarachán ó leagan 1.11.2 go 2.1.4. Tá an API céanna ag jQuery 2.x le jQuery 1.x, ach ní thacaíonn sé le Internet Explorer 6, 7, nó 8, rud a cheadaíonn feidhmíocht níos fearr agus méid comhaid níos lú. Más gá duit tacú le IE8 agus más gá duit an leagan is déanaí de Django a úsáid freisin, is féidir leat cóip an riaracháin de jQuery a shárú le do chuid féin trí fheidhmchlár Django a chruthú leis an struchtúr seo:

```text
app/static/admin/js/vendor/
    jquery.js
    jquery.min.js
```

### `SyntaxError` agus Django á shuiteáil `setuptools` 5.5.x

Agus Django 1.9 nó 1.9.1 á shuiteáil agat le setuptools\` 5.5.x, feicfidh tú:

```shell
Compiling django/conf/app_template/apps.py ...
  File "django/conf/app_template/apps.py", line 4
    class {{ camel_case_app_name }}Config(AppConfig):
          ^
SyntaxError: invalid syntax

Compiling django/conf/app_template/models.py ...
  File "django/conf/app_template/models.py", line 1
    {{ unicode_literals }}from django.db import models
                             ^
SyntaxError: invalid syntax
```

Tá sé sábháilte neamhaird a dhéanamh ar na hearráidí seo (suiteálfaidh Django go breá fós), ach is féidir leat iad a sheachaint trí “setuptools” a uasghrádú go leagan níos déanaí. Má tá píopa á úsáid agat, is féidir leat píopa a uasghrádú ag baint úsáide as `python -m pip install -U pip` a dhéanfaidh uasghrádú freisin setuptools\`. Réitear é seo i leaganacha níos déanaí de Django mar a thuairiscítear in:doc: /releases/1.9.2.

### Ilghnéitheach

- Tá na comhaid statacha jQuery i contrib.admin \`\`aistríodh isteach i bhfo-eolaire \`\`díolachóir/jquery\`.
- Tá an téacs a thaispeántar le haghaidh colúin null sa chealla athraithe riaracháin `list_display` tar éis athrú ó `(Níl aon)` (nó a choibhéis aistrithe) go `-` (sraith).
- Baineadh `Django.http.Responses.Reason_Phrases` agus `Django.Core.Handlers.wsgi.status_code_text`. Úsáid Leabharlann Caighdeánach Python ina ionad sin: :data: http.client.responses do Python 3 agus [httplib.responses](https://docs.python.org/2/library/httplib.html#httplib.responses) do Python 2.
- Baineadh `ValueSquerySet` agus `ValuesListQuerySet`.
- Ní leagann an teimpléad admin/base.html fuinneog a thuilleadh. \_\_admin\_media\_prefix\_\_\` nó `fuinneog. __admin_utc_offset__`. Bogadh tagairtí íomhá i JavaScript a d'úsáid an luach sin chun URLanna iomlána a thógáil chuig CSS le haghaidh saincheaptha níos éasca. Stóráiltear an fhritháireamh UTC ar thréith sonraí den chlib \<body\>\`\`\`.
- Tá bailíochtú `CommaseParatedIntegerField` scagtha chun luachanna cosúil le `', '`, `` `,1' ``, agus `` `1, ,2' `` a thoirmeasc.
- \<django.views.generic.edit.FormMixin.get\_context\_data\>Bogadh tionscnamh foirme ón modh: meth: ProcessFormView.get () \`go dtí an \<django.views.generic.edit.ProcessFormView.get\>modh nua:meth: \`formMixin.get\_context\_data (). D'fhéadfadh sé seo a bheith neamhchomhoiriúnach ar ais má tá an modh get\_context\_data () \`\`tar éis an modh \`\`get\_context\_data () \`a shárú gan glaoch ar \`\`super ()\`.
- Tá tacaíocht do PostGIS 1.5 titim.
- Athraíodh an réimse `django.contrib.sites.models.site.domain` go mbe:attr: ~django.db.models.field.unique.
- D'fhonn aonrú tástála a fhorfheidhmiú, ní cheadaítear ceisteanna bunachar sonraí de réir réamhshocraithe i dtástálacha: class: ~django.test.simpletestCase níos mó. Is féidir leat an t-iompar seo a dhíchumasú tríd an tréith aicme allow\_database\_queries\` a shocrú go `True` ar do rang tástála.
- Athraíodh `ResolverMatch.App_Name` chun an cosán iomlán spás ainmneacha a bheith ann i gcás spás ainmneacha neadaithe. Le haghaidh comhsheasmhachta le ResolverMatch.Namespace\`, is teaghrán folamh é an luach folamh anois in ionad `None`.
- Chun slándáil a chruasú, caithfidh 8 gcarachtar ar a laghad a bheith sna heochracha seisiúin.
- Baineadh feidhm phríobháideach django.utils.functional.total\_orders () . Bhí réiteach ann le haghaidh fabht functools.total\_orders () i leaganacha Python níos sine ná 2.7.3.
- Sraitheadh XML (cibé acu trí:djadmin: dumpdata nó an creat sindiciúcháin) a úsáidtear chun aon charachtair a fuair sé a aschur. Anois má tá aon charachtair rialaithe nach gceadaítear sa chaighdeán XML 1.0 san ábhar atá le sraitheadh, teipeann ar an sraitheadh le a:exc: ValueError.
- : class: ~django.forms.charfield anois stiallann ionchur de spás bán tosaigh agus rianaithe de réir réamhshocraithe. Is féidir é seo a dhíchumasú tríd an argóint nua:attr: ~django.forms.charfield.strip a shocrú go `False`.
- D'fhéadfadh go mbeadh msgid\` nua ag téacs teimpléad a aistrítear agus a úsáideann dhá chomhartha faoin gcéad as a chéile nó níos mó, m.sh. ``%%"`, tar éis `makemessages`` a reáchtáil (is dóichí go mbeidh an t-aistriúchán doiléir). Marcálfar an `msgid` nua `` `#, formáid python-" ``.
- \<django.template.Context\>Mura leagtar sí:attr: request.current\_app \<django.http.HttpRequest.current\_app\>\`nor:class: \`context.current\_app socraithe, úsáidfidh an clib teimpléad:ttag: url \`spás ainmneacha an iarratais reatha anois. Socraigh \`\`request.current\_app\` go `None` mura dteastaíonn uait leid spás ainmneacha a úsáid.
- Déanann an socrú: SETTING: SILENCED\_SYSTEM\_CHECKS teachtaireachtaí de gach leibhéal a thostú anois. Roimhe seo, clóiteadh teachtaireachtaí de leibhéal ERROR\` nó níos airde chuig an gconsól.
- Baintear an réimse `flatpage.enable_comments` ón `FlatPageAdmin` toisc nach bhfuil sé in úsáid ag an bhfeidhmchlár. Má úsáideann do thionscadal nó aip tríú páirtí é, :ref: cruthaigh ModelAdmin saincheapaithe \<flatpages-admin\>\`chun é a chur ar ais.
- Athraíodh luach tuairisceáin de:meth: ~Django.Test.Runner.DiscoverRunner.Setup\_Databases agus an chéad argóint de:meth: ~Django.Test.Runner.DiscoverRunner.TEARDOWN\_Databases. Ba ghnách iad a bhí siad ina “(sean\_ainmneacha, scátháin) ```tiúplaí. Anois níl siad ach an chéad mhír, ``old_names```.
- De réir réamhshocraithe: class: ~django.test.liveservertestcase iarracht calafort atá ar fáil sa raon 8081-8179 a aimsiú in ionad triail a bhaint as calafort 8081.
- Seiceálann an córas le haghaidh: class: ~django.contrib.admin.modelAdmin cásanna anois seachas ranganna.
- Tá an API príobháideach chun pleananna imirce measctha a chur i bhfeidhm ar chúiseanna feidhmíochta Is éard atá i bpleananna measctha liosta imirce ina bhfuil cuid acu á chur i bhfeidhm agus nach bhfuil cuid eile á chur i bhfeidhm.
- Bogtar na ranganna tuairiscithe réad samhail gaolmhara i `django.db.models.fields.related` (API príobháideach) ón modúl related\` go related\_descriptors\` agus athainmnítear mar seo a leanas:

  - Is é `ReversesingleRelateDObjectDescriptor` `ForwardmanyTooneDescriptor`
  - Is é `SingleRelateDObjectDescriptor` `ReverseOneTooneDescriptor`
  - Is é `ForeignRelateDObjectsDescriptor` `ReverseManyToOneDescriptor`
  - Is é `ManyRelateDObjectsDescriptor` `ManyTomanyDescriptor`
- Má chuireann tú amharc saincheap:data: ~django.conf.urls.handler404 i bhfeidhm, caithfidh sé freagra a thabhairt ar ais le cód stádais HTTP 404. Úsáid: aicme: ~django.http.httpResponseNotFound nó pas `status = 404` chuig an: aicme: ~django.http.httpResponse. Seachas sin, :setting: ní oibreoidh APPEND\_SLASH i gceart le `debug=false`.

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

### tascanna\_assignment\_tag () \`\`

Chuir Django 1.4 an cúntóir ```assignment_tag ``le cruthú clibeanna teimpléad a stóráilíonn athróg teimpléad torthaí a mhaolú. Tá an cumas céanna seo faighte ag an gcúntóir: Meth: `~django.template.library.simple_tag`, rud a fhágann go bhfuil an ``assignment_tag ``as feidhm. Ba chóir clibeanna a úsáideann ``assignment_tag``` a nuashonrú chun `simple_tag` a úsáid.

### `{% timthriall%}` comhréiteach le hargóintí scartha le camóg

Tacaíonn an clibe:ttag: timthriall le sean-chomhréir níos ísle ó leaganacha Django roimhe seo:

```html+django
{% cycle row1,row2,row3 %}
```

Ba chúis lena pháirsíú fabhtanna leis an gcomhréireacht reatha, mar sin bainfear tacaíocht don sean-chomhréireacht i Django 1.10 tar éis díscrúdú luathaithe.

### Argóint `ForeignKey` agus `OneToonefield` `on_delete`

D'fhonn feasacht a mhéadú faoi scriosadh samhail cascading, beidh an argóint on\_delete\` de ForeignKey\` agus `OneToonefield` ag teastáil i Django 2.0.

Nuashonraigh samhlacha agus imirce reatha chun an argóint a shocrú go sainráite. Ós rud é gurb é Models.cascade\` an réamhshocraithe, cuir `on_delete=Models.cascade` le gach `ForeignKey` agus `OneToOneField` nach n-úsáideann rogha difriúil. Is féidir leat é a chur ar aghaidh mar an dara argóint seasaimh mura bhfuil cúram ort faoi chomhoiriúnacht le leaganacha níos sine de Django.

### Athruithe `Field.rel`

`Field.rel` agus tá a modhanna agus tréithe athraithe chun API na réimsí gaolmhara a mheaitseáil. Athainmnítear an tréith `Field.rel` go remote\_field\` agus athraítear nó athainmnítear go leor dá modhanna agus tréithe.

Is é aidhm na hathruithe seo API doiciméadaithe a sholáthar do réimsí caidrimh.

### Modhanna saincheaptha `Geomanager` agus GeoQuerySet \`\`

Cuireadh nathanna geografacha coibhéiseach in anótaí in ionad gach modh saincheaptha ```GeoquerySet ``(``` limistéar () `,` fad () `,` gml () ```,...). Dá bhrí sin tá an gá saincheaptha ``Geomanager``` a shocrú do mhúnlaí cumasaithe GIS as feidhm anois. Chomh luath agus nach nglaonn do chód ar aon cheann de na modhanna dlite, is féidir leat na línte objects = GeoManager () a bhaint as do mhúnlaí.

### Athraigh APIs lódóra teimpléid

Nuashonraíodh lódóirí teimpléad Django chun teimpléad athfhillteach a leathnú. Bhí API lódóir teimpléad nua ag teastáil leis an athrú seo. Tá na sean-mhodhanna ```load_template () ``agus ``load_template_sources ()``` díluachtaithe anois. \<custom-template-loaders\>Is féidir sonraí faoin API nua a aimsiú:ref: sa dhoiciméadú lódóirí teimpléad .

### Ag dul trí thúpla nó `app_name` chuig include () \`\`

Cuireadh an chuid spás ainmneacha a bhaineann le tuple a chur mar argóint chun include () \`\`a chur in ionad an argóint \`\`spás ainmneacha\` a chur ar aghaidh chuig include () \`. Mar shampla:

```
polls_patterns = [
    url(...),
]

urlpatterns = [
    url(r"^polls/", include((polls_patterns, "polls", "author-polls"))),
]
```

éiríonn sé:

```
polls_patterns = (
    [
        url(...),
    ],
    "polls",
)  # 'polls' is the app_name

urlpatterns = [
    url(r"^polls/", include(polls_patterns, namespace="author-polls")),
]
```

Cuireadh an argóint app\_name\` chun include () \`\`a chur in ionad trí dhá tuple (mar thuas) a rith, nó réad nó modúl a rith le tréith \`\`app\_name\` (mar atá thíos). Má tá an `app_name` socraithe ar an mbealach nua seo, ní theastaíonn an argóint `spás ainm` a thuilleadh. Beidh sé réamhshocraithe go luach `app_name`. Mar shampla, athraítear na patrúin URL sa rang teagaisc ó:

*`mysite/urls.py`*

```python
urlpatterns = [url(r"^polls/", include("polls.urls", namespace="polls")), ...]
```

chuig:

*`mysite/urls.py`*

```python
urlpatterns = [
    url(r"^polls/", include("polls.urls")),  # 'namespace="polls"' removed
    ...,
]
```

*`polls/urls.py`*

```python
app_name = "polls"  # added
urlpatterns = [...]
```

Ciallaíonn an t-athrú seo freisin go bhfuil an seanbhealach chun sampla `Admin Site` a áireamh as dul in iúl. Ina áit sin, pas admin.site.urls\` go díreach chuig django.conf.urls.url () :

*`urls.py`*

```python
from django.conf.urls import url
from django.contrib import admin

urlpatterns = [
    url(r"^admin/", admin.site.urls),
]
```

### Teastaíonn spás ainmneacha feidhmchláir URL má shocraíonn spás ainmneacha sampla

San am atá caite, bheadh spás ainmneacha sampla gan spás ainmneacha feidhmchláir ar an gcuspóir céanna le spás ainmneacha an fheidhmchláir, ach ní raibh sé dodhéanta na patrúin a aisiompú má bhí spás ainmneacha feidhmchláir leis an ainm céanna. Áirítear a shonraíonn spás ainmneacha sampla a éilíonn go socraíonn an URLConf san áireamh spás ainmneacha feidhmchláir.

### Paraiméadar `current_app` chuig tuairimí `contrib.auth`

Tá an struchtúr seo a leanas ag gach tuairim i `django.contrib.auth.views`:

```text
def view(request, ..., current_app=None, ...):

    ...

    if current_app is not None:
        request.current_app = current_app

    return TemplateResponse(request, template_name, context)
```

De réir Django 1.8, socraítear `current_app` ar an réad ```iarraidh`. Ar mhaithe le comhsheasmhacht, éilfidh na tuairimí seo ar an nglaoiteoir ``current_app``` a shocrú ar an `iarraidh` in ionad é a rith in argóint ar leithligh.

### django.contrib.gis.geoip \`\`

Cuireann an modúl:mod: django.contrib.gis.geoip2 in ionad `django.contrib.gis.geoip`. Soláthraíonn an modúl nua API den chineál céanna ach amháin nach soláthraíonn sé na modhanna comhoiriúnachta API GeoIP-Python oidhreachta.

### Ilghnéitheach

- Tá an argóint `lag` chuig django.Dispatch.Signals.Signal.Disconnect () a dhíchur mar níl aon éifeacht aige.
- Tá an modh ```check_aggregate_support () ``de `Django.db.backends.base.baseDatabaseOperations``` a dhíchur agus bainfear é i Django 2.0. Ba chóir an check\_expression\_support () níos ginearálta a úsáid ina ionad.
- Tá `django.forms.extras` imithe. Is féidir leat aimsi:class: ~django.forms.selectDateWidget i `django.forms.widgets` (nó `django.forms`) ina ionad sin.
- Tá API príobháideach django.db.models.fields.add\_lazy\_relations () díluachtaithe.
- Tá an maisitheoir ```django.contrib.auth.tests.utils.skipifCustomUser () ``díluaite. Leis na hathruithe fionnachtana tástála i Django 1.6, ní reáchtáiltear na tástálacha le haghaidh aipeanna `django.contrib ``a thuilleadh mar chuid de thionscadal an úsáideora. Dá bhrí sin, ní theastaíonn an maisitheoir ``@skipIfCustomUser``` a thuilleadh chun tástálacha a mhaisiú i `django.contrib.auth`.
- Má shaincheapann tú roinnt: ref: láimhseálaithe earráide \<error-views\>, díchuirtear na sínithe amharc nach bhfuil ach paraiméadar iarratais amháin acu. Ba chóir go nglacfadh na tuairimí anois leis an dara paraiméadar suímh eisceacht'.
- Tá na tréithe `django.utils.feedgenerator.atom1feed.mime_type` agus `Django.utils.feedgenerator.rssfeed.mime_type` a dhíchur i bhfabhar `content_type`.
- [`Signer`](/ga/6.0/topics/signing/#django.core.signing.Signer) now issues a warning if an invalid
  separator is used. This will become an exception in Django 1.10.
- ```Django.db.Models.Field. Tá _get_val_from_obj () ``díluaite i bhfabhar ``field.value_from_object ()```.
- Tá `Django.Template.Loaders.Eggs.Loader` a dhíchur mar iarratais a dháileadh mar ní mholtar uibheacha.
- Tá an argóint eochairfhocal `callable_obj` chuig simpletestCase.assertRaisesMessage () a dhíchur. Rith an glaoch mar argóint seasmhach ina ionad sin.
- Tá an tréith allow\_tags\` ar mhodhanna `ModelAdmin` a dhíchur. Úsáid: func: ~django.utils.html.format\_html, :func: ~django.utils.html.format\_html\_join, nó:func: ~django.utils.safestring.mark\_safe agus luach tuairisceáin an mhodha á thógáil ina ionad sin.
- Tá an argóint eochairfhocal `enclosure` chuig SyndicationFeed.add\_item () \`\`díluachtaithe. Úsáid an argóint nua \`\`enclosures\` a ghlacann le liosta de rudaí `Inclosure` in ionad ceann amháin.
- Tá na hainmneacha Django.Template.Loader.LoaderOrigin\` agus `Django.Template.Base.StringOrigin` do Django.Template.Base.Origin\` a dhíchur.

## Gnéithe bainte i 1.9

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

- Baintear `django.utils.dictconfig`.
- Baintear `django.utils.importlib`.
- Baintear `django.utils.tzinfo`.
- Baintear `django.utils.unittest`.
- Baintear an t-ordú `syncdb`.
- Baintear `django.db.models.signals.pre_syncdb` agus `django.db.models.signals.post_syncdb`.
- Baintear tacaíocht do allow\_syncdb\` ar ródairí bunachar sonraí.
- Baintear sioncrónú uathoibríoch aipeanna gan imirce. Tá imirce éigeantach do gach aip mura rachaidh tú ar an roghna:option: migration --run-syncdb.
- Baintear na horduithe bainistíochta SQL le haghaidh aipeanna gan imirce, `sql`, sqlall\`, sqlclear\`, sqldropindexes\`, agus `sqlindexes`.
- Baintear tacaíocht do luchtú uathoibríoch daingneáin initial\_data agus sonraí tosaigh SQL.
- Caithfear gach samhail a shainiú taobh istigh d'fheidhmchlár suiteáilte nó sainmhíniú: attr: ~django.db.models.options.app\_label a dhearbhú. Ina theannta sin, ní féidir iad a iompórtáil sula luchtaítear a n-iarratas. Go háirithe, ní féidir samhlacha a iompórtáil taobh istigh de phacáiste fréimhe feidhmchláir.
- Baintear an tsamhail agus an fhoirm `Ipaddressfield`. Tá réimse stub fós ann le haghaidh comhoiriúnachta le himirce stairiúla.
- Ní thacaítear le AppCommand.handle\_app () a thuilleadh.
- Ní féidir `requestsite` agus ```get_current_site () ``a iompórtáil ó ``django.contrib.sites.models``` a thuilleadh.
- Baintear tacaíocht FastCGI tríd an ordú bainistíochta runfcgi\`.
- Baintear `Django.utils.DataStructures.Sorteddict`.
- Baintear `ModelAdmin.Declared_FieldSets`.
- Baintear na modúil `util` a sholáthraíodh comhoiriúnacht ar ais:

  - `django.contrib.admin.util`
  - `django.contrib.gis.db.backends.util`
  - `django.db.backends.util`
  - `django.forms.util`
- Baintear `ModelAdmin.get_FormSets`.
- Tugadh isteach na shims comhoiriúnacha ar chúl chun an ```BaseMemcachedCache a athainmniú. Baintear modh _get_memcache_timeout () ``chun ``get_backend_timeout ()```.
- Baintear na roghanna `--natural` agus `-n` le haghaidh: djadmin: dumpdata.
- Baintear an argóint `use_natural_keys` do serializers.serialize () \`.
- Baintear API príobháideach django.forms.forms.get\_declared\_fields () .
- Baintear an cumas `SplitDateTimeWidget` le DateTimeField\` a úsáid.
- Baintear an maoin WSGIrequest.request\`.
- Baintear an rang `Django.utils.DataStructures.Mergedict`.
- Baintear na cóid teanga zh-cn\` agus zh-tw\`.
- Baintear an django.utils.functional.memoize () inmheánach.
- Baintear `django.core.cache.get_cache`.
- Baintear `django.db.models.loading`.
- Ní féidir argóintí inghlaonta a chur chuig ceisteanna a thuilleadh.
- Baintear `BaseCommand.requires_model_validation` i bhfabhar `requires_system_checks`. Cuirtear seiceálacha riaracháin in ionad bailíochtóirí riaracháin.
- Baintear na tréithe `ModelAdmin.Validator_Class` agus `default_validator_class`.
- Baintear ModelAdmin.validate () .
- Baintear `Django.db.backends.databaseValidation.validate_field` i bhfabhar an modh `check_field`.
- Baintear an t-ordú bainistíochta bailíochta.
- Baintear `django.utils.module_loading.import_by_path` i bhfabhar `django.utils.module_loading.import_string`.
- Baintear clibeanna teimpléad `ssi` agus url \`\`ón leabharlann clib teimpléad \`\`todhcha\`.
- Baintear django.utils.text.javascript\_quote () .
- Ní thacaítear le socruithe tástála bunachar sonraí mar iontrálacha neamhspleácha i socruithe bunachar sonraí, réamhshocraithe ag `TEST_`, a thuilleadh.
- Baintear an rogha `cache_choices` to:class: ~django.forms.ModelChoiceField agus:class: ~django.forms.ModelMultipleChoiceField.
- Tá luach réamhshocraithe den tréith: attr: RedirectView.permanent \<django.views.generic.base.RedirectView.permanent\>\`athraithe ó \`\`True\` go `False`.
- Baintear `Django.Contrib.SiteMaps.FlatPageSitemap` i bhfabhar `Django.Contrib.FlatPages.Sitemaps.FlatPageSitemap`.
- Baintear API príobháideach `Django.Test.utils.TestTemplateLoader`.
- Baintear an modúl `django.contrib.contenttypes.generic`.
