Nótaí scaoileadh Django 4.0Link to this heading

7 Nollaig, 2021

Fáilte go dtí Django 4.0!

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

Tacaíonn Django 4.0 le Python 3.8, 3.9, agus 3.10. Molaimid** go hard** agus ní thacaímid go hoifigiúil ach leis an scaoileadh is déanaí de gach sraith.

Is é an tsraith Django 3.2.x an ceann deireanach a thacaíonn le Python 3.6 agus 3.7.

Cad atá nua i Django 4.0Link to this heading

Cur i bhfeidhm crios ama réamhshocraithe zoneinfoLink to this heading

Is é leabharlann caighdeánach Python's:mod: zoneinfo anois an cur i bhfeidhm crios ama réamhshocraithe i Django.

Is é seo an chéad chéim eile san imirce ó pytz a úsáid go húsáid:mod: zoneinfo. Ceadaigh Django 3.2 criosanna ama neamh-pytz a úsáid. Déanann Django 4.0 zoneinfo an cur i bhfeidhm réamhshocraithe. Tá tacaíocht do “pytz” díscríofa anois agus bainfear é i Django 5.0.

zoneinfo is part of the Python standard library from Python 3.9. The backports.zoneinfo package is automatically installed alongside Django if you are using Python 3.8.

Ba chóir go mbeadh an t-aistriú chuig zoneinfo` trédhearcach den chuid is mó. Ní dhéantar tionchar a dhéanamh ar roghnú an chrios ama reatha, cásanna dáta-ama a thiontú go dtí an crios ama reatha i bhfoirmeacha agus teimpléid, chomh maith le hoibríochtaí ar amanna dáta feasacha in UTC.

Mar sin féin, má tá tú ag obair le criosanna ama neamh-UTC, agus ag baint úsáide as na APIs `pytz normalú () ``agus ``localize () `, b'fhéidir leis an socrú: `TIME_ZONE, beidh ort iniúchadh a dhéanamh ar do chód, ós rud é nach bhfuil pytz` agus zoneinfo <DATABASE-TIME_ZONE>`comhionann go hiomlán.

Chun am a thabhairt d'iniúchadh den sórt sin, ceadaíonn an socrú idirthréimhseach USE_DEPRECATED_PYTZ úsáid leanúnach pytz le linn an timthriall scaoilte 4.x. Bainfear an suíomh seo i Django 5.0.

