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

*7 Lúnasa, 2024*

Fáilte go Django 5.1!

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

## Comhoiriúnacht Python

Tacaíonn Django 5.1 le Python 3.10, 3.11, 3.12, agus 3.13 (amhail 5.1.3). 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 5.1

### `{% querystring%}` clib teimpléad

Tugann Django 5.1 clib te \<querystring\>impléad:ttag: {% querystring%} isteach, ag simpliú modhnú paraiméadair cheisteanna in URLanna, rud a fhágann go bhfuil sé níos éasca naisc a ghiniúint a choinníonn paraiméadair cheisteanna atá ann cheana agus cinn sonracha á chur leis nó a athrú.

Mar shampla, féadann sé a bheith an-deacair uimhriú leathanach agus teaghráin ceisteanna i dteimpléid a nascleanúint. Smaoinigh ar an blúire teimpléad seo a ghineann URL go dinimiciúil chun dul chuig an gcéad leathanach eile laistigh d'amharc leathanachach:

```html+django
{# Linebreaks added for readability, this should be one, long line. #}
<a href="?{% for key, values in request.GET.iterlists %}
  {% if key != "page" %}
    {% for value in values %}
      {{ key }}={{ value }}&amp;
    {% endfor %}
  {% endif %}
{% endfor %}page={{ page.next_page_number }}">Next page</a>
```

Agus tú ag aistriú chuig an gclib teimpléid nua seo a úsáid, bíonn an méid thuas go draíochta:

```html+django
<a href="{% querystring page=page.next_page_number %}">Next page</a>
```

### Linnte Ceangail PostgreSQL

