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

*3 Aibreán, 2023*

Fáilte go dtí Django 4.2!

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

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

\<Long-term support release\>Ainmnítear Django 4.2 mar a: téarma: scaoileadh tacaíochta fadtéarmach . Gheobhaidh sé nuashonruithe slándála ar feadh trí bliana ar a laghad tar éis a scaoilte Tiocfaidh deireadh le tacaíocht don LTS roimhe seo, Django 3.2, i mí Aibreáin 2024.

## Comhoiriúnacht Python

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

## Cad atá nua i Django 4.2

### Tacaíocht Psycopg 3

Tacaíonn Django anois le [psycopg](https://www.psycopg.org/psycopg3/) leagan 3.1.8 nó níos airde. \<DATABASE-ENGINE\>Chun do chód a nuashonrú, suiteáil an leabharlan:pypi: psycopg \`, \<psycopg\>ní gá duit an: setting: \`ENGINE a athrú mar thacaíonn `django.db.backends.postgresql` leis an dá leabharlann.

Is dóigh go ndéanfar tacaíocht do psycopg2 a dhíchur agus a bhaint ag pointe éigin sa todhchaí.

Bí ar an eolas go gcuireann psycopg\` 3 roinnt athruithe briseacha isteach thar psycopg2\`. Mar thoradh air sin, b'fhéidir go mbeidh ort roinnt athruithe a dhéanamh chun cuntas a thabhairt ar [difríochtaí ó psycopg2](https://www.psycopg.org/psycopg3/docs/basic/from_pg2.html).

### Tuairimí ar cholúin agus táblaí

\<django.db.models.Options.db\_table\_comment\>Ceadaíonn na roghanna nua:attr: Field.db\_Comment \<django.db.models.Field.db\_comment\>\`agus:attr: \`Meta.db\_Table\_Comment tuairimí a chruthú ar cholúin agus táblaí, faoi seach. Mar shampla:

```
from django.db import models

class Question(models.Model):
    text = models.TextField(db_comment="Poll question")
    pub_date = models.DateTimeField(
        db_comment="Date and time when the question was published",
    )

    class Meta:
        db_table_comment = "Poll questions"

class Answer(models.Model):
    question = models.ForeignKey(
        Question,
        on_delete=models.CASCADE,
        db_comment="Reference to a question",
    )
    answer = models.TextField(db_comment="Question answer")

    class Meta:
        db_table_comment = "Question answers"
```

\<django.db.models.Options.db\_table\_comment\>Chomh maith leis sin, ceadaíonn an oibríocht nua:class: ~django.db.migrations.Operations.AlterModelTableComment \`tráchtanna tábla a athrú atá sainmhínithe in:attr: \`Meta.DB\_Table\_Comment.

### Maolú don ionsaí BREACH

[`GZipMiddleware`](/ga/6.1/ref/middleware/#django.middleware.gzip.GZipMiddleware) now includes a mitigation for
the BREACH attack. It will add up to 100 random bytes to gzip responses to make
BREACH attacks harder. Read more about the mitigation technique in the [Heal
The Breach (HTB) paper](https://ieeexplore.ieee.org/document/9754554).

### Stóráil comhad i gcuimhne

Soláthraíonn an rang nua:class: django.core.files.storage.inmemoryStorage stóráil neamh-leanúnach atá úsáideach chun tástálacha a bhrostú trí rochtain diosca a sheachaint.

### Stóráil comhaid saincheaptha

Ligeann an socrú nua:setting: STORAGES cúltaca stórála comhad saincheaptha iolracha a chumrú. Rialaíonn sé innill stórála freisin chun bainistiú: doc: comhad (an eochair "réamhshocraithe” ) agus:doc: comhad stataich (an "staticfiles\</topics/files\> "eochair \</ref/contrib/staticfiles\>).

Tá na sean-socruithe `DEFAULT_FILE_STORAGE` agus `STATICFILES_STORAGE` a dhíscríobh amhail an eisiúint seo.

### Mionghnéithe

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

- Is féidir téama dath éadrom nó dorcha an riaracháin a thosc anois sa Chomhéadan, chomh maith le bheith socraithe chun socrú an chórais a leanúint.
- Is fearr le cruach cló an riaracháin clónna UI córais anois agus ní theastaíonn clónna a íoslódáil a thuilleadh Ina theannta sin, tá athróga CSS ar fáil chun na teaghlaigh cló réamhshocraithe a shárú níos éasca.
- Tá roinnt bloic agus crúcaí scripteála breise anois ag an teimpléad:source: admin/delete\_confirmation.html chun saincheapadh a éasc\<django/contrib/admin/templates/admin/delete\_confirmation.html\> ú.
- Tá na roghanna roghnaithe de:attr: ~django.contrib.admin.modeladmin.filter\_horizontal agus:attr: ~django.contrib.admin.modeladmin.filter\_vertical giuirléidí inscagtha anois.
- Tá bloc nua `nav-breadcrumbs` sa teimpléad admin/base.html anois ina bhfuil an sainchomhartha nascleanúna agus an bloc `breadcrumbs`.
- [`ModelAdmin.list_editable`](/ga/6.1/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_editable) now uses atomic transactions when making
  edits.
- jQuery is upgraded from version 3.6.0 to 3.6.4.

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

- Méadaítear an líon athraithe réamhshocraithe don hasher pasfhocal PBKDF2 ó 390,000 go 600,000.
- [`UserCreationForm`](/ga/6.1/topics/auth/default/#django.contrib.auth.forms.UserCreationForm) now saves many-to-many
  form fields for a custom user model.
- Is é an nua:class: ~django.contrib.auth.forms.baseUserCreationForm an bunaicme a mholtar anois chun an fhoirm chruthaithe úsáideora a shaincheapadh.

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

- Aisíonn an:doc: GeoJSON serializer an eochair id anois le haghaidh gnéithe sraithe\</ref/contrib/gis/serializers\> acha, a réamhshocraíonn ar phríomh-eochair na rudaí.
- Tacaíonn an rang:class: ~django.contrib.gis.gdal.gdalraster anois:class: Pathlib.path.
- Tacaíonn an rang:class: ~django.contrib.gis.geoip2.geoip2 anois le comhaid `.mmdb` a íoslódáil ó DB-IP.
- Ní chuimsíonn giuirléid teimpléad OpenLayers CSS inlíne a thuilleadh (a bhaineann an iar-bhloc map\_css freisin) chun polasaí slándála Ábhar dian a chomhlíonadh níos fearr.
- [`OpenLayersWidget`](/ga/6.1/ref/contrib/gis/forms-api/#django.contrib.gis.forms.widgets.OpenLayersWidget) is now based on
  OpenLayers 7.2.2 (previously 4.6.5).
- \<django.contrib.gis.db.models.functions.IsEmpty\>Ligeann an léiriú nua:lookup: isempty agus: class: isEmpty () geoiméadraí folmha a scagadh ar PostGIS.
- Ceadaíonn na feidh \<django.contrib.gis.db.models.functions.FromWKB\>\<django.contrib.gis.db.models.functions.FromWKT\>meanna nua:aicme: fromWKB () \`agus:aicme: \`fromWKT () geoiméadrachtaí a chruthú ó ionadaíochtaí dénártha aitheanta (WKB) agus téacs aitheanta (WKT).

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

- \<django.contrib.postgres.search.TrigramStrictWordSimilarity\>\<django.contrib.postgres.search.TrigramStrictWordDistance\>Ceadaíonn an cuardach nua:lookup: trigram\_strict\_word\_similar, agus an:class: trigramstrictWordSimilarity () \`agus:class: \`trigramstrictWordDistance () cosúlacht focal dian trigram a úsáid.
- Tacaíonn an cuardach: lookup: arrayfield.overlap anois le ```QuerySet.values () ``agus ``values_list ()``` mar thaobh na láimhe deise.

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

- Ligeann an modh nua:meth: .SiteMap.Get\_Languages\_for\_Item liosta na dteangacha a bhfuil an mír ar taispeáint dóibh a shaincheapadh.

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

- [`ManifestStaticFilesStorage`](/ga/6.1/ref/contrib/staticfiles/#django.contrib.staticfiles.storage.ManifestStaticFilesStorage) now
  has experimental support for replacing paths to JavaScript modules in
  `import` and `export` statements with their hashed counterparts. If you
  want to try it, subclass `ManifestStaticFilesStorage` and set the
  `support_js_module_import_aggregation` attribute to `True`.
- Soláthraíonn an tréith nua:attr: .manifestStaticFilesStorage.manifest\_hash hash thar gach comhad sa manifest agus athraíonn sé aon uair a athraíonn ceann de na comhaid.

#### Cúltaca bunachar sonraí

- \<database-role\>Tacaítear anois leis an rogha nua `"assume_role"` in:setting: OPTIONS ar PostgreSQL chun ligean an ról seisiúin a shonrú.
- \<database-server-side-parameters-binding\>Tacaítear anois leis an rogha nua `"server_side_binding"` in:setting: OPTIONS ar PostgreSQL le `psycopg` 3.1.8+ chun cead a úsáid:ref: cúrsaí ceangailteacha taobh freastalaí.

#### Tuairisc Earráide

- \<657\>Taispeánann an leathanach dífhabhtaithe anois:pep: nótaí eisceachta \`agus \<678\>:pep: \`suíomhanna earráide mion-ghráinne ar Python 3.11+.
- Déileáiltear le fianáin seisiúin mar dhintiúir anois agus mar sin folaítear iad agus cuirtear réaltaí (`**********`) ina n-ionad i dtuairiscí earráide.

#### Foirmeacha

- [`ModelForm`](/ga/6.1/topics/forms/modelforms/#django.forms.ModelForm) now accepts the new `Meta` option
  `formfield_callback` to customize form fields.
- [`modelform_factory()`](/ga/6.1/ref/forms/models/#django.forms.models.modelform_factory) now respects the
  `formfield_callback` attribute of the `form`’s `Meta`.

#### Idirnáisiúnú

- Cuireadh tacaíocht agus aistriúcháin leis an teanga Cúirdis Lárnach (Sorani).

#### Logáil

- Logálann an logghair:ref: django-db-logger fiosruithe bainistíochta idirbheart anois (`BEGIN`, COMMIT\`, agus `ROLLBACK`) ag an leibhéal DEBUG\`.

#### Orduithe Bainistíochta

- [`makemessages`](/ga/6.1/ref/django-admin/#django-admin-makemessages) command now supports locales with private sub-tags
  such as `nl_NL-x-informal`.
- Comhcheanglaíonn an rogha nua:option: makemigrations --update athruithe samhail san imirce is déanaí agus déanann sé na hoibríochtaí mar thoradh air a bharrfheabhsú.

#### Imirce

- Tacaíonn imirce anois le sraitheadh rudaí `Enum.flag`.

#### Samhla

- Tacaíonn QuerySet\` go forleathan anois le scagadh i gcoinne: ref: \`feidhmeanna fuinneog seachas cuardaigh scagaire disjunctive i gcoinne feidhmeanna fuinneoige agus comhiomlánú á dhéanamh.
- : meth: Tacaíonn ~.querySet.Prefetch\_Related anois:class: ~django.db.models.prefetch rudaí le ceisteanna slisnithe.
- [Registering lookups](/ga/6.1/ref/models/lookups/#lookup-registration-api) on
  [`Field`](/ga/6.1/ref/models/fields/#django.db.models.Field) instances is now supported.
- Ligeann an argóint nua `robust` le haghaidh: func: ~django.db.transaction.on\_commit 'gníomhartha a dhéanamh ar féidir leo teip a dhéanamh tar éis idirbheart bunachar sonraí a dhéanamh go rathúil.
- Léiríonn an abairt nua:class: KT () \<django.db.models.fields.json.KT\>\`luach téacs eochair, innéacs nó athrú cosáin de:class: \`~django.db.models.jsonField.
- [`Now`](/ga/6.1/ref/models/database-functions/#django.db.models.functions.Now) now supports microsecond precision
  on MySQL and millisecond precision on SQLite.
- [`F()`](/ga/6.1/ref/models/expressions/#django.db.models.F) expressions that output `BooleanField`
  can now be negated using `~F()` (inversion operator).
- Soláthraíonn ```Model ``leaganacha asincrónacha anois de roinnt modhanna a úsáideann an bunachar sonraí, ag baint úsáide as réimír ``a```: :meth: ~.model.Adelete, :meth: ~.model.arefresh\_from\_db, agus:meth: ~.model.asave.
- Soláthraíonn bainisteoirí gaolmhara leaganacha asincrónacha de mhodhanna anois a athraíonn sraith rudaí gaolmhara, ag baint úsáide as réimír `a`: :meth: ~.relatedManager.aAdd, :meth: ~.relatedManager.aRemove, agus:meth: ~.relatedManager.aset.
- [`CharField.max_length`](/ga/6.1/ref/models/fields/#django.db.models.CharField.max_length) is no
  longer required to be set on PostgreSQL, which supports unlimited `VARCHAR`
  columns.

#### Iarrataí agus Freagraí

- [`StreamingHttpResponse`](/ga/6.1/ref/request-response/#django.http.StreamingHttpResponse) now supports async iterators
  when Django is served via ASGI.

#### Tástálacha

- Formálaíonn an rogha: rogha test --debug-sql fiosruithe SQL anois le sqlparse.
- Tacaíonn ranga:Class: ~django.test.requestFactory, :class: ~django.test.asyncRequestFactory, :class: ~django.test.client, agus:class: ~django.test.asyncClient anois leis an paraiméadar `headers`, a ghlacann le foclóir ainmneacha agus luachanna ceanntásc. Ligeann sé seo comhréir níos nádúrtha chun ceanntásca a dhearbhú.

  ```python
  # Before:
  self.client.get("/home/", HTTP_ACCEPT_LANGUAGE="fr")
  await self.async_client.get("/home/", ACCEPT_LANGUAGE="fr")

  # After:
  self.client.get("/home/", headers={"accept-language": "fr"})
  await self.async_client.get("/home/", headers={"accept-language": "fr"})
  ```

#### Fóntais

- Ligeann an paraiméadar nua `encoder` le haghaidh: meth: django.utils.html.json\_script aicme ionchódóra JSON a shaincheapadh.
- Stíleann an cóip phríobháideach inmheánach de urllib.parse.urlsplit () \`\`anois \`'r'`` , ` ``n ', agus\`'t'\`\` (féach: cve: 2022-0391 agus:bpo: 43882). Tá sé seo chun tionscadail a d'fhéadfadh a bheith ag úsáid mícheart an fheidhm inmheánach url\_has\_allowed\_host\_and\_scheme () a chosaint, in ionad ceann de na feidhmeanna doiciméadaithe a úsáid chun atreoruithe URL a láimhseáil. Níor chuir tionchar ar fheidhmeanna Django.
- Tugann an fheidhm nua:func: django.utils.http.content\_disposition\_header luach ceanntásc HTTP `Content-Disposition` mar a shonraítear ar:rfc: 6266.

#### Bailíochtóirí

- Déantar an liosta de na pasfhocail choitianta a úsáideann `CommonPasswordValidator` a nuashonrú go dtí an leagan is déanaí.

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

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

- Baintear ```databaseFeatures.allows_group_by_pk ``mar níor fhan sé ach freastal ar síneadh MySQL a cuireadh in ionad trí bhrath spleáchais fheidhmiúil ceart i MySQL 5.7.15. Tabhair faoi deara go dtacaítear le ``DatabaseFeatures.allows_group_by_selected_pks``` fós agus ba chóir é a chumasú má thacaíonn do chúlcheann le brath spleáchais fheidhmiúil i gclásail `GROUP BY` mar a shonraítear leis an gcaighdeán SQL:1999\`.
- [`inspectdb`](/ga/6.1/ref/django-admin/#django-admin-inspectdb) now uses `display_size` from
  `DatabaseIntrospection.get_table_description()` rather than
  `internal_size` for `CharField`.

### Tacaíocht titim do MariaDB 10.3

Críochnaíonn tacaíocht suas srutha do MariaDB 10.3 i mí na Bealtaine 2023. Tacaíonn Django 4.2 le MariaDB 10.4 agus níos airde.

### Tacaíocht titim do MySQL 5.7

Críochnaíonn tacaíocht upstream do MySQL 5.7 i mí Dheireadh Fómhair 2023. Tacaíonn Django 4.2 le MySQL 8 agus níos airde.

### Tacaíocht titim do PostgreSQL 11

Críochnaíonn tacaíocht suas srutha do PostgreSQL 11 i mí na Samhna 2023. Tacaíonn Django 4.2 le PostgreSQL 12 agus níos airde.

### B'fhéidir go mbeadh gá anois ag socrú `update_fields` i Model.save () \`

\<django.db.models.Model.save\>D'fhonn colúin neamhriachtanacha a nuashonrú a sheachaint, téann :meth: .queryset.update\_or\_create anois `update_fields` chuig na glaonna:: Model.save () \`. Mar thoradh air sin, ba chóir aon réimsí a mhodhnaítear sna modhanna saincheaptha \`\`save () \`\`a chur leis an argóint eochairfhocal \`\`update\_fields\` sula nglactar ar `super ()`. Féach: Ref: overriding-model-methods le haghaidh tuilleadh sonraí.

### Tacaíocht titim do chomhiomlánú amh ar MySQL

Ceadaíonn MySQL 8+ spleáchas feidhmiúla ar cholúin GROUP BY , mar sin baintear an réamh-Django 4.2 maidir le grúpáil de réir eochracha príomhúil an phríomh-thábla. Mar thoradh air sin, ní thacaítear le comhiomlánú RawSQL () a úsáid a thuilleadh ar MySQL mar níl aon bhealach ann chun a chinneadh an bhfuil comhiomlánú den sórt sin de dhíth nó bailí sa chlásal \`\`GROUP BY. Úsáid: ref: feidhmeanna comhiomlánaithe' ina ionad.

### Ilghnéitheach

- Baintear an fheidhm django.http.multipartparser.parse\_header () neamhdhoiciméadaithe. Úsáid django.utils.http.parse\_header\_parameters () ina ionad.
- [`{% blocktranslate asvar … %}`](/ga/6.1/topics/i18n/translation/#std-templatetag-blocktranslate) result is now marked as
  safe for (HTML) output purposes.
- Baintear an tréith HTML autofocus\` sa bhosca cuardaigh riaracháin mar d'fhéadfadh sé a bheith mearbhall do léitheoirí scáileáin.
- Ní chruthaíonn an rogha:option: makemigrations --check comhaid imirce in easnamh a thuilleadh.
- Baintear an argóint `alias` do:meth: .expression.get\_group\_by\_cols.
- Méadaítear an leagan íosta tacaithe de sqlparse\` ó 0.2.2 go 0.3.1.
- Baintear an paraiméadar `diúlt` neamhdhoiciméadaithe den léir:class: ~django.db.Models.Exists.
- Baintear argóint `is_resum` den mhodh Query.add\_annotation () neamhdhoiciméadaithe.
- Méadaítear an leagan íosta tacaithe de SQLite ó 3.9.0 go 3.21.0.
- Méadaítear an leagan íosta tacaithe de asgiref\` ó 3.5.2 go 3.6.0.
- [`UserCreationForm`](/ga/6.1/topics/auth/default/#django.contrib.auth.forms.UserCreationForm) now rejects usernames
  that differ only in case. If you need the previous behavior, use
  [`BaseUserCreationForm`](/ga/6.1/topics/auth/default/#django.contrib.auth.forms.BaseUserCreationForm) instead.
- Méadaítear an leagan íosta tacaithe de mysqlclient\` ó 1.4.0 go 1.4.3.
- Méadaítear an leagan íosta tacaithe de `argon2-cffi` ó 19.1.0 go 19.2.0.
- Méadaítear an leagan íosta tacaithe de `Pillow` ó 6.2.0 go 6.2.1.
- Méadaítear an leagan íosta tacaithe de jinja2\` ó 2.9.2 go 2.11.0.
- Méadaítear an leagan íosta tacaithe de: pypi: redis-py \<redis\>\`ó 3.0.0 go 3.4.0.
- Ní mór réad cosúil le comhad a sholáthar do wsgi.input\` rudaí WSGIRequest\` de láimh. Roimhe seo, bhí Django níos saoire ná an t-iompar a bhfuiltear ag súil leis mar a shonraíonn sonraíocht WSGI.
- Baintear tacaíocht do PROJ\` \<5.
- [SMTP EmailBackend](/ga/6.1/topics/email/#topic-email-smtp-backend) now verifies a
  [`hostname`](https://docs.python.org/3/library/ssl.html#ssl.SSLContext.check_hostname) and
  [`certificates`](https://docs.python.org/3/library/ssl.html#ssl.SSLContext.verify_mode). If you need the
  previous behavior that is less restrictive and not recommended, subclass
  `EmailBackend` and override the `ssl_context` property.

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

### Tá rogha ```index_together ``díluasaithe i bhfabhar ``indexes```

Tá an rogha Meta.index\_Together\` a dhíchur i bhfabhar an roghna:attr: ~Django.db.Models.Options.Indexes.

Ba chóir an imirce atá ann cheana féin a láimhseáil mar imirce. Mar shampla:

```
class Author(models.Model):
    rank = models.IntegerField()
    name = models.CharField(max_length=30)

    class Meta:
        index_together = [["rank", "name"]]
```

Ba chóir go mbeadh:

```
class Author(models.Model):
    rank = models.IntegerField()
    name = models.CharField(max_length=30)

    class Meta:
        indexes = [models.Index(fields=["rank", "name"])]
```

Ag rith an t-ordú:djadmin: makemigrations ginfidh imirce ina bhfuil oibríocht a:class: ~django.db.migrations.operations.renameIndex a athainmneoidh an t-innéacs atá ann cheana. Ansin, smaoinigh ar imirce a scrúdú chun index\_together a bhaint as imirce stairiúla.

Ní thugtar tacaíocht oifigiúil anois leis an oibríocht imirce AlterIndexTogether ach amháin do chomhaid imirce réamh-Django 4.2. Ar chúiseanna comhoiriúnachta ar chúl, tá sé fós mar chuid den API poiblí, agus níl aon phlean ann é a dhíchur nó a bhaint, ach níor cheart é a úsáid le haghaidh imirce nua. Úsáid:aicme: ~django.db.migrations.operations.addIndex agus:class: ~django.db.migrations.operations.removeIndex oibríochtaí ina ionad.

### Tá litríochtaí teaghrán ionchódaithe JSON a chur chuig `JSONField` míluasaithe

“JSONField” agus a chuardaigh agus comhiomlánaithe gaolmhara a úsáideadh chun litríochtaí teaghrán ionchódaithe JSON a chur ar aghaidh a bhí ina chúis le débhríocht ar an raibh litríochtaí teaghráin ionchódaithe cheana féin ó pheirspictíocht cúltaca bunachar sonraí.

Le linn na tréimhse díghabhála déanfar iarracht litríochtaí teaghrán a dhíchódú JSON agus astófar rabhadh maidir le rath a thugann le fios foirmeacha neamh-ionchódaithe a rith ina ionad sin.

Cód a d'úsáid chun litríochtaí teaghrán ionchódaithe JSON a rith:

```
Document.objects.bulk_create(
    Document(data=Value("null")),
    Document(data=Value("[]")),
    Document(data=Value('"foo-bar"')),
)
Document.objects.annotate(
    JSONBAgg("field", default=Value("[]")),
)
```

Ba chóir go mbeadh:

```
Document.objects.bulk_create(
    Document(data=Value(None, JSONField())),
    Document(data=[]),
    Document(data="foo-bar"),
)
Document.objects.annotate(
    JSONBAgg("field", default=[]),
)
```

Ó Django 5.1+ déanfar litríochtaí teaghrán a léirmhíniú go hinchinneach mar litríochtaí teaghrán JSON.

### Ilghnéitheach

- The `BaseUserManager.make_random_password()` method is deprecated. See
  [recipes and best practices](https://docs.python.org/3/library/secrets.html#recipes-and-best-practices)
  for using Python's [`secrets`](https://docs.python.org/3/library/secrets.html#module-secrets) module to generate passwords.
- \<if\>Tá an scagaire teimpléad ```long_is ``a dhíchur i bhfabhar: tfilter: `leng` agus an oibreoir ``==``` laistigh de chlib: ttag: {% if%}. Mar shampla

  ```html+django
  {% if value|length == 4 %}…{% endif %}
  {% if value|length == 4 %}True{% else %}False{% endif %}
  ```

  in ionad:

  ```html+django
  {% if value|length_is:4 %}…{% endif %}
  {{ value|length_is:4 }}
  ```
- Tá `Django.Contrib.Auth.Hashers.Sha1PasswordHasher`, Django.Contrib.Auth.Hashers.UnsaltedSha1PasswordHasher\`, agus `Django.Contrib.Auth.Hashers.UnsaltedMd5PasswordHasher`.
- Tá `django.contrib.postgres.fields.cicharfield` luasghabháilte i bhfabhar CharField (db\_collation="...”) le comparáid neamh-chinntitheach cás-neamh-íogair.
- Tá `django.contrib.postgres.fields.Ciemailfield` scoite i bhfabhar EmailField (db\_collation="...”) le comhlánú neamhchinntiúil cás-neamh-íogair.
- Tá `django.contrib.postgres.fields.citextField` scoite i bhfabhar TextField (db\_collation="...”) le comhlánú neamhchinntiúil cás-neamh-íogair.
- Tá mixin `django.contrib.postgres.fields.citext` measctha.
- Tá na tréithe `map_height` agus `map_width` de BasegeometryWidget\` a dhíchur, bain úsáid as CSS chun giuirléidí léarscáileála a mhéadú ina ionad sin.
- Tá ```SimpleTestCase.AssertFormSetError () ``díluaite i bhfabhar ``AssertFormSetError ()```.
- Tá TransactionTestCase.assertQuerySetEqual () díluaite i bhfabhar \`\`AssertQuerySetEqual () \`.
- Tá argóintí seasaimh a chur chuig `Signer` agus `TimeStampSigner` i bhfabhar argóintí eochairfhocal amháin.
- Tá an socrú `DEFAULT_FILE_STORAGE` a dhíchur i bhfabhar STORAGES \["réamhshocraithe"\] .
- Tá an socrú `STATICFILES_STORAGE` a dhíchur i bhfabhar STORAGES \["staticfiles"\] .
- Tá an fheidhm django.core.files.storage.get\_storage\_class () díluaite.