Ina theannta sin, is féidir pacáiste pytz_deprecation_shim, a chruthaigh an t-údar zoneinfo, a úsáid chun cabhrú leis an imirce ó pytz`. Soláthraíonn an pacáiste seo shims chun cabhrú leat pytz a bhaint go sábháilte, agus tá treoir imirce mionsonraithe aige a thaispeánann conas bogadh chuig na APIs nua zoneinfo.

Moltar úsáid a bhaint as pytz_deprecation_shim agus an socrú idirthréimhseach USE_DEPRECATED_PYTZ má theastaíonn cosán nuashonraithe de réir a chéile uait.

Srianta uathúla feidhmiúlaLink to this heading

<django.db.models.UniqueConstraint>Cuireann an argóint seasaimh nua:attr: *expressions <django.db.models.UniqueConstraint.expressions>`de:class: `UniqueConstraint () ar chumas srianta feidhmiúla uathúla a chruthú ar nathanna agus ar fheidhmeanna bunachar sonraí. Mar shampla:

Code
from django.db import models
from django.db.models import UniqueConstraint
from django.db.models.functions import Lower


class MyModel(models.Model):
    first_name = models.CharField(max_length=255)
    last_name = models.CharField(max_length=255)

    class Meta:
        constraints = [
            UniqueConstraint(
                Lower("first_name"),
                Lower("last_name").desc(),
                name="first_last_name_unique",
            ),
        ]

<django.db.models.Options.constraints>Cuirtear srianta uathúla feidhmiúla le samhlacha ag baint úsáide as an rogha: attr: `Meta.Constraints `.

Hasher pasfhocal scryptLink to this heading

Tá an nua:ref: `scrypt password hasher <scrypt-usage>`níos sábháilte agus moltar thar PBKDF2. Mar sin féin, ní hé an réamhshocrú é mar éilíonn OpenSSL 1.1+ agus níos mó cuimhne uaidh.

Cúltaca taisce RedisLink to this heading

Soláthraíonn an cúltaca taisce nua ``Django.Core.Cache.Backends.Redis.RedisCache ``tacaíocht ionsuite do chaching le Redis. :pypi: `redis-py <redis>`3.0.0 nó níos airde teastaíonn. <redis>Le haghaidh tuilleadh sonraí, féach an:ref: `doiciméadú ar chaching le Redis i Django `.

Rindreáil foirm bunaithe ar theimLink to this heading

Forms, Formsets, and ErrorList are now rendered using the template engine to enhance customization. See the new render(), get_context(), and template_name for Form and formset rendering for Formset.

MionghnéitheLink to this heading

django.contrib.adminLink to this heading

  • Tá bloc nua header sa teimpléad admin/base.html` anois ina bhfuil ceannteideal an láithreáin riaracháin.

  • Ligeann an modh nua:meth: .modeladmin.get_formset_kwargs na hargóintí eochairfhocal a chuirtear chuig tógálaí foirmshraith a shaincheapadh.

  • Tá barra uirlisí scagaire tapa ag an barra taobh nascleanúna anois.

  • Cuirtear an t-athróg comhthéacs nua model ina bhfuil an rang samhail do gach samhail leis an modh:meth: .adminsite.each_context.

  • Ceadaíonn an tréith nua:attr: .modeladmin.search_help_text téacs tuairisciúil a shonrú don bhosca cuardaigh.

  • Tagann an tréith: attr: .inlineModelAdmin.verbose_name_plural anois ar thréith an:attr: .inlineModelAdmin.verbose_name + s'.

  • tá jQuery uasghrádaithe ó leagan 3.5.1 go 3.6.0.

