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

*2 Nollaig, 2019*

Fáilte go dtí Django 3.0!

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

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

## Comhoiriúnacht Python

Tacaíonn Django 3.0 le Python 3.6, 3.7, 3.8, agus 3.9 (amhail 3.0.11). Molaimid\*\* go hard\*\* agus ní thacaímid go hoifigiúil ach leis an scaoileadh is déanaí de gach sraith.

Is é an tsraith Django 2.2.x an ceann deireanach a thacaíonn le Python 3.5.

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

Tar éis Django 3.0 a scaoileadh, molaimid go scaoilfidh údair aip tríú páirtí tacaíocht do gach leagan de Django roimh 2.2. 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 3.0.

## Cad atá nua i Django 3.0

### Tacaíocht MariaDB

Tacaíonn Django anois go hoifigiúil le [Mariadb](#mariadb) 10.1 agus níos air\< <https://mariadb.org/>\> de. \<mariadb-notes\>Féach:ref: Nótaí MariaDB le haghaidh tuilleadh sonraí.

### Tacaíocht ASGI

Cuireann Django 3.0 tús lenár dturas chun Django a dhéanamh go hiomlán in ann sioncronaithe a dhéanamh trí thacaíocht a sholáthar chun feidhmiú mar fheidhmchlár [ASGI](https://asgi.readthedocs.io/).

Tá sé seo i dteannta lenár dtacaíocht WSGI atá ann cheana. Tá sé i gceist ag Django tacú leis an dá cheann don todhchaí atá le teacht. Ní bheidh gnéithe async ar fáil ach d'iarratais a ritheann faoi ASGI, áfach.

Ag an gcéim seo ní bhaineann tacaíocht async ach leis an bhfeidhmchlár ASGI seachtrach. Go hinmheánach fanann gach rud sioncrónach. Ní thacaítear le meánghearraí asincrónacha, tuairimí, srl. Is féidir leat, áfach, middleware ASGI a úsáid timpeall feidhmchlár Django, rud a ligeann duit Django a chomhcheangal le creataí ASGI eile.

Ní gá d'iarratais a aistriú mura dteastaíonn uait tosú ag triail a dhéanamh le cód asincrónach, ach tá: doc: doiciméadú againn maidir le húsáid le ASGI más mian leat níos mó \</howto/deployment/asgi/index\> a fhoghlaim.

Tabhair faoi deara, mar fho-éifeacht den athrú seo, go bhfuil Django ar an eolas anois faoi lúba imeachtaí asincrónacha agus go gcuirfidh sé bac ort cód glaonna atá marcáilte mar “neamhshábháilte async” - mar oibríochtaí ORM - ó chomhthéacs asincrónach. Má bhí tú ag úsáid Django ó chód async roimhe seo, d'fhéadfadh sé seo a spreagadh má bhí tú ag déanamh é go mícheart. Má fheiceann tú earráid SynchronousOnlyOperation\`, ansin déan scrúdú go dlúth ar do chód agus bog aon oibríochtaí bunachar sonraí chun a bheith i snáithe leanbh sioncrónach.

### Srianta eisiaimh ar PostgreSQL

Cumasaíonn an rang nua:class: ~django.contrib.postgres.Constraints.ExclusionConstraint srianta eisiaimh a chur ar PostgreSQL. \<django.db.models.Options.constraints\>Cuirtear srianta le samhlacha ag baint úsáide as an rogha: attr: Meta.Constraints .

### Nathanna scagaire

Is féidir abairtí a aschuir:class: ~django.db.models.booleanfield a úsáid go díreach anois i scagairí QuerySet , gan anótáil a dhéanamh ar dtús agus ansin scagadh i gcoinne an anótála.

### Liomhanna le haghaidh roghanna réimse samhail

Tá cineálacha áireamh saincheaptha `TextRoices`, IntegerChoices\`, agus `Roghnaithe` ar fáil anois mar bhealach chun: attr: .field.choices a shainiú. Soláthraítear cineálacha `TextChoices` agus `IntegerChoices` do réimsí téacs agus sláimhir. Ligeann an rang `Roghna` áireamh comhoiriúnach a shainiú do chineálacha sonraí nithiúla eile. Tacaíonn na cineálacha áireamh saincheaptha seo le lipéid inléite don duine ar féidir iad a aistriú agus rochtain a fháil orthu trí mhaoin ar an áireamh nó ar a chomhaltaí. Féach: Tagairt: Cineálacha áireamh \<field-choices-enum-types\>\`le haghaidh tuilleadh sonraí agus samplaí.

### Mionghnéithe

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

- Cuireadh tacaíocht leis an tréith `admin_order_field` ar airíonna in:attr: .modeladmin.list\_display.
- Ligeann an modh nua:meth: ModelAdmin.get\_inlines () \<django.contrib.admin.ModelAdmin.get\_inlines\>\`na línte a shonrú bunaithe ar an iarratas nó an tsamhail.
- Déantar leabharlann Select2 a uasghrádú ó leagan 4.0.3 go 4.0.7.
- tá jQuery uasghrádaithe ó leagan 3.3.1 go 3.4.1.

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

- Ligeann an tréith nua `reset_url_token` in:class: ~django.contrib.auth.views.passwordResetConfirmView paraiméadar comhartha a thaispeántar mar chomhpháirt d'URLanna athshocraithe pasfhocal a shonrú.
- Cuireadh leis: Class: ~django.contrib.auth.backends.baseBackend rang chun saincheapadh cúltaca fíordheimhnithe a éascú.
- Cuireadh leis: Meth: ~django.contrib.auth.models.user.get\_USER\_PERMISSIONS () \`modh chun an modh atá ann: meth: \`~django.contrib.auth.models.user.get\_Group\_Permissions () a scáthú.
- Cuireadh tréith HTML `autocomplete` le giuirléidí réimsí ainm úsáideora, ríomhphoist agus pasfhocal in:mod: django.contrib.auth.forms le haghaidh idirghníomhaíochta níos fearr le bainisteoirí pasfhocal brabhsálaí.
- [`createsuperuser`](/ga/5.2/ref/django-admin/#django-admin-createsuperuser) now falls back to environment variables for
  password and required fields, when a corresponding command line argument
  isn't provided in non-interactive mode.
- [`REQUIRED_FIELDS`](/ga/5.2/topics/auth/customizing/#django.contrib.auth.models.CustomUser.REQUIRED_FIELDS) now supports
  [`ManyToManyField`](/ga/5.2/ref/models/fields/#django.db.models.ManyToManyField)s.
- Tugann an modh nua:meth: .userManager.with\_perm ar ais úsáideoirí a bhfuil an cead sonraithe acu.
- Méadaítear an líon athraithe réamhshocraithe don hasher pasfhocal PBKDF2 ó 150,000 go 180,000.

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

- Ceadaíodh feidhmeanna cuardaigh spásúla MySQL oibriú ar ghéiméadracha fíor. Bhí tacaíocht roimhe seo teoranta do bhosca teorainneacha.
- Cuireadh an fheidhm: class: ~django.contrib.gis.db.models.functions.geometryDistance leis, le tacaíocht ar PostGIS.
- Tacaíocht bhreise don aonad `furlong` in:class: ~django.contrib.gis.Measure.distance.
- Tacaíonn an socrú: SETTING: GEOIP\_PATH anois:class: Pathlib.path.
- Glacann an rang:class: ~django.contrib.gis.geoip2.geoip2 anois:class: Pathlib.path ```pathlib.path` ``path```.

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

- Cuidíonn an nua:class: ~django.contrib.postgres.fields.rangeOperators le clóscríobh in oibreoirí SQL a sheachaint ar féidir a úsáid le chéile le:class: ~django.contrib.postgres.fields.rangefield.
- Léiríonn an léiriú nua:class: ~django.contrib.postgres.fields.rangeBoundary teorainneacha na raon.
- Ceadaíonn na ranganna nua:class: ~django.contrib.postgres.operations.addIndexConcurrently agus:class: ~django.contrib.postgres.operations.removeIndexConcurrently innéacsanna CONCURRENTLY a chruthú agus a scaoileadh ar PostgreSQL.

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

- Ligeann an modh nua:meth: ~django.contrib.sessions.backends.base.sessionbase.get\_session\_cookie\_age () aois an fianán seisiúin a shonrú go dinimiciúil.

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

- Chuir an tréith aicme teanga leis an:class: django.contrib.syndication.views.feed chun teanga beatha a shaincheapadh. Is é an luach réamhshocraithe:func: ~django.utils.translation.get\_language () \`in ionad:setting: \`LANGUAGE\_CODE.

#### Cache

- [`add_never_cache_headers()`](/ga/5.2/ref/utils/#django.utils.cache.add_never_cache_headers) and
  [`never_cache()`](/ga/5.2/topics/http/decorators/#django.views.decorators.cache.never_cache) now add the `private`
  directive to `Cache-Control` headers.

#### Stóráil Comhad

- Ligeann an modh nua:meth: .storage.get\_alternative\_name an algartam a shaincheapadh chun ainmneacha comhaid a ghiniúint má tá comhad leis an ainm uaslódáilte ann cheana féin.

#### Foirmeacha

- Féadfaidh Formsets an giuirléid a úsáidtear a rialú agus foirmeacha á ordú trí:attr: ~django.forms.formsets.baseFormSet.can\_Order trí:attr: ~django.formsets.baseFormSet.Ordering\_Widget tréith nó overriding:attr: ~django.formsets.baseformset.get\_ordering\_widget) .

#### Idirnáisiúnú

- Cuireadh sean:setting: LANGUAGE\_COOKIE\_HTTPONLY, :setting: LANGUAGE\_COOKIE\_SAMESITE, agus:setting: LANGUAGE\_COOKIE\_SECURE socruithe chun na bratacha HTTPONLY\`, SAMESITE\`, agus `Secure` a shocrú ar fhianáin teanga. Coinníonn luachanna réamhshocraithe na socruithe seo an t-iompar roimhe seo.
- Tacaíocht agus aistriúcháin leis an teanga Úsbéiceach.

#### Logáil

- Ligeann paraiméadar nua `reporter_class` de:class: ~django.utils.log.adminEmailHandler fo-aicme `django.views.debug.exceptionReporter` a sholáthar chun an téacs rianaithe a sheoltar chuig an suite:setting: ADMINS a shaincheapadh: False.

#### Orduithe Bainistíochta

- Ceadaíonn an rogha nua:option: compilemessages --ignore neamhaird a dhéanamh ar eolairí ar leith agus tú ag cuardach comhaid .po le tiomsú.
- [`showmigrations --list`](/ga/5.2/ref/django-admin/#cmdoption-showmigrations-list) now shows the applied datetimes when
  `--verbosity` is 2 and above.
- Ar PostgreSQL, tacaíonn: djadmin: dbshell le deimhnithe TLS ar thaobh an chliaint anois.
- : djadmin: inspectdb anois introspects:class: ~django.db.models.onetoonefield nuair a bhíonn srian eochair uathúil nó príomhúil ag eochair eachtrach.
- Sceapann an rogha nua:option: --skip-checks seiceálacha córais a reáchtáil sula ndéantar an t-ordú a reáchtáil.
- Tacaíonn na roghanna: rogha: startapp --template agus:option: startproject --template le teimpléid atá stóráilte i gcartlann XZ (.tar.xz\`, .txz\`) agus cartlanna LZMA (.tar.lz\`, .tlz\`).

#### Samhla

- Feidhmeanna bunachar sonraí hash breise:class: ~django.db.models.functions.md5, :class: ~django.db.models.functions.sha1, :class: ~django.db.models.functions.sha224, :class: ~django.db.models.models.256, :class: ~django.db.models.models.S.SHA384, agus:aicme: ~Django.db.Models.Functions.SHA512.
- Cuireadh feidhm bunachar sonraí: class: ~django.db.models.functions.sign leis.
- Cinneann paraiméadar nua `is_dst` den fheidhmeanna bunachar sonraí :class: ~django.db.Models.Functions.trunc cóireáil dáta nach bhfuil ann agus débhríoch.
- Taispeánann `connection.queries` ráitis COPY... TO\` anois ar PostgreSQL.
- [`FilePathField`](/ga/5.2/ref/models/fields/#django.db.models.FilePathField) now accepts a callable for `path`.
- Tábla idirmheánach siméadrach ceadaithe le haghaidh féin-tagartha: aicme: ~ Django.db.Models.manyToManyField.
- Tacaíonn na tréithe `name` de:class: ~Django.db.Models.CheckConstraint, :class: ~django.db.Models.UniqueConstraint, agus:class: ~django.db.models.index anois le lipéad aip agus idirghabháil ranga ag baint úsáide as `% (app_label) s'` agus % (class) “sealbhóirí áiteanna.
- \<descriptors\>Ligeann an tréith nua:attr: .field.descriptor\_class réimsí samhail an t-iompar faighte agus socraithe a shaincheapadh trí a gcuid: py:ref: descriptors a shárú.
- [`Avg`](/ga/5.2/ref/models/querysets/#django.db.models.Avg) and [`Sum`](/ga/5.2/ref/models/querysets/#django.db.models.Sum) now support
  the `distinct` argument.
- Cuireadh leis: Class: ~Django.db.Models.SmallAutoField a ghníomhaíonn go leor cosúil:class: ~django.db.models.autofield ach amháin nach gceadaíonn sé ach luachanna faoi theorainn áirithe (atá ag brath ar bhunachar sonraí). Tá luachanna ó `1` go 32767\` sábháilte i ngach bunachar sonraí a thacaíonn Django.
- [`AutoField`](/ga/5.2/ref/models/fields/#django.db.models.AutoField),
  [`BigAutoField`](/ga/5.2/ref/models/fields/#django.db.models.BigAutoField), and
  [`SmallAutoField`](/ga/5.2/ref/models/fields/#django.db.models.SmallAutoField) now inherit from
  `IntegerField`, `BigIntegerField` and `SmallIntegerField` respectively.
  System checks and validators are now also properly inherited.
- [`FileField.upload_to`](/ga/5.2/ref/models/fields/#django.db.models.FileField.upload_to) now supports [`pathlib.Path`](https://docs.python.org/3/library/pathlib.html#pathlib.Path).
- [`CheckConstraint`](/ga/5.2/ref/models/constraints/#django.db.models.CheckConstraint) is now supported on MySQL 8.0.16+.
- Ceadaíonn an modh nua ````allows_group_by_selected_pks_on_model () ```django.db.backends.base.baseDatabaseFeatures```` barrfheabhsú clásail `GROUP BY` nach dteastaíonn ach príomheochracha na samhlacha roghnaithe. De réir réamhshocraithe, ní thacaítear leis ach do mhúnlaí bainistithe ar PostgreSQL.

  Chun an barrfheabhsú eochair príomhúil `GROUP BY` a chumasú do mhúnlaí neamhbhainistithe, caithfidh tú inneall bunachar sonraí PostgreSQL a fho-aicmiú, ag cur an modh aicme allows\_group\_by\_selected\_pks\_on\_model () mar is gá duit. \<subclassing-database-backends\>Féach: tagairt: Fo-aicmiú na gcúltaca bunachar sonraí ionsuite mar shampla.

#### Iarrataí agus Freagraí

- Ceadaíodh: aicme: ~django.http.httpResponse a thionscnamh le hábhar: class: memoryview.
- Le húsáid i, mar shampla, teimpléid Django, ceadaíonn: attr: .httpRequest.headers cuardach anois ag baint úsáide as béim (m.sh. `user_agent`) in ionad idirlíochtaí.

#### Slándáil

- [`X_FRAME_OPTIONS`](/ga/5.2/ref/settings/#std-setting-X_FRAME_OPTIONS) now defaults to `'DENY'`. In older versions, the
  [`X_FRAME_OPTIONS`](/ga/5.2/ref/settings/#std-setting-X_FRAME_OPTIONS) setting defaults to `'SAMEORIGIN'`. If your site
  uses frames of itself, you will need to explicitly set `X_FRAME_OPTIONS =
  'SAMEORIGIN'` for them to continue working.
- [`SECURE_CONTENT_TYPE_NOSNIFF`](/ga/5.2/ref/settings/#std-setting-SECURE_CONTENT_TYPE_NOSNIFF) now defaults to `True`. With this
  enabled, [`SecurityMiddleware`](/ga/5.2/ref/middleware/#django.middleware.security.SecurityMiddleware) sets the
  [Roghanna Cineál-Ábhar X-: nosniff](/ga/5.2/ref/middleware/#x-content-type-options) header on all responses that do not already
  have it.
- \<referrer-policy\>:class: ~django.middleware.security.securityMiddleware is féidir leis an gceannteideal: ref: Referrer-Policy a sheoladh anois.

#### Tástálacha

- Ceadaíonn an t-argóint nua tástála:class: ~django.test.client `raise_request_exception` rialú cibé an chóir eisceachtaí a ardaíodh le linn an iarratais a ardú sa tástáil freisin. Tá an luach réamhshocraithe go `True` le haghaidh comhoiriúnacht ar ais. Más “False” é agus má tharlaíonn eisceacht, cuirfidh an cliant tástála freagra 500 ar ais leis an tréith: attr: ~django.test.response.exc\_info, tuple a sholáthraíonn faisnéis faoin eisceacht a tharla.
- Is féidir tástálacha agus cásanna tástála atá le reáchtáil a roghnú de réir patrún ainm tástála ag baint úsáide as an rogha nua: rogha: test -k.
- Déileálann comparáid HTML, mar a úsáideann: meth: ~django.test.simpletestCase.assertMMleQual anois téacs, tagairtí carachtair, agus tagairtí eintiteas a thagraíonn don charachtar céanna mar choibhéis.
- [`DiscoverRunner`](/ga/5.2/topics/testing/advanced/#django.test.runner.DiscoverRunner) can now spawn a debugger at each
  error or failure using the [`test --pdb`](/ga/5.2/ref/django-admin/#cmdoption-test-pdb) option.

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

### Model.save () nuair a sholáthraíonn sé réamhshocraithe don phríomh-eochair

[`Model.save()`](/ga/5.2/ref/models/instances/#django.db.models.Model.save) no longer attempts to find a row when saving a new
`Model` instance and a default value for the primary key is provided, and
always performs a single `INSERT` query. In older Django versions,
`Model.save()` performed either an `INSERT` or an `UPDATE` based on
whether or not the row exists.

\<ref-models-force-insert\>Déanann sé seo glaoch ar ```Model.save () ``agus eochairluach réamhshocraithe a sholáthraítear comhionann le passing:ref: `force_insert=True `go `save ()``` an tsamhail. Beidh “IntegrityError” mar thoradh ar iarrachtaí sampla nua Samhail a úsáid chun an tsraith atá ann cheana a nuashonrú.

D'fhonn samhail atá ann cheana a nuashonrú le haghaidh príomhluach sonrach, bain úsáid as an modh: meth: ~django.db.models.query.queryset.update\_or\_create nó QuerySet.Filter (pk=...) .update (...) ina ionad. Mar shampla:

```pycon
>>> MyModel.objects.update_or_create(pk=existing_pk, defaults={"name": "new name"})
>>> MyModel.objects.filter(pk=existing_pk).update(name="new name")
```

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

- Is é an dara argóint de `DatabaseIntrospection.get_geometry_type ()` anois an cur síos sraithe in ionad ainm an cholúin.
- `DatabaseIntrospection.get_field_type ()` ní fhéadfaidh tuples a thabhairt ar ais a thuilleadh.
- Más féidir leis an mbunachar sonraí eochracha eachtracha a chruthú sa ráiteas SQL céanna a chuireann réimse leis, cuir `schemaEditor.sql_create_column_inline_fk` leis an SQL cuí; ar shlí eile, socraigh `databaseFeatures.can_create_inline_fk = False`.
- Athainmnítear `databaseFeatures.can_Return_id_from_insert` agus `can_return_ids_from_bulk_insert` go `can_return_columns_from_insert` agus `can_return_rows_from_bulk_insert`.
- Láimhseálann feidhmeanna bunachar sonraí anois formáidí: class: datetime.timezone nuair a chruthaítear ag baint úsáide as cásanna: class: datetime.timedelta (m.sh. timezone (timedelta (hours=5)) \`, a d'aschur ```UTC+ 05:00 '`). Ba chóir go ndéanfadh cúltaca tríú páirtí an fhormáid seo a láimhseáil agus iad ag ullmhú: class: `~django.db.models.DateTimeField` i ``datetime_cast_date_sql () ``, `datetime_extract_sql ()```, srl.
- Cuirtear iontrálacha le haghaidh `AutoField`, `BigAutoField`, agus `SmallAutoField` le `DatabaseOperations.integer_field_ranges` chun tacú leis na bailíochtaithe raon slánuimhreacha ar na cineálacha réimse seo. Seans go mbeidh ar innill tríú páirtí na hiontrálacha réamhshocraithe a shaincheapadh.
- Cuirtear ```fetch_returned_insert_column () ``in ionad `databaseOperations.fetch_returned_insert_id ()``` a thugann liosta luachanna ar ais ag an ráiteas `INSERT... RETURNING`, in ionad luach amháin.
- Cuirtear `return_insert_columns()` in ionad `DatabaseOperations.return_insert_id()` a ghlacann le hargóint `réimsí`, ar féidir é a chur ar ais aríst réimsí tar éis é a chur isteach. De ghnáth, níl anseo ach an eochair bhunscoile uathghinte.

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

- Is fearr le teachtaireachtaí athraithe stair samhail Riaracháin lipéid réimse níos inléite anois seachas ainmneacha réimse.

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

- Baintear tacaíocht do PostGIS 2.1.
- Baintear tacaíocht do SpatiaLite 4.1 agus 4.2.
- Baintear tacaíocht do GDAL 1.11 agus GEOS 3.4.

### Tacaíocht titim do PostgreSQL 9.4

Críochnaíonn tacaíocht suas srutha do PostgreSQL 9.4 i mí na Nollag 2019. Tacaíonn Django 3.0 le PostgreSQL 9.5 agus níos airde.

### Tacaíocht titim do Oracle 12.1

Críochnaíonn tacaíocht suas srutha do Oracle 12.1 i mí Iúil 2021. Tacófar le Django 2.2 go dtí Aibreán 2022. Tacaíonn Django 3.0 go hoifigiúil le Oracle 12.2 agus 18c.

### API comhoiriúnachta príobháideacha Python 2

Cé gur baineadh tacaíocht Python 2 i Django 2.0, níor baineadh roinnt APIs príobháideacha ó Django ionas go bhféadfadh aipeanna tríú páirtí leanúint ar aghaidh ag úsáid iad go dtí deireadh saoil Python 2.

Ós rud é go bhfuilimid ag súil go laghdóidh apps comhoiriúnacht Python 2 agus tacaíocht á cur le Django 3.0, táimid ag baint na APIs seo faoi láthair.

- django.test.utils.str\_prefix () \- Níl réamhfhoirmeacha 'u' ag teaghráin i Python 3.
- django.test.utils.patch\_logger () \- Úsáid: Meth: UnitTest.TestCase.AssertLogs ina ionad.
- django.utils.lru\_cache.lru\_cache () \- Alias de:func: functools.lru\_cache.
- ```django.utils.decorators.available_attrs () ``- Tugann an fheidhm seo ``Functools.wrapper_assignments```.
- `Django.Utils.Decorators.ContextDecorator` \- Alias de:aicme: ContextLib.ContextDecorator.
- django.utils. \_os.abspathu () \- Ainm aith:func: os.path.abspath.
- ```django.utils. _os.upath () ``agus ``npath ()``` \- Ní dhéanann na feidhmeanna seo aon rud ar Python 3.
- `django.utils.six` \- Bain úsáid as an leabharlann seolta seo nó aistrigh chu:pypi: six.
- ```django.utils.encoding.python_2_unicode_compatible () ``- Alias de ``six.python_2_unicode_compatible ()```.
- django.utils.functional.curry () \- Úsáid: Func: functools.partial nó:class: functools.partialmethod. Féach: commit: 5b1c389603a353625ae1603ba345147356336afb.
- `Django.Utils.SafeString.SafeBytes` \- Gan úsáid ó Django 2.0.

### Luach réamhshocraithe nua don socrú `FILE_UPLOAD_PERMISSIONS`

I leaganacha níos sine, socraíonn an:setting: FILE\_UPLOAD\_PERMISSIONS réamhshocraithe go `None`. Leis an réamhshocraithe:setting: FILE\_UPLOAD\_HANDLERS, mar thoradh air seo tá ceadanna difriúla ag comhaid uaslódáilte ag brath ar a méid agus cén láimhseálaí uaslódála a úsáidtear.

Tá `FILE_UPLOAD_PERMISSIONS` réamhshocraithe anois go `0o644` chun an neamhréireacht seo a sheachaint.

### Luachanna réamhshocraithe nua le haghaidh socruithe sl

Chun tionscadail Django a dhéanamh níos sláine de réir réamhshocraithe, tá luachanna réamhshocraithe níos sláine ag roinnt socruithe slándála anois:

- [`X_FRAME_OPTIONS`](/ga/5.2/ref/settings/#std-setting-X_FRAME_OPTIONS) now defaults to `'DENY'`.
- [`SECURE_CONTENT_TYPE_NOSNIFF`](/ga/5.2/ref/settings/#std-setting-SECURE_CONTENT_TYPE_NOSNIFF) now defaults to `True`.

Féach an *Cad atá nua*:Ref: Slándála roinn \<whats-new-security-3.0\>\`thuas le haghaidh tuilleadh sonraí faoi na hathruithe seo.

### Ilghnéitheach

- `````Cineál ábhair. Cuimsíonn __str__ () ````app_label````` an tsamhail anois chun samhlacha leis an ainm céanna a dhíbhriú in aipeanna éagsúla.
- Toisc go bhfuil rochtain a fháil ar an teanga sa seisiún seachas sa fhianán, ní chuireann `LocalEmiddleware` ag lorg teanga an úsáideora sa seisiún a thuilleadh agus: func: django.contrib.auth.logout ní chaomhníonn teanga an tseisiúin a thuilleadh tar éis logáil amach.
- [`django.utils.html.escape()`](/ga/5.2/ref/utils/#django.utils.html.escape) now uses [`html.escape()`](https://docs.python.org/3/library/html.html#html.escape) to escape HTML.
  This converts `'` to `&#x27;` instead of the previous equivalent decimal
  code `&#39;`.
- \<unittest.-k\>Oibríonn an rogha `django-admin test -k` anois mar an rogha: rogha: unittest -k seachas mar aicearra do `--keepdb`.
- Baintear tacaíocht do `pywatchman` \<1.2.0.
- [`urlencode()`](/ga/5.2/ref/utils/#django.utils.http.urlencode) now encodes iterable values as they are
  when `doseq=False`, rather than iterating them, bringing it into line with
  the standard library [`urllib.parse.urlencode()`](https://docs.python.org/3/library/urllib.parse.html#urllib.parse.urlencode) function.
- Aistríonn scagaire teimpléad ```intword` anois ``1.0``` mar abairt uaineach agus gach luach uimhriúil eile mar iolra. D'fhéadfadh sé seo a bheith mícheart i gcás roinnt teangacha.
- Déanann luach a shannadh do mhúnla 's:class: ~django.db.models.foreignKey nó:class: ~django.db.models.onetoonefield `` `_id' `` tréith an réimse comhfhreagrach anois. Beidh ceist mar thoradh ar rochtain a fháil ar an réimse ina dhiaidh sin.
- [`patch_vary_headers()`](/ga/5.2/ref/utils/#django.utils.cache.patch_vary_headers) now handles an asterisk
  `'*'` according to [**RFC 7231 Section 7.1.4**](https://datatracker.ietf.org/doc/html/rfc7231.html#section-7.1.4), i.e. if a list of header
  field names contains an asterisk, then the `Vary` header will consist of a
  single asterisk `'*'`.
- Ar MySQL 8.0.16+, cuimsíonn `PositiveIntegerField` agus `PositiveSmallIntegerField` srian seiceála anois chun luachanna diúltacha sa bhunachar sonraí a chosc.
- Cuirtear `Alias=None` leis an síniú de:meth: .expression.get\_group\_by\_cols.
- Ní thuilleann `RegExPattern`, a úsáid:func: ~django.urls.re\_path, argóintí eochairfhocal le luachanna None le cur chuig an amharc do na grúpaí ainmnithe roghnacha atá in easnamh.

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

### ```django.utils.encoding.force_text () ``agus ``smart_text ()```

Tá na hainmneacha ```smart_text () ``agus ``force_text ()``` (ó Django 2.0) de ```smart_str () ``agus ``force_str ()``` a dhíchur. Déan neamhaird ar an díghabháil seo má thacaíonn do chód le Python 2 toisc go bhfuil iompar ```smart_str () ``agus ``force_str ()``` difriúil ansin.

### Ilghnéitheach

- Tá ```django.utils.http.urlquote () ``, `urlquote_plus ()```, urlunquote () \`, agus `urlunquote_plus ()` díluchtaithe i bhfabhar na bhfeidhmeanna is ainmneacha iad le haghaidh: :func: urllib.parse.quote, :func: ~urllib.parse.quote, :func: ~urllib.parse.quote .quote\_plus\`, :func: ~urllib.parse.unquote, agus:func: ~urllib.parse.unquote\_plus.
- Tá ```django.utils.translation.ugettext () ``, ``ugettext_lazy ()```, ugettext\_noop () \`, `ungettext ()`, agus ungettext\_lazy () díluaite i bhfabhar na bhfeidhmeanna gur ainmneacha iad le haghaidh: :func: tils.django.utranslation.gettext, :func: ~django.utils.translation.gettext\_lazy, :func: ~django.utils.translation.gettext\_noop, :func: ~django.utils.translation.ngettext, agus:func: ~django.utils.translation.nget\_textlazy.
- Chun cruthú seisiúin a theorannú agus dá bhrí sin roinnt straitéisí caching a fhabhrú, stopfaidh: func: django.views.i18n.set\_language ag socrú teanga an úsáideora sa seisiún i Django 4.0. Ó Django 2.1, stóráiltear an teanga i gcónaí sa fhianán: setting: LANGUAGE\_COOKIE\_NAME.
- Tá ```django.utils.text.unescape_entity () ``a dhíchur i bhfabhar :func: `html.unescape`. Tabhair faoi deara go ndéanann ``unescape_entity () ``, `html.unescape ()``` measúnú ar teaghráin leisciúil láithreach.
- Chun mearbhall féideartha maidir le raon feidhme éifeachtach a sheachaint, athainmnítear an fóntais inmheánach príobháideach ```is_safe_url () ``go `url_has_allowed_host_and_scheme ()```. Ní thugann sé le tuiscint go ginearálta go bhfuil óstach agus scéim ceadaithe ag URL go bhfuil sé “sábháilte”. Féadfar é a lua go mícheart fós, mar shampla. Déan cinnte go n-úsáidtear freisin: func: ~django.utils.encoding.iri\_to\_uri ar chomhpháirt cosán URLanna neamhiontaofa.

## Gnéithe bainte i 3.0

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

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

- Baintear an modúl `django.db.backends.postgresql_psycopg2`.
- Baintear django.shortcuts.render\_to\_response () .
- Baintear an socrú `DEFAULT_CONTENT_TYPE`.
- Baintear HttpRequest.xreadLines () .
- Baintear tacaíocht don argóint `context` de Field.from\_DB\_VALUE () \`\`agus \`\`Expression.convert\_VALUE ()\`.
- Baintear an argóint eochairfhocal `field_name` de QuerySet.early () \`\`agus \`\`latest ()\`.

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

- Baintear an fheidhm GIS `ForcerHR`.
- Baintear django.utils.http.cookie\_date () .
- Baintear na leabharlanna clibeanna teimpléad `staticfiles` agus `admin_static`.
- Baintear django.contrib.staticfiles.templatetags.staticfiles.static () .
