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

*2 Nollaig, 2017*

Fáilte go dtí Django 2.0!

Clúdaíonn na nótaí scaoilte seo na:ref: gnéithe nua \<whats-new-2.0\>, chomh maith le roinnt: ref: athruithe neamh-chomhoiriúnacha ar chúl\<backwards-incompatible-2.0\> a mbeidh tú ag iarraidh a bheith ar an eolas fúthu agus tú ag uasghrádú ó Django 1.11 nó níos luaithe. \<deprecated-features-2.0\>Chuireamar: Ref: thit roinnt \<removed-features-2.0\>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.

Cuireann an scaoileadh seo tús le húsáid Django as foirm scaoilte de leagan séimeantach, ach níl aon athruithe móra ar gcúl neamh-chomhoiriúnach a mbeifí ag súil leo ó eisiúint 2.0. Ba cheart go mbeadh an oiread céanna iarrachta le huasghrádú agus a bhí eisiúintí gné-ailt roimhe seo.

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

## Comhoiriúnacht Python

Tacaíonn Django 2.0 le Python 3.4, 3.5, 3.6, agus 3.7. 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.7.

Beidh Django 2.0 an tsraith scaoilte deireanach chun tacú le Python 3.4. Má phleanálann tú Python 3.4 a imscaradh níos faide ná deireadh na saoil do Django 2.0 (Aibreán 2019), cloí le Django 1.11 LTS (tacaíocht go dtí Aibreán 2020) ina ionad sin. Tabhair faoi deara, áfach, gurb é deireadh saoil Python 3.4 Márta 2019.

## Tacaíocht leabharlainne tríú páirtí le haghaidh leagan níos sine de D

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 2.0

### Comhréir ródaithe URL simplithe