django.contrib.admindocsLink to this heading

  • Ceadaíonn an admindocs socruithe esoteric anois áit nach sreang é: setting: ROOT_URLCONF.

  • Taispeánann an chuid samhail den admindocs` airíonna taispeáilte anois.

django.contrib.authLink to this heading

  • Méadaítear an líon athraithe réamhshocraithe don hasher pasfhocal PBKDF2 ó 260,000 go 320,000.

  • Ceadaíonn an modh nua:attr: LoginView.next_page <django.contrib.auth.views.LoginView.next_page>`agus:meth: `~django.contrib.auth.views.loginview.get_default_redirect_url an t-atreorú a shaincheapadh tar éis logáil isteach.

django.contrib.gisLink to this heading

  • Tacaíocht bhreise do SpatiaLite 5.

  • GDALRaster now allows creating rasters in any GDAL virtual filesystem.

  • Ceadaíonn an rang nua:class: ~django.contrib.gis.admin.gismodelAdmin an giuirléid a úsáidtear le haghaidh GeometryField a shaincheapadh. Spreagtar é seo in ionad GeomodelAdmin agus OsmGeoAdmin díluasaithe.

django.contrib.postgresLink to this heading

  • Tacaíonn cúltaca PostgreSQL anois le nascadh le hainm seirbhíse. Féach: ref: postgresql-connection-settings le haghaidh tuilleadh sonraí.

  • Ligeann an oibríocht nua:class: ~django.contrib.postgres.operations.addConstraintNotValid srianta seiceála a chruthú ar PostgreSQL gan a fhíorú go sásaíonn gach sraitheanna atá ann cheana an srian nua.

  • Ceadaíonn an oibríocht nua:class: ~django.contrib.postgres.operations.validateConstraint srianta seiceála a cruthaíodh a bhailíochtú ag baint úsáid:class: ~django.contrib.postgres.operations.addConstraintNotValid ar PostgreSQL.

  • Ceadaíonn an léiriú nua:class: `ArraySubQuery () <django.contrib.postgres.expressions.ArraySubquery>`fo-cheisteanna a úsáid chun liostaí luachanna a thógáil ar PostgreSQL.

  • <django.contrib.postgres.search.TrigramWordDistance><django.contrib.postgres.search.TrigramWordSimilarity>Ceadaíonn an cuardach nua:lookup: trigram_word_similar, agus an:class: trigramwordDistance () `agus:class: `trigramwordSimilarity () cosúlacht focal trigram a úsáid.

django.contrib.staticfilesLink to this heading

  • ManifestStaticFilesStorage now replaces paths to JavaScript source map references with their hashed counterparts.

  • Ceadaíonn an argóint nua manifest_storage de:class: ~django.contrib.staticFiles.Storage.ManifestFilesMixin agus:class: ~django.contrib.staticFiles.Storage.ManifestStaticFilesStorage stóráil an chomhad léirithe a shaincheapadh.

CacheLink to this heading

  • Tosaíonn an API async nua do django.core.cache.backends.base.baseCache an próiseas chun cúltaca taisce a dhéanamh ag comhoiriúnach async-chomhoiriúnach. Tá ainmneacha réamhshocraithe a ag na modhanna nua async go léir, m.sh. aadd () ``, ``aget (), aset () ``, ``aget_or_set (), nó ``adelete_many () ``.

    Ag dul ar aghaidh, úsáidfear an réimír a le haghaidh leaganacha async modhanna go ginearálta.

CSRFLink to this heading

  • Téann cosaint CSRF i gcomhairle anois leis an gceannteideal ``Bunaidh ``, má tá sé ann. Chun é seo a éascú, <csrf-trusted-origins-changes-4.0>teastaíonn :ref: roinnt athruithe `ar an socrú:setting: `CSRF_TRUSTED_ORIGINS.

FoirmeachaLink to this heading

  • ModelChoiceField now includes the provided value in the params argument of a raised ValidationError for the invalid_choice error message. This allows custom error messages to use the %(value)s placeholder.

  • BaseFormSet now renders non-form errors with an additional class of nonform to help distinguish them from form-specific errors.

  • BaseFormSet now allows customizing the widget used when deleting forms via can_delete by setting the deletion_widget attribute or overriding get_deletion_widget() method.

IdirnáisiúnúLink to this heading

  • Cuireadh tacaíocht agus aistriúcháin leis an teanga Mhalais.

Tuairimí cineálachaLink to this heading

  • DeleteView now uses FormMixin, allowing you to provide a Form subclass, with a checkbox for example, to confirm deletion. In addition, this allows DeleteView to function with django.contrib.messages.views.SuccessMessageMixin.

    De réir FormMixin, déantar scriosadh réad le haghaidh iarratais POST a láimhseáil i form_valid () ``. Ba chóir loighic scriosta saincheaptha i láimhseálaithe ``delete () ``a aistriú go ``form_valid (), nó modh cúntóra roinnte, de réir mar is gá.

LogáilLink to this heading

  • Cuirtear ainm an bhunachar sonraí a úsáidtear i nglao SQL anois mar chomhthéacs breise in éineacht le gach teachtaireacht chuig an logger: ref: django-db-logger.

Orduithe BainistíochtaLink to this heading

  • Tacaíonn an t-ordú bainistíochta: DJadmin: runserver anois leis an rogha:: --skip-checks.

  • Ar PostgreSQL, tacaíonn: djadmin: dbshell anois le comhad pasfhocal a shonrú.

  • Déanann an t-ordú: djaDmin: shell meas anois:py:data: sys. __interactivehook__ ag tosú. Ligeann sé seo stair bhlaosc a luchtú idir seisiúin i Mar thoradh air sin, ní luchtaítear readline a thuilleadh má tá sé ag rith i mód*aontaithe*.

  • <django.core.management.BaseCommand.suppressed_base_arguments>Ceadaíonn an tréith nua:attr: `BaseCommand.suppressed_base_arguments `roghanna ordaithe réamhshocraithe gan tacaíocht a chur faoi chois san aschur cabhrach.

  • Ceadaíonn na roghanna nua:option: startapp --exclude agus:option: startproject --exclude eolairí a eisiamh ón teimpléad.

SamhlaLink to this heading

  • New:Meth: QuerySet.contents (obj) <.querySet.contains> filleann modh cibé an bhfuil an réad a thugtar sa tacar ceisteanna. Déanann sé seo iarracht an cheist a dhéanamh ar an mbealach is simplí agus is gasta is féidir.

  • Ligeann an argóint nua cruinne den fheidhm bhunachar sonraí: `Round () <django.db.models.functions.Round>`líon na n-áiteanna deachúil a shonrú tar éis a shonrú.

  • : meth: .queryset.bulk_create socraíonn anois an príomh-eochair ar rudaí agus SQLite 3.35+ á úsáid agat.

  • DurationField now supports multiplying and dividing by scalar values on SQLite.

  • QuerySet.bulk_update() now returns the number of objects updated.

  • Ligeann an tréith nua:attr: .expression.empty_result_set_value luach a shonrú le filleadh nuair a úsáidtear an fheidhm thar tacar torthaí folamh.

  • Ceadaítear an argóint skip_locked` de:meth: `.queryset.select_for_update () `anois ar MariaDB 10.6+.

  • Lookup expressions may now be used in QuerySet annotations, aggregations, and directly in filters.

  • Ligeann an argóint nua:ref: réamhshocraithe' <aggregate-default>maidir le comhiomláin ionsuite luach a chur ar ais a shonrú nuair nach bhfuil aon iontrálacha sa tacar fiosrúcháin (nó sa ghrúpáil), seachas ``None`.

