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:
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
headersa 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
modelina 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.
GDALRasternow 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
GeometryFielda shaincheapadh. Spreagtar é seo in ionadGeomodelAdminagusOsmGeoAdmindí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
ManifestStaticFilesStoragenow replaces paths to JavaScript source map references with their hashed counterparts.Ceadaíonn an argóint nua
manifest_storagede: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.baseCachean próiseas chun cúltaca taisce a dhéanamh ag comhoiriúnach async-chomhoiriúnach. Tá ainmneacha réamhshocraitheaag 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
ale haghaidh leaganacha async modhanna go ginearálta.
CSRFLink to this heading
FoirmeachaLink to this heading
ModelChoiceFieldnow includes the provided value in theparamsargument of a raisedValidationErrorfor theinvalid_choiceerror message. This allows custom error messages to use the%(value)splaceholder.BaseFormSetnow renders non-form errors with an additional class ofnonformto help distinguish them from form-specific errors.BaseFormSetnow allows customizing the widget used when deleting forms viacan_deleteby setting thedeletion_widgetattribute or overridingget_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
DeleteViewnow usesFormMixin, allowing you to provide aFormsubclass, with a checkbox for example, to confirm deletion. In addition, this allowsDeleteViewto function withdjango.contrib.messages.views.SuccessMessageMixin.De réir
FormMixin, déantar scriosadh réad le haghaidh iarratais POST a láimhseáil iform_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
readlinea 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
cruinneden 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.
DurationFieldnow 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+.
Lookupexpressions may now be used inQuerySetannotations, 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
stdoutle 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
floatformattemplate filter now allows using theusuffix to force disabling localization.
TástálachaLink to this heading
<test-case-serialized-rollback>Cinneann an argóint nua
serialized_aliasesde: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
loggergo: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.loggera logáil, nó a phriontáil chuig an gconsól mura bhfuil sé socraithe.DiscoverRunnercan now execute tests in a random order using thetest --shuffleoption.Tacaíonn an rogha: 'test --parallel` anois leis an luach
autochun 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 executingtransaction.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 roghnachiso_yeard'fhonn tacú le teorainneacha do bhlianta uimhrithe seachtaine ISO-8601.An dara argóint de
DatabaseSchemaEditor. Is é modhanna _unique_sql () ``agus ``_create_unique_sql ()anoisfieldsin ionadcolumns.
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: //' nó `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:
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
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
indexmaisithe lenever_cachea 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
TypeErroranois in ionadAssertionError.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 ionadAssertionError.Ag glaoch ar
EmailMultiAlternatives.Attach_Alternative () ``nó ``EmailMessage.Attach ()le hargóintícontentnó mimetype` neamhbhailí ardaíonnValueErrorin ionadAssertionError.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
objectde mhodhannaModelAdmin.log_Addition () ``, `log_change (), aguslog_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.queryagus an argóint where_class` leis an modh príobháideachget_extra_restriction` () ``de `ForeignObjectagus`` ForeignoBject``. Más gá, cuir tús leDjango.db.Models.sql.where.whereNodeina ionad.Cuirtear dhá argóint seasaimh filter_lhs` agus filter_rhs` in ionad argóint filter_clause` den mhodh ``Query.add_filter () ``neamhdhoiciméadaithe.
CsrfViewMiddlewarenow usesrequest.META['CSRF_COOKIE_NEEDS_UPDATE']in place ofrequest.META['CSRF_COOKIE_USED'],request.csrf_cookie_needs_reset, andresponse.csrf_cookie_setto track whether the CSRF cookie should be sent. This is an undocumented, private API.Bogtar an tairiseach
TRANSLATOR_COMMENT_MARKgan doiciméadú ódjango.template.basegodjango.utils.translation.template.An argóint
real_appsden `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_L10Nagus filleann sé aschur logánaithe i gcónaí. Úsáid an iarmhíruchun logánú a dhíchumasú.Athraítear luach réamhshocraithe an socrú
USE_L10NgoTrue. 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.utcgo 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
SERIALIZEa 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.baseconvneamhdhoiciméadaithe míchuige.Tá an modúl
django.utils.datetime_safeneamhdhoicimé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'gohttps'i Django 5.0.Tá an argóint
extra_testsle haghaidh: meth: .discoverRunner.build_suite agus:meth: .discoverRunner.run_tests a dhíchur.Fillfidh comhiomlánaithe
`Nonenuair nach bhfuil aon sraitheanna ann in ionadClass: `~django.contrib.postgres.aggregates.jsonbagg`, ag:class: `~django.contrib.postgres.aggregates.stringagg` [],[], agus````faoi seach i Django 5.0. Má theastaíonn an t-iompar roimhe seo uait, socraigh go sainráite ``réamhshocraithegoLuach ([]) ``, `Luach ('[]'), nó ``Luach (“) ``.Tá na ranganna
Django.contrib.gis.admin.geomodelAdminagusOsmGeoAdmina 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
stra thabhairt ar ais óErrorListagusErrorDicta chur ar ais asErrorDict. Táthar ag súil go bhfillfidh na modhanna seoSafestring.
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 () `, agusurlunquote_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).Tá
Alias=Noneag teastáil i síniú fo-aicmí ``django.db.models.expression.get_group_by_cols () ``.
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_responsedo 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
lengthle haghaidh `django.utils.crypto.get_random_string () ``ag teastáil.Baintear an teachtaireacht
liostale haghaidhModelMultiplechoicefield.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 an réimse samhail
Django.contrib.postgres.fields.jsonfield, seachas tacaíocht in imirce stairiúla.Baintear
Django.contrib.postgres.fields.jsonb.keytransformagusDjango.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.