The new [`django.urls.path()`](/ga/6.0/ref/urls/#django.urls.path) function allows a simpler, more readable URL
routing syntax. For example, this example from previous Django releases:

```
url(r"^articles/(?P<year>[0-9]{4})/$", views.year_archive),
```

d'fhéadfaí a scríobh mar:

```
path("articles/<int:year>/", views.year_archive),
```

Tacaíonn an comhréireacht nua le cineál éigeantach ar pharaiméadair URL. Sa sampla, gheobhaidh an dearcadh an argóint eochairfhocal blian\` mar shláimhir seachas mar shreang. Chomh maith leis sin, tá na URLanna a mheaitseálfaidh sé beagán níos lú srianta sa sampla athscríofa. Mar shampla, meaitneoidh an bliain 10000 anois ós rud é nach bhfuil sláimhreacha na bliana srianta go díreach ceithre dhigit ar fad mar atá siad san abairt rialta.

Tá an fheidhm ```django.conf.urls.url () ``ó leaganacha roimhe seo ar fáil anois mar: func: `django.urls.re_path`. Tá an sean-áit fós le haghaidh comhoiriúnacht ar ais, gan díghabháil atá le teacht. Is féidir an sean-fheidhm ``django.conf.urls.include () `allmhairithe anois ó ``django.urls ``ionas gur féidir leat ``ó django.urls allmhairiú include, path, re_path``` a úsáid i do URLConfs.

Athscríobhtar an doiciméad:doc: /topics/http/urls chun an comhréiteach nua a thaispeáint agus tuilleadh sonraí a sholáthar.

### contrib.admin\` atá cairdiúil don soghluaiste

Tá an riarthóir sofhreagrach anois agus tacaíonn sé le gach mórghléas soghluaiste. D’fhéadfadh leibhéil éagsúla díghrádaithe a bheith ag brabhsálaithe níos sine.

### Nathanna fuinneoige

Ligeann an léiriú nua:class: ~django.db.Models.Expressions.Window clásal `OVER` a chur le fiosraitheanna. \<aggregation-functions\>Is féidir leat:ref: feidhmeanna fuinneog \<window-functions\>\`agus:ref: \`feidhmeanna comhiomlána a úsáid sa abairt.

### Mionghnéithe

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

- Ceadaíonn an modh nua [`ModelAdmin.autocomplete_fields`](/ga/6.0/ref/contrib/admin/#django.contrib.admin.ModelAdmin.autocomplete_fields) agus [`ModelAdmin.get_autocomplete_fields()`](/ga/6.0/ref/contrib/admin/#django.contrib.admin.ModelAdmin.get_autocomplete_fields) giuirléid cuardaigh [Select2](https://select2.org/) a úsáid le haghaidh ``ForeignKey` agus` `ManyToManyField``.

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

- Méadaítear an líon athraithe réamhshocraithe don hasher pasfhocal PBKDF2 ó 36,000 go 100,000.

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

- \<distance-lookups\>Cuireadh tacaíocht MySQL leis an bhfeidhm: class: ~django.contrib.gis.db.models.functions.asgeojson, :class: ~django.contrib.gis.db.models.functions.geohash feidhm, :class: ~django.contrib.db.models.functions.is feidhm, :lookup: validisvalid, lookup agus:ref: cuardach achair .
- Cuireadh se:class: ~django.contrib.gis.db.models.functions.azimuth agus:class: ~django.contrib.gis.db.models.functions.lineLocatePoint feidhmeanna, le tacaíocht ar PostGIS agus Spatialite.
- Aon: Class: ~django.contrib.gis.geos.geosgeometry allmhairithe ó GeoJSON tá a tacar SRID anois.
- Cuireadh tréith: attr: .osmwidget.default\_zoom leis chun leibhéal súmáil réamhshocraithe an léarscáileáin a shaincheapadh.
- Rinneadh meiteashonraí inléite agus in-eagarthóireachta ar rasters trí:attr: ~django.contrib.gis.gdal.gdalraster.metadata, :attr: ~django.contrib.gis.gdal.gdalraster.info, agus:attr: ~django.contrib.gis.gdalband.metadata.
- Ceadaítear roghanna cruthaithe tiománaí go sonrach a rith chuig: aicme: ~django.contrib.gis.gdal.gdalraster rudaí ag baint úsáide as papsz\_options\`.
- Ceadaítear rudaí a chruthó:class: ~django.contrib.gis.gdal.gdalraster i gcóras comhaid fíorúil inmheánach GDAL. \<gdal-raster-vsimem\>Is féidir le Rasters a bheith anois: ref: cruthaithe ó shonraí dénártha i gcuimhne agus a thiontú go sonraí dénártha.
- \<django.contrib.gis.gdal.GDALBand.color\_interp\>Tugann an modh nua:meth: gdalband.color\_interp () an léirmhíniú datha don bhanda ar ais.

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

- Cinneann an argóint nua `distint` do:class: ~django.contrib.postgres.aggregates.ArrayAgg an mbeidh luachanna comhtháite ar leith.
- Tugann an fheidhm bunachar sonraí nua:class: ~django.contrib.postgres.functions.randomuuid leagan 4 UUID ar ais. Éilíonn sé síneadh pgcrypto\` PostgreSQL a úsáid ar féidir a ghníomhachtú ag baint úsáide as an oibríocht imirce nua:class: ~django.contrib.postgres.operations.cryptoextension.
- [`django.contrib.postgres.indexes.GinIndex`](/ga/6.0/ref/contrib/postgres/indexes/#django.contrib.postgres.indexes.GinIndex) now supports the
  `fastupdate` and `gin_pending_list_limit` parameters.
- Ceadaíonn an rang nua:class: ~django.contrib.postgres.indexes.gistIndex innéacsanna Gist\` a chruthú sa bhunachar sonraí. Suiteálann an oibríocht imirce nua:class: ~django.contrib.postgres.operations.btreeGistExtension an síneadh `btree_gist` chun tacaíocht a chur le haghaidh ranganna oibreora nach bhfuil ionsuite.
- [`inspectdb`](/ga/6.0/ref/django-admin/#django-admin-inspectdb) can now introspect `JSONField` and various
  `RangeField`s (`django.contrib.postgres` must be in `INSTALLED_APPS`).

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

- Chuir an argóint eochairfhocal protocol\` leis an tógálaí:class: ~django.contrib.siteMaps.GenericSiteMap.

#### Cache

- Tugann cache.set\_many () liosta eochracha ar ais anois ar theip orthu a chur isteach. Maidir leis na cúltaca ionsuite, ní féidir iontráil theip a tharlú ach ar memcached.

#### Stóráil Comhad

- [`File.open()`](/ga/6.0/ref/files/file/#django.core.files.File.open) can be used as a context
  manager, e.g. `with file.open() as f:`.

#### Foirmeacha

- Ceadaíonn na hargóintí nua `date_attrs` agus `time_attrs` do:class: ~django.forms.splitDateTimeWidget agus:class: ~django.forms.splithiddendateTimeWidget tréithe HTML éagsúla a shonrú do na fo-ghuirdeanna DateInput\` agus TimeInput\` (nó i bhfolach).
- Tugann an modh nua:meth: form.errors.get\_json\_data () \<django.forms.Form.errors.get\_json\_data\>\`earráidí foirme ar ais mar fhoclóir atá oiriúnach lena n-áireamh i bhfreagra JSON.

#### Tuairimí cineálacha

- Ceadaíonn an tréith nua:attr: .contextMixin.extra\_context comhthéacs a chur i View.as\_view () .

#### Orduithe Bainistíochta

- : djadmin: aistríonn inspectdb anois colúin sláimhir neamhshínithe MySQL go `PositiveIntegerField` nó `PositiveSmallIntegerField`.
- Rialaíonn an rogha nua:option: makemessages --add-location an fhormáid tráchta i gcomhaid `.po`.
- \<loading-fixtures-stdin\>:djadmin: Is féidir le loaddata anois:ref: léamh ó stdin .
- Ligeann an rogha nua:option: diffsettings --output an t-aschur a fhormáidiú i bhformáid diff aontaithe.
- Ar Oracle, is féidir le: djadmin: inspectdb iontráil anois `Autofield` má chruthaítear an colún mar cholún aitheantais.
- Ar MySQL, tacaíonn: djadmin: dbshell le deimhnithe TLS ar thaobh an chliaint anois.

#### Imirce

- Ligeann an rogha nua:option: squashmigrations --squashed-name an imirce squashed a ainmniú.

#### Samhla

- Faigheann an fheidhm bunachar sonraí nua:class: ~django.db.models.functions.strIndex innéacs tosaigh teaghrán taobh istigh de shreang eile.
- \< <https://docs.oracle.com/en/database/oracle/oracle-database/21/drdaa/> intro-to-tools-and-products-supporting-migraiton.html #GUID -14E4817B-F3BC-4D99 -B471-A0ACDC303CC9\>Ar Oracle, cruthaítear `AutoField` agus `BigAutoField` anois mar colúin aitheantais \_\_.
- Rialaíonn an paraiméadar nua `chunk_size` de:meth: .queryset.iterator líon na sraitheanna a fhaigheann cliant bunachar sonraí Python agus torthaí á sruthú ón mbunachar sonraí. Maidir le bunachair sonraí nach dtacaíonn le cúrsóirí taobh an fhreastalaí, rialaíonn sé líon na dtorthaí a fhaigheann Django ón oiriúnóir bunachar sonraí.
- \<django.db.models.Options.get\_latest\_by\>:meth: .querySet.Earliest, :meth: .queryset.latest, agus:attr: Meta.get\_latest\_by ceadaíonn ordú anois ag roinnt réimsí.
- Chuir an fheidhm: class: ~django.db.Models.Functions.ExtractQuarter leis chun an ráithe a bhaint ó:class: ~django.db.models.dateField agus:class: ~Django.db.Models.DateTimeField, agus nochtaigh sé tríd an cuardach: quarter.
- Cuireadh an fheidhme:class: ~django.db.models.functions.truncQuarter leis an bhfeidhm chuig: class: ~Django.db.Models.DateField agus:class: ~Django.db.Models.DateTimeField go dtí an chéad lá den ráithe.
- Cuireadh paraiméadar: attr: ~django.db.models.index.db\_TableSpace le hinnéacsanna aicme-bhunaithe.
- Má thacaíonn an bunachar sonraí le réimse dúchasach fad (Oracle agus PostgreSQL), oibríonn:: class: ~Django.db.Models.Functions.Extract anois len:class: ~Django.db.Models.DurationField.
- Added the `of` argument to [`QuerySet.select_for_update()`](/ga/6.0/ref/models/querysets/#django.db.models.query.QuerySet.select_for_update), supported
  on PostgreSQL and Oracle, to lock only rows from specific tables rather than
  all selected tables. It may be helpful particularly when
  [`select_for_update()`](/ga/6.0/ref/models/querysets/#django.db.models.query.QuerySet.select_for_update) is used in conjunction with
  [`select_related()`](/ga/6.0/ref/models/querysets/#django.db.models.query.QuerySet.select_related).
- Ligeann paraiméadar nua `field_name` de:meth: .queryset.in\_bulk torthaí a fháil bunaithe ar aon réimse samhail uathúil.
- [`CursorWrapper.callproc()`](/ga/6.0/topics/db/sql/#django.db.models.CursorWrapper.callproc) now takes an optional dictionary of keyword
  parameters, if the backend supports this feature. Of Django's built-in
  backends, only Oracle supports it.
- Ceadaíonn an modh nua:meth: connection.execute\_wrapper () \</topics/db/instrumentation\> \<django.db.backends.base.DatabaseWrapper.execute\_wrapper\>: doc: fillteáin a shuiteáil timpeall ceisteanna bunachar sonraí a fhorghníomhú.
- Ceadaíonn an argóint nua `scagair` le haghaidh comhiomláin ionsuite: ref: coinníollacha éagsúla a chur leis na comhiomlánaithe iolracha thar na réimsí nó na caidrimh cé \<conditional-aggregation\>anna.
- \<django.db.models.Options.ordering\>Tacaíocht bhreise le haghaidh abairtí in:attr: Meta.ording .
- Ceadaíonn an paraiméadar nua ainmnithe de:meth: .queryset.values\_list torthaí a fháil mar tuples ainmnithe.
- Ceadaíonn an rang nua:class: .filteredRelation clásal `ON` a chur le fiosraitheanna.

#### Leathanaigh

- Cuireadh leis: Meth: Paginator.get\_page () \<django.core.paginator.Paginator.get\_page\>\`chun an patrún doiciméadaithe maidir le láimhseáil uimhreacha leathanaigh neamhbhailí a sholáthar.

#### Iarrataí agus Freagraí

- Tacaíonn freastalaí gréasáin djaDmin: runserver le HTTP 1.1.

#### Teimpléid

- Chun úsáideacht: meth: .engine.get\_default a mhéadú in aipeanna tríú páirtí, filleann sé an chéad inneall anois má chuirtear ilinnill ```DjangoTemplates ``cumraithe i `TEMPLATES``` seachas `ImproperlyConfigured` a ardú.
- Féadfaidh clibeanna teimpléid saincheaptha glacadh le hargóintí eochairfhocail amháin.

#### Tástálacha

- Cuireadh tacaíocht snáithe leis chuig: class: ~django.test.liveservertestcase.
- Socruithe breise a cheadaíonn na paraiméadair spás tábla tástála a shaincheapadh do Oracle: :setting: DATAFILE\_SIZE, :setting: DATAFILE\_TMP\_SIZE, :setting: DATAFILE\_EXTSIZE, agus:setting: DATAFILE\_TMP\_EXTSIZE.

#### Bailíochtóirí

- Ní cheadaíonn an nua:class: .prohibitNullCharactersValidator an carachtar null i ionchur an réimse foirme:class: ~django.forms.charfield agus a fho-aicmí. Breathnaíodh ionchur carachtar null ó uirlisí scanadh leochaileachta Caitheann an chuid is mó de na bunachair sonraí carachtair neall go ciúin, ach ardaíonn psycopg2 2.7+ eisceacht agus tú ag iarraidh carachtar neall a shábháil i réimse char/téacs le PostgreSQL.

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

### Tacaíocht bainte le haghaidh bytestrings in áiteanna áirithe

Chun tacú le teaghráin dúchasacha Python 2, b'éigean do leaganacha níos sine Django glacadh le teaghráin bytestrings agus teaghráin Unicode araon. Anois go bhfuil tacaíocht Python 2 titim, níor cheart teacht le bytestrings ach timpeall teorainneacha ionchuir/aschuir (láimhseáil réimsí dénártha nó sruthanna HTTP, mar shampla). B'fhéidir go mbeidh ort do chód a nuashonrú chun úsáid bytestring a theorannú go dtí a laghad, mar ní ghlacann Django le bytestrings i gcosáin cód áirithe a thuilleadh. Python's:option: d'fhéadfadh rogha -b cabhrú leis an botún sin i do chód a bhrath.

Mar shampla, úsáideann ```reverse () ``anois ``str ()``` ```in ionad ``force_text ()``` chun na args\` agus kwar\`gs\` a fhaigheann sé a chur faoi iallach sula gcuirtear iad a shocrú sa URL. Maidir le bytestrings, cruthaíonn sé seo sreang le réimír `b` neamh-inmhianaithe chomh maith le luachana breise (`````str (b'foo') ``is ````b'foo'"`````). Chun oiriúnú, glaoigh ar decode () \`\`ar an mbytestring sula ndéantar é a chur chuig \`\`reverse ()\`.

### 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í.

- Ní fhilleann na modhanna ```DatabaseOperations.dateTime_Cast_Date_SQL () ``, `datetime_cast_time_sql ()```, datetime\_trunc\_sql () \`, datetime\_extract\_sql ()\`, agus date\_interval\_sql () ach an SQL a dhéanamh chun an oibríocht a dhéanamh in ionad SQL agus SQL liosta de na paraiméadair.
- Ba chóir go gcuirfeadh cúltaca bunachar sonraí tríú páirtí tréith `DatabaseWrapper.display_name` leis ainm an bhunachar sonraí a oibríonn do chúltaca leis. Féadfaidh Django é a úsáid i dteachtaireachtaí éagsúla, mar shampla i seiceálacha córais.
- An chéad argóint de ```SchemaEditor. Is é _alter_column_type_sql () ``anois ``samhail``` seachas tábla .
- An chéad argóint de ```SchemaEditor. Is é _create_index_name () ``anois ``table_name``` seachas `model`.
- Chun tacaíocht ```FOR UPDATE OF ``a chumasú, socraigh``` databaseFeatures.HAS\_SELECT\_FOR\_UPDATE\_OF = True\`\`. Má éilíonn an bunachar sonraí go mbeidh na hargóintí le OF\` ná colúin seachas táblaí, socraigh `databaseFeatures.select_for_update_of_column = True`.
- Chun tacaíocht do: class: ~Django.db.Models.Expressions.Window a chumasú, socraigh `DatabaseFeatures.supports_over_clause` go `True`. B'fhéidir go mbeidh ort na modhanna ```databaseOperations.window_start_rows_start_end () ``agus/nó ``window_start_range_start_end ()``` a shaincheapadh.
- Ba chóir go gcuirfeadh cúltaca bunachar sonraí tríú tríú tríú tréith ```databaseOperations.cast_char_field_without_max_length ``leis an gcineál sonraí bunachar sonraí a úsáidfear san fheidhm :class: `~django.db.models.functions.cast` le haghaidh ``charfield``` mura gcuirtear an argóint max\_length\`.
- An chéad argóint de ```DatabaseCreation. Is é _clone_test_db () ``agus ``get_test_db_clone_settings ()``` anois `suffix` seachas `uimhre` (i gcás gur mhaith leat na sínithe i do chúlcheann a athainmniú le haghaidh comhsheasmhachta). Téann `django.test` anois ar na luachanna sin mar shreangáin seachas mar shláimhreacha.
- Ba chóir go gcuirfeadh cúltaca bunachar sonraí tríú páirtí modh `DatabaseIntrospection.get_sequences ()` a chur leis bunaithe ar an stub i BaseDatabaseIntrospection\`.

### Tacaíocht titim do Oracle 11.2

Is é deireadh na tacaíochta suas srutha do Oracle 11.2 ná Nollaig 2020. Tacófar le Django 1.11 go dtí Aibreán 2020 a shroicheann beagnach an dáta seo. Tacaíonn Django 2.0 go hoifigiúil le Oracle 12.1+.

### Léitear leibhéal aonrúcháin réamhshocraithe MySQL

D'fhéadfadh leibhéal aonrú réamhshocraithe MySQL, inléite athsheolta, a bheith ina chúis le caillteanas sonraí i ngnáthúsáid Chun é sin a chosc agus chun comhsheasmhacht le bunachair sonraí eile, léitear an leibhéal aonraithe réamhshocraithe tiomanta \<mysql-isolation-level\>Is féidir leat an socrú: setting: DATABASES a úsáid chó:ref: úsáid leibhéal aonraithe difriúil , más gá.

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

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

Más mian leat an teorainn 30 carachtar d'ainmneacha deireanacha a chaomhnú, bain úsáid as foirm saincheaptha:

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

class MyUserChangeForm(UserChangeForm):
    last_name = forms.CharField(max_length=30, required=False)
```

Más mian leat an srian seo a choinneáil sa riarachán agus tú ag eagarthóireacht úsáideoirí, socraigh `UserAdmin.form` chun an fhoirm seo a úsáid:

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

class MyUserAdmin(UserAdmin):
    form = MyUserChangeForm

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

### Tá cosc ar ```QuerySet.reverse () ``agus ``last ()``` tar éis slisnú

Mar thoradh ar ```QuerySet.reverse () ``nó ``last ()``` a ghlaoch ar shraith cheisteanna slisnaithe bíonn torthaí gan choinne mar gheall ar an slisnacht á chur i bhfeidhm tar éis athordú. Tá cosc air seo anois, m.sh.:

```pycon
>>> Model.objects.all()[:2].reverse()
Traceback (most recent call last):
...
TypeError: Cannot reverse a query once a slice has been taken.
```

### Ní ghlacann réimsí foirme le hargóintí roghnacha a thuilleadh mar

Chun cabhrú le hearráidí reatha a chosc mar gheall ar ordú mícheart argóintí réimse foirme, ní ghlactar le hargóintí roghnacha réimsí foirme ionsuite mar argóintí seasaim Mar shampla:

```
forms.IntegerField(25, 10)
```

ardaíonn eisceacht agus ba chóir na nithe seo a leanas a chur in ionad:

```
forms.IntegerField(max_value=25, min_value=10)
```

### Bailíonn call\_command () na roghanna a fhaigheann sé

Bailíonn ```call_command () ``anois go sainmhíníonn parser argóint an ordaithe atá á glaoch ar na roghanna go léir a chuirtear chuig ``call_command ()```.

Maidir le horduithe bainistíochta saincheaptha a úsáideann roghanna nach cruthaíodh ag baint úsáide as parser.add\_argument () \`, cuir tréith \`\`stealth\_options\` ar an ordú:

```
class MyCommand(BaseCommand):
    stealth_options = ("option_name", ...)
```

### Ní ghlacann innéacsanna le hargóintí seasaimh a thuil

Mar shampla:

```
models.Index(["headline", "-pub_date"], "index_name")
```

ardaíonn eisceacht agus ba chóir na nithe seo a leanas a chur in ionad:

```
models.Index(fields=["headline", "-pub_date"], name="index_name")
```

### Tá príomhshrianta eachtracha cumasaithe anois ar SQLite

Beidh sé seo le feiceáil mar athrú neamh-chomhoiriúnach ar chúl (IntegrityError: theip ar srian EOCHAIR FOREIGN ) má dhéanann iarracht samhail shampla atá ann cheana a shábháil atá ag sárú srian eochair eachtrach.

Cruthaítear eochracha eachtracha anois le `DEFERRABLE INICIALLY ATFERRED` in ionad `IDIRLEABLE IMMEDIATE`. Dá bhrí sin, b'fhéidir go gcaithfear táblaí a atógáil chun eochracha eachtracha a athchruthú leis an sainmhíniú nua, go háirithe má tá patrún mar seo á úsáid agat:

```
from django.db import transaction

with transaction.atomic():
    Book.objects.create(author_id=1)
    Author.objects.create(id=1)
```

Mura ndéanann tú an eochair eachtrach a athchruthú mar DEFERRED\`, theip ar an gcéad create () anois go ndéantar srianta eochairí eachtracha i bhfeidhm.

Cúltaca do bhunachar sonraí ar dtús Tar éis duit uasghrádú a dhéanamh go Django 2.0, is féidir leat táblaí a atógáil ag baint úsáide as script cosúil leis seo:

```
from django.apps import apps
from django.db import connection

for app in apps.get_app_configs():
    for model in app.get_models(include_auto_created=True):
        if model._meta.managed and not (model._meta.proxy or model._meta.swapped):
            for base in model.__bases__:
                if hasattr(base, "_meta"):
                    base._meta.local_many_to_many = []
            model._meta.local_many_to_many = []
            with connection.schema_editor() as editor:
                editor._remake_table(model)
```

Níor fuair an script seo tástáil fhairsing agus teastaíonn oiriúnú de dhíth le cásanna éagsúla mar iolracha bunachair Ná bíodh leisce ort feabhsuithe a chur leis.

Ina theannta sin, mar gheall ar theorannú athraithe tábla ar SQLite, tá sé toirmiscthe oibríochtaí: Class: ~Django.db.Migrations.Operations.RenameModel agus:class: ~django.db.migrations.operations.RenameField a dhéanamh ar mhúnlaí nó réimsí dá dtagraíonn samhlacha eile in idirbheart. D'fhonn ligean imirce ina bhfuil na hoibríochtaí seo a chur i bhfeidhm, ní mór duit an tréith Migration.Atomic\` a shocrú go False.

### Ilghnéitheach

- Baintear an rang `SessionAuthenticationMiddleware` as. Níor chuir sé feidhmiúlacht ar bith ar fáil ós rud é go bhfuil fíordheimhniú seisiún cumasaithe gan choinníoll in Django 1.10.
- Tá na láimhseálaithe réamhshocraithe earráide HTTP (\`\` láimhseálaí404\`\`, etc.) inghlaoite anois in ionad teaghráin chonair Python poncaithe. Is fearr le Django tagairtí inghlaoite toisc go soláthraíonn siad feidhmíocht níos fearr agus taithí dífhabhtaithe.
- [`RedirectView`](/ga/6.0/ref/class-based-views/base/#django.views.generic.base.RedirectView) no longer silences
  `NoReverseMatch` if the `pattern_name` doesn't exist.
- Nuair a bhíonn USE\_L10N\` as, :class: ~django.forms.floatfield agus:class: ~django.forms.decimalfield anois:setting: DECIMAL\_SEPARATOR agus:setting: THOUSAND\_SEPARATOR agus: setting: THOUSAND\_SEPARATOR le linn bailíochtaithe. Mar shampla, leis na socruithe:

  ```
  USE_L10N = False
  USE_THOUSAND_SEPARATOR = True
  DECIMAL_SEPARATOR = ","
  THOUSAND_SEPARATOR = "."
  ```

  déantar ionchur de ```"1.345"` a thiontú anois go ``1345``` in ionad 1.345 .
- Níl fo-aicmí de [`AbstractBaseUser`](/ga/6.0/topics/auth/customizing/#django.contrib.auth.models.AbstractBaseUser) ag teastáil a thuilleadh chun `get_short_name()` agus `get_full_name()` a chur i bhfeidhm. (Baintear na bunfheidhmithe a ardaíonn `NotImplementedError`.) Úsáideann `django.contrib.admin` na modhanna seo má chuirtear i bhfeidhm iad ach níl siad de dhíth. B’fhéidir gur mhaith le haipeanna tríú páirtí a úsáideann na modhanna seo cur chuige comhchosúil a ghlacadh.
- Coinnítear na socruithe formáide `FIRST_DAY_OF_WEEK` agus `NUMBER_GROUPING` anois mar shláimhreacha in aschuir amharc JavaScript agus JSON i18n.
- [`assertNumQueries()`](/ga/6.0/topics/testing/tools/#django.test.TransactionTestCase.assertNumQueries) now ignores
  connection configuration queries. Previously, if a test opened a new database
  connection, those queries could be included as part of the
  `assertNumQueries()` count.
- Méadaítear méid réamhshocraithe spáis tábla tástála Oracle ó 20M go 50M agus méadaítear an méid réamhshocraithe uathoibríoch ó 10M go 25M.
- Chun feidhmíocht a fheabhsú agus tacair mhóra torthaí á sruthú ón mbunachar sonraí, faigheann: meth: .queryset.iterator 2000 sraitheanna ag an am anois in ionad 100. Is féidir an sean-iompar a athbhunú ag baint úsáide as an paraiméadar `chunk_size`. Mar shampla:

  ```
  Book.objects.iterator(chunk_size=100)
  ```
- Ardaíonn ainmneacha pacáiste anaithnid a sholáthar san argóint `packages` den :class: ~django.views.i18n.javascriptCatalog amharc `valueError` anois in ionad dul go ciúin.
- Tá príomh-eochair samhail le feiceáil anois sa réamhshocraithe ```Samhail. __str__ () ``modh, m.sh. ``Rud ceist (1)```.
- Aimsíonn `makemigrations` athruithe anois ar an réimse samhail `limit_choices_to` rogha. Cuir é seo le do imirce atá ann cheana nó glac le himirce a ghintear go huathoibríoch do réimsí a úsáideann é.
- Ardaíonn fiosrúcháin a dteastaíonn uathoibrí:ref: claochluithe spásúla uathoibríoch \<automatic-spatial-transformations\>\`anois \`NotImplementederror\` ar MySQL in ionad geoiméadraí neamh-chlaochlaithe a úsáid go ciúin.
- Baintear `Django.Core.Exceptions.djangoruntimeWarning`. Ní úsáideadh é ach sa chúltaca taisce mar rang idirmheánach in oidhreacht `` `CachekeyWarning `` de RuntimeWarning\`.
- Athainmníodh `BaseExpression. _output_field` go `output_field`. B'fhéidir go mbeidh ort nathanna saincheaptha a nuashonrú.
- I leaganacha níos sine, comhcheanglaíonn foirmeacha agus foirmeacha a gcuid ```Meáin ``le giuirléid ``Meáin``` tríd an dá cheann a chomhcheangal. \<form-media-asset-order\>Déanann an comhcheangal iarracht anois:ref: ord coibhneasta eilimintí i ngach liosta a chaomhnú \`. Eisítear \`\`MediaOrderConflictwarning\` mura féidir an t-ordú a chaomhnú.
- Baintear `Django.contrib.gis.gdal.ogrexception`. Is ailias é do `GdalException` ó Django 1.8.
- Titeann tacaíocht do GEOS 3.3.x.
- Athraítear an bealach a roghnaítear sonraí le haghaidh ``GeometryField` chun feidhmíocht a fheabhsú, agus i gceisteanna SQL amh, caithfear na réimsí sin a fhilleadh anois in `connection.ops.select``. Féach na:ref: Nóta ceisteanna amh \<gis-raw-sql\>\`sa rang teagaisc GIS mar shampla.

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

### Argóint `context` de Field.from\_DB\_Value () \`\`agus \`\`Expression.convert\_Value ()\`

Ní úsáidtear an argóint `context` de Field.from\_DB\_Value () \`\`agus \`\`Expression.convert\_VALUE ()\` mar is foclóir folamh é i gcónaí. Is é síniú an dá mhodh anois:

```
(self, value, expression, connection)
```

in ionad:

```
(self, value, expression, connection, context)
```

Fanann tacaíocht don seanshíniú i réimsí saincheaptha agus nathanna go dtí Django 3.0.

### Ilghnéitheach

- Tá an modúl `django.db.backends.postgresql_psycopg2` a dhíchur i bhfabhar `django.db.backends.postgresql`. Tá sé ina ainm ó Django 1.9. Ní théann sé seo ach ar chód a allmhairíonn ón modúl go díreach. Is féidir leis an socrú `DATABASES` ```django.db.backends.postgresql_psycopg2'` a úsáid fós, cé gur féidir leat é sin a shimpliú tríd an ainm ``'django.db.backends.postgresql'``` a chuirtear i Django 1.9 a úsáid.
- Tá django.shortcuts.render\_to\_response () luasghabháilte i bhfabhr:func: django.shortcuts.render. Glacann render () na hargóintí céanna ach amháin go dteastaíonn iarraidh\` uaidh freisin.
- Tá an socrú `DEFAULT_CONTENT_TYPE` imithe i léig. Ní idirghníomhaíonn sé go maith le haipeanna tríú páirtí agus tá sé imithe i léig toisc gur tháinig HTML5 in ionad XHTML den chuid is mó.
- Tá `HttpRequest.xReadLines ()` a dhíchur i bhfabhar athraithe thar an iarratas.
- Tá an argóint eochairfhocal field\_name\` to:meth: .querySet.Earliest agus:meth: .queryset.latest a dhíchur i bhfabhar ainmneacha na réimse a rith mar argóintí. Scríobh ```.early ('pub_date') ``in ionad ``.early (field_name='pub_date')```.

## Gnéithe bainte i 2.0

Tá na gnéithe seo tar éis deireadh a dtimthriall díscrúdaithe bainte amach agus baintear iad i Django 2.0.

Féach: Ref: deprecated-features-1.9 le haghaidh sonraí faoi na hathruithe seo, lena n-áirítear conas úsáid na ngnéithe seo a bhaint.

- Baintear an argóint `lag` chuig Django.Dispatch.Signals.Signal.Disconnect () .
- Baintear Django.db.backends.base.basedatabaseOperations.check\_aggregate\_support () .
- Baintear an pacáiste `django.forms.extras`.
- Baintear an cúntóir `assignment_tag`.
- Baintear an argóint `óst` chuig simpletestCase.assertsRedirectes () . Baintear an ciseal comhoiriúnachta a ligeann URLanna iomlána a mheas comhionann le cinn coibhneasta nuair a bhíonn an cosán comhionann freisin.
- Baintear `Field.rel` agus `Field.remote_field.to`.
- Tá an argóint on\_delete\` le haghaidh ForeignKey\` agus `Onetoonefield` ag teastáil anois i samhlacha agus imirce. Smaoinigh ar imirce a scrúdú ionas go mbeidh níos lú díobh agat le nuashonrú.
- Baintear django.db.models.fields.add\_lazy\_relations () .
- Nuair a chumasaítear tacaíocht crios ama, ní thiontaíonn cúltaca bunachar sonraí nach dtacaíonn le criosanna ama amanna dáta feasacha go luachanna naif i UTC a thuilleadh nuair a chuirtear luachanna den sórt sin mar pharaiméadair chuig ceisteanna SQL a fhorghníomhaítear lasmuigh den ORM, m.sh. le cursor.executar () .
- Baintear django.contrib.auth.tests.utils.skipifCustomUser () .
- Baintear na ranganna `Geomanager` agus `GeoquerySet`.
- Baintear an modúl `django.contrib.gis.geoip`.
- Baintear an seiceáil `supports_recursion` le haghaidh luchtaitheoirí teimpléad as:

  - Django.Template.Engine.Engine.Find\_Template () \`\`
  - Django.Template.Loader\_Tags.ExtendSnode.Find\_Template () \`\`
  - Django.Template.Loaders.Base.Loader.Supports\_Recursion () \`\`
  - Django.Template.Loaders.Cached.Loader.Supports\_Recursion () \`\`
- Baintear na modhanna lódóra teimpléad `load_template` agus `load_template_sources`.
- Baintear an argóint `template_dirs` le haghaidh luchtaitheoirí teimpléad:

  - Django.Template.Loaders.Base.Loader.Get\_Template () \`\`
  - Django.Template.Loaders.Cached.Loader.Cache\_key () \`\`
  - Django.Template.Loaders.Cached.Loader.Get\_Template () \`\`
  - Django.Template.Loaders.Cached.Loader.Get\_Template\_Sources () \`\`
  - Django.Template.Loaders.FileSystem.Loader.Get\_Template\_Sources () \`\`
- Django.Template.Loaders.Base.Loader. Baintear \_\_call\_\_ () .
- Baintear tacaíocht do thuairimí earráide saincheaptha nach nglacann le paraiméadar eisceacht'.
- Baintear an tréith `mime_type` de Django.Utils.FeedGenerator.Atom1Feed\` agus `Django.Utils.FeedGenerator.rssFeed`.
- Baintear an argóint `app_name` le include () \`.
- Baintear tacaíocht chun 3 tuple a rith (lena n-áirítear `admin.site.urls`) mar an chéad argóint le include () \`.
- Baintear tacaíocht chun spás ainmneacha sampla URL a shocrú gan spás ainmneacha feidhmchláir.
- Réimse. Baintear \_get\_val\_from\_obj () .
- Baintear `Django.Template.Loaders.Eggs.Loader`.
- Baintear an paraiméadar `current_app` chuig na tuairimí bunaithe ar fheidhm `contrib.auth`.
- Baintear an argóint eochairfhocal `callable_obj` chuig simpletestCase.assertRaisesMessage () .
- Baintear tacaíocht don tréith allow\_tags\` ar mhodhanna `ModelAdmin`.
- Baintear an argóint eochairfhocal `enclosure` le SyndicationFeed.add\_item () \`.
- Baintear na hainmneacha `Django.Template.LoaderOrigin` agus `Django.Template.Base.StringOrigin` le haghaidh `Django.Template.Base.Origin`.

Féach:ref: deprecated-features-1.10 le haghaidh sonraí faoi na hathruithe seo.

- Baintear an rogha `makemigrations --exit`.
- Baintear tacaíocht do shannadh díreach le heochair eachtrach droim nó gaol go leor.
- Baintear na modhanna ```get_srid () ``agus ``set_srid ()``` de django.contrib.gis.geos.geosgeometry\`.
- Baintear na modhanna ```get_x () ``, `set_x ()```, get\_y () \`, set\_y ()\`, get\_z () \`, agus `set_z ()` modhanna `django.contrib.gis.geos.point`.
- Baintear na modhanna ```get_coords () ``agus ``set_coords ()``` de django.contrib.gis.geos.point\`.
- Baintear maoin `cascaded_union` de Django.contrib.gis.geos.multipolygon\`.
- Baintear django.utils.functional.allow\_lazy () .
- Baintear an rogha shell --plain .
- Baintear an modúl `django.core.urlresolvers` i bhfabhar a shuíomh nua, `django.urls`.
- Baintear `CommaseParatedIntegerField`, ach amháin le haghaidh tacaíochta in imirce stairiúla.
- Baintear an modh teimpléad Context.has\_key () .
- Baintear tacaíocht do na modhanna ```django.core.files.storage.accessed_Time () ``, `created_time ()```, agus modified\_time () \`.
- Baintear tacaíocht le haghaidh cuardaigh fiosrúcháin ag baint úsáide as ainm an tsamhail nuair a shocraítear `Meta.default_RELATED_NAME`.
- Baintear an cuardach MySQL `__search`.
- Baintear an shim chun tacú le ranganna bainisteora saincheaptha gan modh \_apply\_rel\_filters () .
- Ní thacaítear a thuilleadh le User.is\_Authenticated () \`\`agus \`\`User.is\_Anonymous ()\` a úsáid mar mhodhanna seachas airíonna.
- An `Samhail. Baintear tréith _meta.virtual_fields`.
- Na hargóintí eochairfhocal `virtual_only` i field.contribute\_to\_class () \`\`agus \`\`fíorúil\` i Samhail. Baintear \_meta.add\_field () \`.
- Baintear na tuairimí javascript\_catalog () \`\`agus \`\`json\_catalog ()\`.
- Baintear django.contrib.gis.utils.precision\_wkt () .
- In oidhreacht il-tábla, baintear cur chun cinn intuigthe `OneToonefield` go `parent_nasc`.
- Tacaíocht do Giuirléid. Baintear \_format\_value () .
- Baintear modhanna `filefield` get\_directory\_name () \`\`agus \`\`get\_filename ()\`.
- Baintear an fheidhm ```mark_for_escaping () ``agus na ranganna a úsáideann sé: ``EscapeData```, EscapeBytes\`, EscapeText\`, EscapeString\`, agus `EscapeUnicode`.
- Úsáideann an scagaire `escape` anois django.utils.html.conditional\_escape () .
- Baintear `Manager.Use_for_Related_Fields`.
- Leanann oidhreacht mhúnla `Bainiste` rialacha oidhreachta MRO. Baintear an riachtanas chun Meta.Manager\_Inheritance\_From\_Future\` a úsáid chun roghnú isteach san iompar.
- Baintear tacaíocht do middleware sean-stíl ag baint úsáide as settings.middleware\_classes\`.