Iarrataí agus FreagraíLink to this heading

  • <cross-origin-opener-policy>Cuireann an:class: ~django.middleware.security.securityMiddleware anois an ceannteideal: Cross-Origin Opener Policy `le luach `'same-origin'`` chun cosc a chur ar popups tras-bhunús an comhthéacs brabhsála céanna a roinnt. Is féidir leat an ceannteideal seo a chosc ó chur leis trí:setting: SECURE_CROSS_ORIGIN_OPENER_POLICY a shocrú go None.

ComharthaíLink to this heading

  • Ceadaíonn an argóint nua stdout le haghaidh comharthaí: func: ~django.db.models.signals.pre_migrate agus:func: ~django.db.models.signals.post_migrate aschur a atreorú chuig réad cosúil le sruth. Ba chóir é a roghnú thar: py:data: sys.stdout agus:py:func: print agus aschur verbose á astáil chun gabháil cheart a cheadú agus tú ag tástáil.

TeimpléidLink to this heading

  • floatformat template filter now allows using the u suffix to force disabling localization.

TástálachaLink to this heading

  • <test-case-serialized-rollback>Cinneann an argóint nua serialized_aliases de:func: django.test.utils.setup_databases cé na bunachair sonraí tástála ainmneacha DATABASES ba chóir go mbeadh a stát sraitheach chun an ghné: ref: serialized_rollback a úsáid a cheadú.

  • Tacaíonn an rogha: rogha: test --buffer le tástálacha comhthreomhara anois.

  • <logger>Ligeann an argóint nua logger go:class: ~django.test.runner.DiscoverRunner Python: py:ref: `logger `a úsáid le haghaidh logála.

  • Soláthraíonn an modh nua:meth: .DiscoverRunner.log bealach chun teachtaireachtaí a úsáideann an DiscoverRunner.logger a logáil, nó a phriontáil chuig an gconsól mura bhfuil sé socraithe.

  • DiscoverRunner can now execute tests in a random order using the test --shuffle option.

  • Tacaíonn an rogha: 'test --parallel` anois leis an luach auto chun próiseas tástála amháin a reáchtáil do gach croí próiseálaí.

  • TestCase.captureOnCommitCallbacks() now captures new callbacks added while executing transaction.on_commit() callbacks.

Athruithe neamh-chomhoiriúnacha ar ais i 4.0Link to this heading

API cúltaca bunachar sonraíLink to this heading

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

  • Glacann modhanna databaseOperations.year_lookup_bouns_for_date_field () ``agus ``year_lookup_bouns_for_datetime_field () an argóint roghnach iso_year d'fhonn tacú le teorainneacha do bhlianta uimhrithe seachtaine ISO-8601.

  • An dara argóint de DatabaseSchemaEditor. Is é modhanna _unique_sql () ``agus ``_create_unique_sql () anois fields in ionad columns.