Tugann Django 5.1 isteach freisin: ref: tacaíocht linn nasc \<postgresql-pool\>\`do PostgreSQL. Toisc gur féidir leis an am chun nasc nua a bhunú a bheith réasúnta fada, is féidir le naisc a choinneáil oscailte an latency a laghdú.

Chun linn nasc le [psycopg](https://www.psycopg.org/) a úsáid, is féidir leat an rogha `"pool"` a shocrú taobh istigh: setting: OPTIONS chun a bheith ina dhic le rith chuig:class: ~psycopg:psycopg\_pool.connectionpool, nó chuig True\` chun na réamhshocruithe `ConnectionPool` a úsáid:

```
DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.postgresql",
        # ...
        "OPTIONS": {
            "pool": {
                "min_size": 2,
                "max_size": 4,
                "timeout": 10,
            }
        },
    },
}
```

### Middleware chun fíordheimhniú de réir réamhshocraithe a bheith

Atreoraíonn an nua:class: ~django.contrib.auth.middleware.loginrequiredMiddleware gach iarratas neamhfhíordheimhnithe chuig leathanach logála isteach. Is féidir le tuairimí iarratais neamhfhíordheimhnithe a cheadú tríd an maisitheoir nua:func: ~django.contrib.auth.decorators.login\_not\_required a úsáid.

Meas `LoginRequiredMiddleware` na luachanna `login_url` agus `redirect_field_name` atá leagtha amach trí:func: ~.django.contrib.auth.decorators.login\_required, ach ní thacaíonn sé le `login_url` nó `redirect_field_name` a shocrú trí:class: ~django.contrib.auth.mixins.loginrequiredMixin\`.

Chun é seo a chumasú, cuir "django.contrib.auth.middleware.loginrequiredMiddleware"\` le do shuíomh: MIDDLEWARE.

### Mionghnéithe

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

- [`ModelAdmin.list_display`](/ga/6.0/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_display) now supports using `__` lookups to list
  fields from related models.

#### [`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 ó 720,000 go 870,000.
- Méadaítear réamhshocraithe `parallelism` den ScryptPasswordHasher\` ó 1 go 5, chun moltaí OWASP a leanúint.
- Tacaíonn an nua:class: ~django.contrib.auth.forms.adminUserCreationForm agus an: class: ~django.contrib.auth.forms.adminPasswordChangeForm atá ann cheana anois le fíordheimhniú pasfhocal a dhíchumasú trí phasfhocal neamhúsáidte a shocrú ar shábháil foirm. Tá sé seo ar fáil anois sa riarachán agus tú ag cuairt ar na leathanaigh cruthaithe úsáideora agus athraithe pasfhocal.
- [`login_required()`](/ga/6.0/topics/auth/default/#django.contrib.auth.decorators.login_required),
  [`permission_required()`](/ga/6.0/topics/auth/default/#django.contrib.auth.decorators.permission_required), and
  [`user_passes_test()`](/ga/6.0/topics/auth/default/#django.contrib.auth.decorators.user_passes_test) decorators now
  support wrapping asynchronous view functions.
- Cuimsíonn `ReadOnlyPasswordHashWidget` cnaipe anois chun pasfhocal an úsáideora a athshocrú, a athshocraíonn an nasc atá leabaithe roimhe seo i dtéacs cabhrach `ReadOnlyPasswordHashField`, ag feabhsú inrochtaineacht fhoriomlán na:class: ~django.contrib.auth.forms.userChangeForm.

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

- [`BoundingCircle`](/ga/6.0/ref/contrib/gis/functions/#django.contrib.gis.db.models.functions.BoundingCircle) is now
  supported on SpatiaLite 5.1+.
- [`Collect`](/ga/6.0/ref/contrib/gis/geoquerysets/#django.contrib.gis.db.models.Collect) is now supported on MySQL
  8.0.24+.
- [`GeoIP2`](/ga/6.0/ref/contrib/gis/geoip2/#django.contrib.gis.geoip2.GeoIP2) now allows querying using
  [`ipaddress.IPv4Address`](https://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address) or [`ipaddress.IPv6Address`](https://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address) objects.
- [`GeoIP2.country()`](/ga/6.0/ref/contrib/gis/geoip2/#django.contrib.gis.geoip2.GeoIP2.country) now exposes the `continent_code`,
  `continent_name`, and `is_in_european_union` values.
- : meth: Nochtann .geoip2.city anois na luachanna `` `curacy_radius `` agus `region_name`. Ina theannta sin, nochtar na luachanna `dma_code` agus `region` anois mar `metro_code` agus `region_code`, ach coinnítear na heochracha roimhe seo freisin le haghaidh comhoiriúnacht ar chúl.
- [`Area`](/ga/6.0/ref/contrib/gis/measure/#django.contrib.gis.measure.Area) now supports the `ha` unit.
- Ligeann an tréith nua:attr: .ogrgeometry.is\_3d a sheiceáil an bhfuil toise comhordaithe `Z` ag geoiméadacht.
- Ligeann an modh nua:meth: .ogrgeometry.set\_3d an toise comhordaithe `Z` a chur leis agus a bhaint.
- [`OGRGeometry`](/ga/6.0/ref/contrib/gis/gdal/#django.contrib.gis.gdal.OGRGeometry),
  [`Point`](/ga/6.0/ref/contrib/gis/gdal/#django.contrib.gis.gdal.Point),
  [`LineString`](/ga/6.0/ref/contrib/gis/gdal/#django.contrib.gis.gdal.LineString),
  [`Polygon`](/ga/6.0/ref/contrib/gis/gdal/#django.contrib.gis.gdal.Polygon), and
  [`GeometryCollection`](/ga/6.0/ref/contrib/gis/gdal/#django.contrib.gis.gdal.GeometryCollection) and its subclasses now
  support measured geometries via the new [`OGRGeometry.is_measured`](/ga/6.0/ref/contrib/gis/gdal/#django.contrib.gis.gdal.OGRGeometry.is_measured) and
  `m` properties, and the [`OGRGeometry.set_measured()`](/ga/6.0/ref/contrib/gis/gdal/#django.contrib.gis.gdal.OGRGeometry.set_measured) method.
- [`OGRGeometry.centroid`](/ga/6.0/ref/contrib/gis/gdal/#django.contrib.gis.gdal.OGRGeometry.centroid) is now available on all supported geometry
  types.
- [`FromWKB()`](/ga/6.0/ref/contrib/gis/functions/#django.contrib.gis.db.models.functions.FromWKB) and
  [`FromWKT()`](/ga/6.0/ref/contrib/gis/functions/#django.contrib.gis.db.models.functions.FromWKT) functions
  now support the optional `srid` argument (except for Oracle where it is
  ignored).

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

- [`BTreeIndex`](/ga/6.0/ref/contrib/postgres/indexes/#django.contrib.postgres.indexes.BTreeIndex) now supports the
  `deduplicate_items` parameter.

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

- \<django-contrib-sessions-logger\>:class: django.contrib.sessions.backends.cached\_db.sessionStore láimhseálann eisceachtaí anois nuair a bhíonn faisnéis seisiúin á stóráil sa taisce, ag logáil teachtaireachtaí earráide cearta lena rianú tríd an logger nua-chuirte:ref: session logger.
- [`django.contrib.sessions.backends.base.SessionBase`](/ga/6.0/topics/http/sessions/#django.contrib.sessions.backends.base.SessionBase) and all built-in
  session engines now provide async API. The new asynchronous methods all have
  `a` prefixed names, e.g. `aget()`, `akeys()`, or `acycle_key()`.

#### Cúltaca bunachar sonraí

- \<sqlite-init-command\>Tacaítear anois le rogha `"init_command"` in:setting: OPTIONS ar SQLite chun ligean sonraithe:ref: roghanna pragma a shocrú ar nasc.
- Tacaítear anois le rogha `"transaction_mode"` in:setting: OPTIONS ar SQLite chun ligean an: ref: sqlite-transaction-iompraíocht a shonrú.
- \<postgresql-pool\>Tacaítear anois le rogha `"pool"` in:setting: OPTIONS ar PostgreSQL chun cead a bhaint as: ref: linnte nasc.

#### Tuairisc Earráide

- D'fhonn inrochtaineacht a fheabhsú, úsáideann na leathanaigh earráide teicniúla 404 agus 500 eilimintí sainchomharthaí HTML anois don cheanntásc, buntásc agus príomhréimsí ábhair.

#### Stóráil Comhad

- Ceadaíonn an paraiméadar: Attr: ~django.core.files.storage.filesystemStorage.allow\_overwrite de:class: ~django.core.files.storage.filesystemStorage comhaid nua a shábháil thar na cinn atá ann cheana anois.

#### Foirmeacha

- D'fhonn inrochtaineacht a fheabhsú agus chun léitheoirí scáileáin a chumasú tacair réimse a cheangal lena dtéacs cabhrach, tá an tréith HTML aria-describedby\` sa tacar réimse foirme anois.

#### Orduithe Bainistíochta

- \<django.db.migrations.operations.base.OperationCategory\>Taispeánann an t-ordú: DjaDmin: makemigrations siombailí bríocha anois do gach oibríocht chuig hardlight: class: catagóirí oibríochta .

#### Imirce

- Ligeann an tréith nua `Operation.Category` a shonrú an:class: catagóir oibríochta \`a úsáideann na:djadmin: \`makemigrations\<django.db.migrations.operations.base.OperationCategory\> chun siombail bhrí don oibríocht a thaispeáint.

#### Samhla

- [`QuerySet.explain()`](/ga/6.0/ref/models/querysets/#django.db.models.query.QuerySet.explain) now supports the `generic_plan` option on
  PostgreSQL 16+.
- [`RowRange`](/ga/6.0/ref/models/expressions/#django.db.models.expressions.RowRange) now accepts positive integers
  for the `start` argument and negative integers for the `end` argument.
- Ceadaíonn an argóint nua `eisiam` de:class: ~django.db.Models.Expressions.RowRange agus:class: ~django.db.Models.Expressions.ValueRange sraitheanna, grúpaí agus ceangail a eisiamh ó fhrámaí na bhfuinneoga.
- [`QuerySet.order_by()`](/ga/6.0/ref/models/querysets/#django.db.models.query.QuerySet.order_by) now supports ordering by annotation transforms
  such as `JSONObject` keys and `ArrayAgg` indices.
- \<slicing-using-f\>:class: F () \<django.db.models.F\>\`agus:class: \`OuterRef () abairtí a aschuir:class: ~django.d \<django.db.models.OuterRef\>b.models.charfield, :class: ~django.db.models.emails.field, :class: ~django.db.models.slugfield, :class: ~django.db.models.urlfield , :class: \`~django.db.Models.TextField, nó:class: ~django.contrib.postgres.fields.arrayfield is féidir anois:ref: sliseadh.
- Ligeann an argóint nua `from_queryset` de:meth: .model.Refresh\_from\_db agus:meth: .model.arefresh\_from\_db an tacar fiosrúcháin a úsáidtear chun luach samhail a athluchtú a shaincheapadh. Is féidir é seo a úsáid chun an tsraith a ghlasáil sula n-athluchtú nó chun rudaí gaolmhara a roghnú.
- Ligeann an tréith nua:attr: .expression.restricint\_validation\_compatible a shonrú gur chóir neamhaird a dhéanamh ar an abairt le linn bailíochtaithe srianta.

#### Teimpléid

- Féadfaidh clibeanna saincheaptha sonraí breise a shocrú anois ar an réad Parser\` a chuirfear ar fáil níos déanaí ar an gcás Teimpléad\`. Féadfaidh an lódóir teimpléid, nó cliaint teimpléid eile sonraí den sórt sin a úsáid, mar shampla.
- [Template engines](/ga/6.0/topics/checks/#field-checking) now implement a `check()` method
  that is already registered with the check framework.

#### Tástálacha

- [`assertContains()`](/ga/6.0/topics/testing/tools/#django.test.SimpleTestCase.assertContains),
  [`assertNotContains()`](/ga/6.0/topics/testing/tools/#django.test.SimpleTestCase.assertNotContains), and
  [`assertInHTML()`](/ga/6.0/topics/testing/tools/#django.test.SimpleTestCase.assertInHTML) assertions now add haystacks
  to assertion error messages.
- Tacaíonn ranga:Class: ~django.test.requestFactory, :class: ~django.test.asyncRequestFactory, :class: ~django.test.client, ag:class: ~django.test.asyncClient anois leis an paraiméadar `query_params`, a ghlacann le foclóir eochracha agus luachanna ceisteanna. Ligeann sé seo teaghráin fiosrúcháin a shocrú ar aon mhodhanna HTTP níos éasca.

  ```python
  self.client.post("/items/1", query_params={"action": "delete"})
  await self.async_client.post("/items/1", query_params={"action": "delete"})
  ```
- Ceadaíonn an dearbhú nua:meth: .simpletestcase.assertNotInhtml tástáil nach bhfuil blúire HTML sa chraiste faigh HTML tugtha.
- D'fhonn aonrú tástála a fhorfheidhmiú, ní cheadaítear naisc bunachar sonraí taobh istigh de snáitheanna a thuilleadh in:class: ~django.test.simpletestCase.

#### Bailíochtóirí

- Bailíonn an nua:class: ~django.core.validators.domainnameValidator ainmneacha fearainn, lena n-áirítear ainmneacha fearainn idirnáisiúnta. Tugann an fheidhm nua:func: ~django.core.validators.validate\_domain\_name sampla de:class: ~django.core.validators.domainnameValidator.

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

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

- Baintear tacaíocht do PostGIS 2.5.
- Baintear tacaíocht do PROJ \<6.
- Baintear tacaíocht do GDAL 2.4.
- [`GeoIP2`](/ga/6.0/ref/contrib/gis/geoip2/#django.contrib.gis.geoip2.GeoIP2) no longer opens both city and
  country databases when a directory path is provided, preferring the city
  database, if it is available. The country database is a subset of the city
  database and both are not typically needed. If you require use of the country
  database when in the same directory as the city database, explicitly pass the
  country database path to the constructor.

### Tacaíocht titim do MariaDB 10.4

Críochnaíonn tacaíocht suas srutha do MariaDB 10.4 i mí an Mheithimh 2024. Tacaíonn Django 5.1 le MariaDB 10.5 agus níos airde.

### Tacaíocht titim do PostgreSQL 12

Críochnaíonn tacaíocht suas srutha do PostgreSQL 12 i mí na Samhna 2024. Tacaíonn Django 5.1 le PostgreSQL 13 agus níos airde.

### Ilghnéitheach

- \<div\>D'fhonn inrochtaineacht a fheabhsú, déantar scagaire liosta athraithe an riaracháin a léiriú anois i gclib `<nav>` in ionad .
- \<div id="main"\>D'fhonn inrochtaineacht a fheabhsú, déantar buntásc an riaracháin a léiriú anois \<footer\>\<div\>i gclib \`\` in ionad `` , agus bogadh sé faoi bhun an ghné ` ``.
- \<django.contrib.admin.InlineModelAdmin\>\<details\>\<summary\>D'fhonn inrochtain \<django.contrib.admin.ModelAdmin.fieldsets\>eacht a fheabhsú, tá an giuirléid leathnaithe a úsáidtear le haghaidh: attr: ModelAdmin.FieldSets \`agus:attr: \`InlineModelAdmin.FieldSets, nuair a bhíonn ainm ag an tacar réimse agus úsáideann an rang `collise`, anois eilimintí `agus` .
- Baintear an comhad JavaScript collise.js ós rud é nach bhfuil gá leis a thuilleadh ar shuíomh riaracháin Django.
- [`SimpleTestCase.assertURLEqual()`](/ga/6.0/topics/testing/tools/#django.test.SimpleTestCase.assertURLEqual) and
  [`assertInHTML()`](/ga/6.0/topics/testing/tools/#django.test.SimpleTestCase.assertInHTML) now add `": "` to the
  `msg_prefix`. This is consistent with the behavior of other assertions.
- `django.utils.text.Truncator` used by [`truncatechars_html`](/ga/6.0/ref/templates/builtins/#std-templatefilter-truncatechars_html) and
  [`truncatewords_html`](/ga/6.0/ref/templates/builtins/#std-templatefilter-truncatewords_html) template filters now uses
  [`html.parser.HTMLParser`](https://docs.python.org/3/library/html.parser.html#html.parser.HTMLParser) subclasses. This results in a more robust
  and faster operation, but there may be small differences in the output.
- Baintear an fheidhm django.urls.converters.get\_converter () neamhdhoiciméadaithe.
- Méadaítear an leagan íosta tacaithe de SQLite ó 3.27.0 go 3.31.0.
- [`FileField`](/ga/6.0/ref/models/fields/#django.db.models.FileField) now raises a
  [`FieldError`](/ga/6.0/ref/exceptions/#django.core.exceptions.FieldError) when saving a file without a
  `name`.
- Ní ghlaofar ```ImageField.UPDATE_Dimension_Fields (force=True) ``a thuilleadh tar éis an íomhá a shábháil chuig stóráil. Má athraíonn do chúltaca stórála mhéid íomhánna, ní mheaitseálfaidh an ``width_field``` agus `height_field` leithead agus airde na híomhá.
- Méadaítear an leagan íosta tacaithe de asgiref\` ó 3.7.0 go 3.8.1.
- To improve performance, the `delete_selected` admin action now uses
  `QuerySet.bulk_create()` when creating multiple `LogEntry` objects. As a
  result, `pre_save` and `post_save` signals for `LogEntry` are not sent
  when multiple objects are deleted via this admin action.

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

### Ilghnéitheach

- Tá na modhanna ```ModelAdmin.log_Deletion () ``agus `LogentryManager.log_action ()``` a dhíchur. Ba chóir go gcuirfeadh fo-ranganna ```ModelAdmin.log_Deletions () ``agus ``LogentryManager.log_actions ()``` a chur i bhfeidhm ina ionad.
- Tá an fheidhm ```django.utils.itercompat.is_iterable () ``gan doiciméadú agus an modúl ``django.utils.itercompat``` a dhíchur. Úsáid isinstance (..., Collections.abc.iterable) ina ionad.
- Tá an modh django.contrib.gis.geoip2.geoip2.coords () díluaite. Úsáid django.contrib.gis.geoip2.geoip2.lon\_lat () ina ionad.
- Tá an modh Django.contrib.gis.geoip2.geoip2.open () díluaite. Úsáid an tógálaí: class: ~django.contrib.gis.geoip2.geoip2 ina ionad.
- Tá argóintí seasaimh a chur chuig: meth: .model.save agus:meth: .model.asave a dhíchur i bhfabhar argóintí eochairfhocal amháin.
- Tá socrú `django.contrib.gis.gdal.ogrgeometry.coord_dim` díluaite. Úsáid: Meth: ~django.contrib.gis.gdal.ogrgeometry.set\_3d ina ionad.
- Tá tiontairí atá ann cheana le django.urls.register\_converter () díluasaithe.
- Tá an argóint eochairfhocal ```seiceáil ``de `CheckConstraint``` a dhíchur i bhfabhar `coinníoll`.
- Tá an maoin `OS_OPEN_FLAGS` neamhdhoiciméadaithe de:class: ~django.core.files.storage.filesystemStorage a dhíchur. Chun comhaid a fhorscríobh i stóráil a cheadú, socraigh an rogha nua:attr: ~django.core.files.storage.filesystemStorage.allow\_overwrite go `True` ina ionad.
- Tá an modh ```get_cache_name () ``de `FieldCachemixin``` a dhíchur i bhfabhar na maoin taiscéadaithe `cache_name`.

## Gnéithe bainte i 5.1

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

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

- Baintear an modh BaseUserManager.Make\_Random\_Password () .
- Baintear rogha `Meta.index_Together` an tsamhail.
- Baintear an scagaire teimpléad long\_is .
- Baintear na Django.Contrib.Auth.Hashers.Sha1PasswordHasher\`, Django.Contrib.Auth.Hashers.UnsaltedSha1PasswordHasher\`, agus `Django.Contrib.Auth.Hashers.UnsaltedMd5PasswordHasher`.
- Baintear an tsamhail `Django.contrib.postgres.fields.cicharfield`, Django.contrib.postgres.fields.ciemailfield\`, agus `Django.contrib.postgres.fields.citextfield`, seachas tacaíocht i imirce stairiúla.
- Baintear an meascán `Django.contrib.postgres.fields.citext`.
- Baintear na tréithe `map_width` agus `map_height` de BasegeometryWidget\`.
- Baintear an modh SimpletestCase.assertFormSetError () .
- Baintear an modh TransactionTestCase.assertQuerySetEqual () .
- Baintear tacaíocht chun litríochtaí teaghrán ionchódaithe JSON a chur chuig `JSONField` agus cuardaigh agus nathanna gaolmhara.
- Baintear tacaíocht chun argóintí seasaimh a chur chuig `Signer` agus `TimeStampSigner`.
- Baintear na socruithe `DEFAULT_FILE_STORAGE` agus `STATICFILES_STORAGE`.
- Baintear an fheidhm django.core.files.storage.get\_storage\_class () .