django.contrib.gisLink to this heading

  • Baintear tacaíocht do PostGIS 2.3.

  • Baintear tacaíocht do GDAL 2.0 agus GEOS 3.5.

Tacaíocht titim do PostgreSQL 9.6Link to this heading

Críochnaíonn tacaíocht suas srutha do PostgreSQL 9.6 i mí na Samhna 2021. Tacaíonn Django 4.0 le PostgreSQL 10 agus níos airde.

Chomh maith leis sin, méadaítear an leagan íosta tacaithe de psycopg2 ó 2.5.4 go 2.8.4, mar is é psycopg2` 2.8.4 an chéad eisiúint chun tacú le Python 3.8.

Tacaíocht titim do Oracle 12.2 agus 18cLink to this heading

Críochnaíonn tacaíocht suas srutha do Oracle 12.2 i mí an Mhárta 2022 agus do Oracle 18c críochnaíonn sé i mí an Mheithimh 2021 Tacófar le Django 3.2 go dtí Aibreán 2024. Tacaíonn Django 4.0 go hoifigiúil le Oracle 19c.

Athruithe CSRF_TRUSTED_ORIGINSLink to this heading

Athrú formáidLink to this heading

Ní mór an scéim a bheith san áireamh ar luachanna sa socrúit:setting: CSRF_TRUSTED_ORIGINS (m.sh. http: //'`https: //') in ionad an t-ainm óstach amháin.

Chomh maith leis sin, caithfidh na luachanna a thosaigh le ponc réilte a áireamh anois roimh an ponc. Mar shampla, athraigh '.example.com' go https://*.example.com '.

Aimsíonn seiceáil chórais aon athruithe riachtanacha.

B'fhéidir go mbeadh gá anois é a chumrúLink to this heading

De réir mar a chuireann cosaint CSRF i gcomhairle anois leis an gceannteideal ``Origin`, b'fhéidir go mbeidh ort socrú: CSRF_TRUSTED_ORIGINS, go háirithe má cheadaíonn tú iarratais ó fho-fearainn trí shocraí:setting: CSRF_COOKIE_DOMAIN (nó:setting: SESSION_COOKIE_DOMAIN cumasaithe) luach ag tosú le ponc.

Ní shocraíonn SecurityMiddleware ceannteideal ``X-XSS-Protection` a thuilleadhLink to this heading

Ní shocraíonn an:class: ~django.middleware.security.securityMiddleware an ceannteideal X-XSS-Protection a thuilleadh má tá an socrú SECURE_BROWSER_XSS_FILTER True. Baintear an suíomh.

Ní thugann mórchuid na mbrabhsálaithe nua-aimseartha an ceannteideal HTTP ``X-XSS-Protection`. Is féidir leat Containt-Security Policy a úsáid gan scripteanna ``'unsafe-inline'` a cheadú ina ionad.

Más mian leat tacú le brabhsálaithe oidhreachta agus an ceannteideal a shocrú, bain úsáid as an líne seo i lár saincheaptha:

Code
response.headers.setdefault("X-XSS-Protection", "1; mode=block")

Athruithe uathraitheoir imirceLink to this heading

Úsáideann an t-uathbhreithnitheoir imirce stáit samhail anois in ionad ranganna samhail. Chomh maith leis sin, ní shonraíonn oibríochtaí imirce do réimsí ForeignKey agus ``ManyTomanyField` tréithe a thuilleadh nár cuireadh chuig na réimsí le linn an tionscnaimh.

Mar fho-éifeacht, d'fhéadfadh go mbeadh oibríochtaí “Alterfield” gan aon ghiniúint ag rith makemigrations` do réimsí ``ManyTomanyField` agus ``ForeignKey i gcásanna áirithe.

Athruithe DeleteViewLink to this heading

DeleteView now uses FormMixin to handle POST requests. As a consequence, any custom deletion logic in delete() handlers should be moved to form_valid(), or a shared helper method, if required.

Athraíonn scéim ainmnithe tábla agus colún ar OracleLink to this heading

D'athraigh Django 4.0 an scéim ainmniúcháin tábla agus colún ar Oracle go neamhthuiscint. Cuireann sé seo earráidí le haghaidh samhlacha agus réimsí le hainmneacha níos faide ná 30 carachtar. Ar an drochuair, tá gá le roinnt táblaí agus colún Oracle a athainmniú Úsáid an script uasghrádaithe in:ticket: 33789 chun ráitis RENAME <33789 #comment:15> a ghiniúint chun an scéim ainmniúcháin a athrú.

IlghnéitheachLink to this heading

  • Baintear tacaíocht do ``CX_Oracle ``<7.0.

  • Chun a cheadú freastal ar shuíomh Django ar fho-chosán gan luach: setting: STATIC_URL a athrú, baintear an tosaigh den socrú sin (anois static/') sa teimpléad réamhshocraithe: djadmin: startproject.

  • Níl an modh: Class: ~django.contrib.admin.admin.adminSite don amharc riaracháin index maisithe le never_cache a thuilleadh nuair a bhíonn rochtain air go díreach, seachas tríd an modh Adminsite.urls` molta, nó `Adminsite.get_URLs () `.

  • Ardaíonn oibríochtaí gan tacaíocht ar shraith fiosrúcháin slisnaithe TypeError anois in ionad AssertionError.

  • Athainmnítear an fheidhm ``django.test.runner.reorder_suite () neamhdhoiciméadaithe go ``reorder_tests () `. Glacann sé anois le tástálacha in-athraithe seachas sraith tástála, agus filleann sé athraitheoir tástálacha ar ais.

  • Ag glaoch ar FilesystemStorage.delete () le ainm ``folamh, ardaíonn ``ValueError` in ionad AssertionError.

  • Ag glaoch ar EmailMultiAlternatives.Attach_Alternative () ``nó ``EmailMessage.Attach () le hargóintí content nó mimetype` neamhbhailí ardaíonn ValueError in ionad AssertionError.

  • assertHTMLEqual() no longer considers a non-boolean attribute without a value equal to an attribute with the same name and value.

  • Meaitseálann tástálacha nach dteipfidh orthu a luchtú, mar shampla mar gheall ar earráidí comhréireachta, anois i gcónaí agus iad á n-úsáid:option: test --tag.

  • Athainmnítear an fheidhm django.contrib.admin.utils.lookup_needs_different () ``gan doiciméadú go ``lookup_spawns_duplicates ().

  • Baintear an modh ``HttpRequest.get_raw_uri () ``neamhdhoiciméadaithe. D'fhéadfadh an modh: Meth: `.httpRequest.build_Absolute_URI a bheith ina rogha eile oiriúnach.

  • Athainmnítear an argóint object de mhodhanna ModelAdmin.log_Addition () ``, `log_change (), agus log_delete () ``neamhdhoiciméadaithe go ``obj.

  • RssFeed, Atom1Feed, and their subclasses now emit elements with no content as self-closing tags.

  • Ní chaitheann NodeList.render () ``aschur modh ``render () do nóid aonair chuig teaghrán a thuilleadh. Ba chóir go gcuirfeadh ``Node.render () ``teaghrán a thabhairt ar ais i gcónaí mar a dhoiciméadaithe.

  • Baintear maoin where_class` django.db.models.sql.query.query agus an argóint where_class` leis an modh príobháideach get_extra_restriction` () ``de `ForeignObject agus`` ForeignoBject``. Más gá, cuir tús le Django.db.Models.sql.where.whereNode ina ionad.

  • Cuirtear dhá argóint seasaimh filter_lhs` agus filter_rhs` in ionad argóint filter_clause` den mhodh ``Query.add_filter () ``neamhdhoiciméadaithe.

  • CsrfViewMiddleware now uses request.META['CSRF_COOKIE_NEEDS_UPDATE'] in place of request.META['CSRF_COOKIE_USED'], request.csrf_cookie_needs_reset, and response.csrf_cookie_set to track whether the CSRF cookie should be sent. This is an undocumented, private API.

  • Bogtar an tairiseach TRANSLATOR_COMMENT_MARK gan doiciméadú ó django.template.base go django.utils.translation.template.

  • An argóint real_apps den `django.db.migrations.state.projectState gan doiciméadú. Caithfidh an modh __init__ () `a bheith ina tacar anois má sholáthraítear é.

  • <div>:class: ~Django.Forms.RadioSelect agus:class: ~django.forms.CheckBoxSelectMultiple a rinneadh anois i gclibeanna ```` ionas go bhfógraíonn léitheoirí scáileáin iad níos gonta. Má theastaíonn an t-iompar roimhe seo uait, :ref: `athsháraigh an teimpléad giuirléid <overriding-built-in-widget-templates>`leis an teimpléad cuí ó Django 3.2.

  • Ní bhraitheann an scagaire teimpléad: TFilter: floatformat a thuilleadh ar an socrú USE_L10N agus filleann sé aschur logánaithe i gcónaí. Úsáid an iarmhír u chun logánú a dhíchumasú.

  • Athraítear luach réamhshocraithe an socrú USE_L10N go True. Féach an ranna:ref: `Logánú <use_l10n_deprecation>`thuas le haghaidh tuilleadh sonraí.

  • Mar chuid den: ref: bogadh go zoneinfo <whats-new-4.0>, athraítear django.utils.timezone.utc go alias:attr: datetime.timezone.utc.

  • Méadaítear an leagan íosta tacaithe de asgiref` ó 3.3.2 go 3.4.1.

Gnéithe atá díscríofa i 4.0Link to this heading

Úsáid criosanna ama pytzLink to this heading

Mar chuid den: ref: bogadh go zoneinfo <whats-new-4.0>, tá úsáid criosanna ama pytz a dhíchur.

Dá réir sin, déantar na hargóintí is_dst` leis na nithe seo a leanas a dhíchur freisin:

Bainfear tacaíocht le húsáid pytz i Django 5.0.

Tacaíocht crios amaLink to this heading

D'fhonn dea-chleachtas a leanúint, athróidh luach réamhshocraithe an socruithe:: USE_TZ ó False go True`, agus cumasófar tacaíocht crios ama de réir réamhshocraithe, i Django 5.0.

<startproject><USE_TZ>Tabhair faoi deara go gcuimsíonn an comhad réamhshocraithe: file: settings.py a chruthaigh: djadmin: django-admin startproject `: socrú: `USE_TZ = Fíor ó Django 1.4.

Is féidir leat USE_TZ a shocrú go False i do shocruithe tionscadail roimhe sin chun diúltú.

LogánúLink to this heading

D'fhonn dea-chleachtas a leanúint, athraítear luach réamhshocraithe an socrú USE_L10N ó False` go True`.

Ina theannta sin tá USE_L10N a dhíchur amhail an eisiúint seo. Ag tosú le Django 5.0, de réir réamhshocraithe, déanfar aon dáta nó uimhir a thaispeánann Django logánach.

Beidh Django onóir fós ar an gclibe:ttag: {% localize%}<localize> agus na scagairí:tfilter: localize/:tfilter: unlocalize fós.

IlghnéitheachLink to this heading

  • <test-case-serialized-rollback>Tá socrú tástála SERIALIZE a dhíchur mar is féidir é a thabhairt amach ón: attr: ~django.test.testcase.databases leis an rogha: ref: `serialized_rollback `cumasaithe.

  • Tá an modúl django.utils.baseconv neamhdhoiciméadaithe míchuige.

  • Tá an modúl django.utils.datetime_safe neamhdhoiciméadaithe míchuige.

  • Athróidh an prótacal réamhshocraithe léarscáileanna láithreáin a tógadh lasmuigh de chomhthéacs iarratais ó `http' go https' i Django 5.0.

  • Tá an argóint extra_tests le haghaidh: meth: .discoverRunner.build_suite agus:meth: .discoverRunner.run_tests a dhíchur.

  • Fillfidh comhiomlánaithe `None nuair nach bhfuil aon sraitheanna ann in ionad Class: `~django.contrib.postgres.aggregates.jsonbagg`, ag:class: `~django.contrib.postgres.aggregates.stringagg` [], [], agus ````faoi seach i Django 5.0. theastaíonn an t-iompar roimhe seo uait, socraigh go sainráite ``réamhshocraithe go Luach ([]) ``, `Luach ('[]'), nó ``Luach (“) ``.

  • Tá na ranganna Django.contrib.gis.admin.geomodelAdmin agus OsmGeoAdmin a dhíchur. Úsáid: aicme: ~django.contrib.admin.modelAdmin agus:class: ~django.contrib.gis.admin.gismodelAdmin ina ionad.

  • Ós rud é go n-úsáideann rindreáil foirme an t-inneall teimpléad anois, tá an ``BaseForm neamhchá _html_output () ``tá modh cúntóra as lasmuigh.

  • Tá an cumas chun str a thabhairt ar ais ó ErrorList agus ErrorDict a chur ar ais as ErrorDict. Táthar ag súil go bhfillfidh na modhanna seo Safestring.

Gnéithe bainte i 4.0Link to this heading

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

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

  • Baintear django.utils.http.urlquote () ``, `urlquote_plus (), urlunquote () `, agus urlunquote_plus ().

  • Baintear django.utils.encoding.force_text () ``agus ``smart_text ().

  • Baintear django.utils.translation.ugettext () ``, ``ugettext_lazy (), ugettext_noop () `, ungettext (), agus ``ungettext_lazy () ``.

  • django.views.i18n.set_language () ``ní shocraíonn an teanga úsáideora i ``request.session (eochair _language).

  • Alias=None ag teastáil i síniú fo-aicmí ``django.db.models.expression.get_group_by_cols () ``.

  • Baintear ``django.utils.text.unescape_entity () ``.

  • Baintear ``django.utils.http.is_safe_url () ``.

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

  • Baintear an socrú PASSWORD_RESET_TIMEOUT_DAYS.

  • Ní cheadaíonn an cuardach: lookup: isnull luachanna neamh-boolean a úsáid mar an taobh deise.

  • Baintear an rang eisceachta ``Django.db.Models.Query_Utils.InvalidQuery ``.

  • Baintear an pointe iontrála django-admin.py.

  • Baintear an modh HttpRequest.is_ajax () `.

  • Baintear tacaíocht don fhormáid ionchódú réamh-DJango 3.1 de luachanna fianáin a úsáideann Django.contrib.messages.storage.cookie.cookie.cookieStorage.

  • Baintear tacaíocht do na comharthaí athshocraithe pasfhocal réamh-DJango 3.1 ar an suíomh riaracháin (a úsáideann algartam hashing SHA-1).

  • Baintear tacaíocht don fhormáid ionchódú réamh-Django 3.1 de na seisiúin.

  • Baintear tacaíocht do na sínithe réamh-DJango 3.1 Django.Core.Signing.Signer (ionchódaithe leis an algartam SHA-1).

  • Baintear tacaíocht do na sínithe réamh-DJango 3.1 django.core.signing.dumps () ``(ionchódaithe leis an algartam SHA-1) i ``django.core.signing.loads ().

  • Baintear tacaíocht do na seisiúin úsáideora réamh-Django 3.1 (a úsáideann algartam SHA-1).

  • An argóint get_response do django.utils.deprecation.middlewaremixin. Tá __init__ () ``ag teastáil agus ní ghlacann sé le ```None`.

  • Baintear an argóint providing_args` le haghaidh Django.Dispatch.Signal.

  • Tá an argóint length le haghaidh `django.utils.crypto.get_random_string () ``ag teastáil.

  • Baintear an teachtaireacht liosta le haghaidh ModelMultiplechoicefield.

  • Baintear tacaíocht chun ainmneacha colún amh a chur chuig ``QuerySet.order_by () ``.

  • Baintear an réimse samhail Nullbooleanfield, ach amháin le haghaidh tacaíochta in imirce stairiúla.

  • Baintear ``django.conf.urls.url () ``.

  • Baintear an réimse samhail Django.contrib.postgres.fields.jsonfield, seachas tacaíocht in imirce stairiúla.

  • Baintear Django.contrib.postgres.fields.jsonb.keytransform agus Django.contrib.postgres.fields.jsonb.keytextTransform.

  • Baintear Django.contrib.postgres.forms.jsonfield.

  • Baintear na clibeanna teimpléad {% ifequal%} agus {% ifnotequal%}.

  • Baintear an suíomh idirthréimhseach DEFAULT_HASHING_ALGORITHM.