Nótaí scaoileadh Django 4.1Link to this heading

3 Lúnasa, 2022

Fáilte go dtí Django 4.1!

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

Tacaíonn Django 4.1 le Python 3.8, 3.9, 3.10, agus 3.11 (amhail 4.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 4.1Link to this heading

Láimhseálaithe asincrónacha le haghaidh tuairimí rang-bhunaitheLink to this heading

Féadfaidh féachaint ar fho-aicmí láimhseálaithe modh HTTP async a shainiú anois:

Code
import asyncio
from django.http import HttpResponse
from django.views import View


class AsyncView(View):
    async def get(self, request, *args, **kwargs):
        # Perform view logic using await.
        await asyncio.sleep(1)
        return HttpResponse("Hello async world!")

Féach: ref: async-class-based-views le haghaidh tuilleadh sonraí.

Comhéadan ASINCRONACH ORMLink to this heading

Soláthraíonn QuerySet ``comhéadan asincrónach anois do gach oibríocht rochtana sonraí. Ainmnítear iad seo de réir na n-oibríochtaí sioncrónacha atá ann cheana ach le réimír ``a, mar shampla acreate () ``, `aget (), agus mar sin de.

Ligeann an comhéadan nua duit cód asincrónach a scríobh gan gá d'oibríochtaí ORM a fhilleadh i sync_to_async () `:

Code
async for author in Author.objects.filter(name__startswith="A"):
    book = await author.books.afirst()

Tabhair faoi deara, ag an gcéim seo, go bhfanann na hoibríochtaí bunúsacha bunachar sonraí sioncrónach, agus ranníocaíochtaí leanúnach ar aghaidh chun tacaíocht asincrónach a bhrú síos isteach sa thiomsaitheoir SQL, agus tiománaithe bunachar sonraí asincr Cuimsíonn an comhéadan nua ceisteanna asincrónach na hoibríochtaí riachtanacha ``sync_to_async () `duit faoi láthair, agus ligfidh sé do chód leas a bhaint as forbairtí i dtacaíocht asincrónach an ORM de réir mar a fhorbraíonn sé.

Féach: ref: async-queries le haghaidh sonraí agus teorainneacha.

Bailíochtú SriantaLink to this heading

<django.db.models.Options.constraints><validating-objects>:class: Seiceáil `, :class: `uath <django.db.models.CheckConstraint>úil, agus:class: eisiamh <django.db.models.UniqueConstraint>`srianta atá sainmhínithe sa roghnaí: <django.contrib.postgres.constraints.ExclusionConstraint>attr: `Meta.Constraints déantar seiceáil anois trí:ref: `bailíochtú samhail `.

Inrochtaineacht rindreálaLink to this heading

Chun cabhrú le húsáideoirí le léitheoirí scáileáin, agus le teicneolaíocht chúnta eile, tá teimpléid foirm nua bunaithe ar <div> ar fáil ón eisiúint seo. Soláthraíonn siad seo nascleanúint níos inrochtana ná na teimpléid níos sine, agus tá siad in ann rialuithe gaolmhara, mar raidió-liostaí, a ghrúpáil i gceart i dtaca le réimsí páirce.

Moltar na teimpléid nua, agus beidh siad ina stíl rindreála foirme réamhshocraithe agus foirm á aschur, cosúil le ``{{form}} `i dteimpléad, ó Django 5.0.

D'fhonn glacadh leis an stíl aschuir nua a éascú, tá na teimpléid réamhshocraithe foirme agus foirmeacha inchumraithe anois ag leibhéal an tionscadail tríd an socrú: setting: FORM_RENDER.

Féach: Tagairt: `an chuid Foirmeacha (thíos) <forms-4.1>`le haghaidh sonraí iomlána.

MionghnéitheLink to this heading

django.contrib.adminLink to this heading

  • Cuirtear na hathróga CSS modh dorcha admin: ref: i bhfeidhm anois i <admin-theming>mbileog stíl agus i mbloc teimpléad ar leithligh.

  • ModelAdmin Scagairí Liosta providing custom FieldListFilter subclasses can now control the query string value separator when filtering for multiple values using the __in lookup.

  • Tá an admin:meth: `amharc stair <django.contrib.admin.ModelAdmin.history_view>`leathanaigh anois.

  • Tá nasc anois ag fillteáin giuirléidí gaolmhara le foirm athraithe réad.

  • Ceadaíonn an modh: Meth: .adminsite.get_app_list anois ord na n-aipeanna agus na samhlacha a athrú ar an leathanach innéacs riaracháin.

django.contrib.authLink to this heading

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

  • Ceadaíonn an modh: Meth: .remoteUserBackend.configure_user anois tréithe úsáideora a shioncronú le tréithe i gcóras iargúlta mar eolaire LDAP.

django.contrib.gisLink to this heading

  • Ceadaíonn an modh nua:meth: `.geosgeometry.make_valid () `geoiméadraí neamhbhailí a thiontú go cinn bailí.

  • Ligeann an argóint nua clone le haghaidh: meth: .geosgeometry.normalize clón normalaithe den ghéimseadracht a chruthú.

django.contrib.postgresLink to this heading

  • Tugann an fheidhm chomhiomlán nua:class: BitXor () <django.contrib.postgres.aggregates.BitXor>``int` den XOR` bitwise de na luachanna ionchuir neamh-null go léir.

  • SpGistIndex now supports covering indexes on PostgreSQL 14+.

  • ExclusionConstraint now supports covering exclusion constraints using SP-GiST indexes on PostgreSQL 14+.

  • <django.contrib.postgres.fields.DateTimeRangeField.default_bounds><django.contrib.postgres.fields.DecimalRangeField.default_bounds>Ceadaíonn an tréith nua ``default_limits ``de:attr: DateTimeRangeField `agus:attr: `DecimalRangeField teorainneacha a shonrú le haghaidh ionchuir liosta agus tuple.

  • <django.contrib.postgres.indexes.OpClass>:class: ~django.contrib.postgres.restricints.ExclusionConstraint ceadaíonn anois ranganna oibreora a shonrú leis an abairt: class: `opClass () `.

django.contrib.sitemapsLink to this heading

  • Áiríonn an teimpléad réamhshocraithe innéacs léarscáil an láithreáin `` <sitemapindex>`` an stampa ama `` <lastmod>`` anois má tá sé ar fáil, tríd an modh nua get_latest_lastmod(). Ba cheart teimpléid innéacs léarscáileanna suímh saincheaptha a nuashonrú le haghaidh na n-athróg coigeartaithe context.

django.contrib.staticfilesLink to this heading

Cúltaca bunachar sonraíLink to this heading

  • Is féidir le cúltaca bunachar sonraí tríú páirtí an leagan íosta riachtanach den bhunachar sonraí a shonrú anois ag baint úsáide as an tréith databaseFeatures.MINIMUM_DATABASE_VERSION atá tuple (m.sh. ciallaíonn (10, 0) “10.0"). Má shonraítear leagan íosta, ní mór do chúltaca DatabaseWrapper.get_database_version () `a chur i bhfeidhm freisin, a thugann tuple den leagan reatha bunachar sonraí. Caithfidh modh ``DatabaseWrapper.init_CONNECTION_STATE () ``sa chúlcheann ``super () glaoch ar ```super () ``d'fhonn an seiceáil a rith.

FoirmeachaLink to this heading

  • Tá an teimpléad réamhshocraithe a úsáidtear chun foirmeacha a rinneadh nuair a chaitheadh chuig teaghrán, m.sh. i dteimpléid mar {{form}}, inchumraithe ag leibhéal an tionscadail anois trí shocting:attr: ~django.forms.renderers.baserenderer.form_template_name ar an rang a chuirtear ar fáil d':setting: FORM_RENDER.

    Form.template_name is now a property deferring to the renderer, but may be overridden with a string value to specify the template name per-form class.

    Ar an gcaoi chéanna, is féidir an teimpléad réamhshocraithe a úsáidtear chun foirmeacha a rindreáil a shonrú tríd an tréith renderer matching:attr: ~django.forms.renderers.baserenderer.formset_template_name.

  • <div>An teimpléad foirme nua div.html, tagairt:attr: .form.template_name_div tréith, agus modh comhoiriúnaithe:meth: .form.as_div, déanann foirmeacha ag baint úsáide as eilimintí HTML ```.

    <fieldset><legend>Moltar an stíl aschuir nua seo thar na stíleanna: meth: ~.form.as_table, :meth: ~.form.as_p agus:meth: ~.form.as_ul atá ann, de réir mar a chuireann an teimpléad ```` agus ```i bhfeidhm chun ionchuir gaolmhara a ghrúpa agus tá sé níos éasca d'úsáideoirí léitheoirí scáileáin nascleanúint a dhéanamh.

    Beidh an t-aschur div-bhunaithe mar stíl rindreála réamhshocraithe ó Django 5.0.

  • D'fhonn glacadh go réidh leis an <div>stíl aschuir nua `, dhá aicme idirthréimhseacha ar fáil: ``django.forms.renderers.djangodivFormRenderer agus django.forms.renderers.jinja2divFormRenderer, le haghaidh cúltaca teimpléad Django agus Jinja2 faoi seach.

    Is féidir leat ceann díobh seo a chur i bhfeidhm tríd an socrú:setting: FORM_RENDER. Mar shampla:

    Code
    FORM_RENDERER = "django.forms.renderers.DjangoDivFormRenderer"
    

    Chomh luath agus <div>is é an stíl aschuir an réamhshocraithe, ó Django 5.0, cuirfear na léiritheoirí idirthréimhseacha seo a dhíchur, lena bhaint i Django 6.0. Is féidir an dearbhú `FORM_RENDER a bhaint ag an am sin.

  • Mura bhfuil an <div>stíl aschuir nua ``oiriúnach do do thionscadal, ba cheart duit fo-aicme renderóra a shainmhíniú:attr: `~django.forms.renderers.baserenderer.form_template_name agus:attr: ~django.forms.renderers.baserenderer.formset_template_name don stíl riachtanach, agus socraí:setting: FORM_RENDERER` dá réir sin.

    Mar shampla, maidir leis an <p>stíl aschuir ```` a úsáideann:: ~.form.as_p, sainmhíneoidh tú rindreoir foirme ag socrú form_template_name go django/forms/p.html agus formset_template_name go django/forms/formsets/p.html .

  • <legend>Ceadaíonn an nua:meth: ~django.forms.boundfield.legend_tag lipéid réimse a rindreáil i gclibeanna ```` tríd an argóint nua tag de:meth: ~django.forms.boundfield.label_tag.

  • Ceadaíonn an argóint nua edit_only le haghaidh: func: .modelformset_factory agus:func: .inlineformset_factory cruthú rudaí nua a chosc.

  • Ceadaíonn tréithe aicme js` agus css` de:doc: Meáin `anois rudaí hashable a úsáid, ní amháin teaghráin cosáin, chomh fada agus a chuireann na rudaí sin an modh ``__html__ () ``i bhfeidhm (de ghnáth nuair a bhíonn maisithe leis an maisitheoir: func: `~django.u</topics/forms/media> tils.html_safe).

  • <fieldset><legend>Cuidíonn na tréithe nua:attr: .boundfield.use_fieldSet agus:attr: .widget.use_fieldSet le giuirléidí a aithint inar chóir a ionchuir a ghrúpáil i ```` le ````.

  • Ceadaíonn an argóint:ref: formsets-error-teachtaireachtaí do:class: `~django.forms.formsets.baseformset teachtaireachtaí earráide a shaincheapadh le haghaidh líon neamhbhailí foirmeacha trí eochracha ``too_few_forms' agus ``too_many_forms' a rith.

  • IntegerField, FloatField, and DecimalField now optionally accept a step_size argument. This is used to set the step HTML attribute, and is validated on form submission.

IdirnáisiúnúLink to this heading

  • Tacaíonn an fheidhm:func: ~django.conf.urls.i18n.i18n_patterns le teangacha anois le scripteanna agus réigiúin araon.

Orduithe BainistíochtaLink to this heading

  • makemigrations --no-input now logs default answers and reasons why migrations cannot be created.

  • Déanann an rogha nua:option: makemigrations --scriptable aschur log agus leideanna ionchuir a atreorú chuig stderr, agus ní scríobhann ach cosáin de chomhaid imirce ginte chuig stdout.

  • Ceadaíonn an rogha nua:option: migration --prune 'imirce nach bhfuil ann a scriosadh ón tábla ``django_migrations`.

  • Déantar comhaid Python a chruthaí:djadmin: startproject, :djadmin: startapp, :djadmin: optimisation `, :djadmin: `makemigrations, agus:djadmin: squashmigrations a fhormáidiú anois ag baint úsáide as an ordú black má tá sé i láthair ar do PATH`.

  • Ligeann an t-ordú nua:djadmin: optimisation emigration oibríochtaí a bharrfheabhsú le haghaidh imirce.

ImirceLink to this heading

  • <django.db.models.Options.indexes>Ceadaíonn an oibríocht nua:class: ~django.db.migrations.operations.RenameIndex innéacsanna a athainmniú atá sainmhínithe sna roghanna: attr: Meta.Indexes `nó ``index_together `.

  • <django.db.models.Options.indexes>Gineann an autodetector imirce anois:class: ~django.db.migrations.Operations.RenameIndex oibríochtaí in ionad removeIndex agus AddIndex`, nuair a athainmníonn innéacsanna atá sainmhínithe in:attr: `Meta.Indexes `.

  • <django.db.models.Options.indexes>Gineann an autodetector imirce anois:class: ~django.db.migrations.operations.RenameIndex oibríochtaí in ionad AlterIndexTogether agus AddIndex`, agus innéacsanna sainmhínithe sa Meta.index_Together` á bhogadh chuig an: attr: Meta.index.

SamhlaLink to this heading

  • Glacann an abairt order_by den: class: ~django.db.Models.Expressions.Window tagairtí teaghráin do réimsí agus athraitheann sé anois.

  • Ceadaíonn an socrú nua:setting: CONN_HEALTH_CHECKS seiceálacha sláinte a chumasú le haghaidh: ref: `naisc bunachar sonraí leanúnacha `d'f <persistent-database-connections>honn líon na n-iarrataí a theip a laghdú, m.sh. tar éis freastalaí bunachar sonraí a atosú.

  • QuerySet.bulk_create() now supports updating fields when a row insertion fails uniqueness constraints. This is supported on MariaDB, MySQL, PostgreSQL, and SQLite 3.24+.

  • QuerySet.iterator() now supports prefetching related objects as long as the chunk_size argument is provided. In older versions, no prefetching was done.

  • Q objects and querysets can now be combined using ^ as the exclusive or (XOR) operator. XOR is natively supported on MariaDB and MySQL. For databases that do not support XOR, the query will be converted to an equivalent using AND, OR, and NOT.

  • Ceadaíonn an tréith nua:ref: `Field.non_DB_Attrs <custom-field-non_db_attrs>`tréithe réimsí a shaincheapadh nach mbíonn tionchar acu ar shainmhíniú colún.

  • Ar PostgreSQL, cruthaítear Autofield, BigAutoField`, agus ``SmallAutofield ``anois mar cholúin aitheantais seachas colúin sraitheacha le seicheamh.

Iarrataí agus FreagraíLink to this heading

SlándáilLink to this heading

  • Ligeann an socrú nua:setting: SECRET_KEY_FALLBACKS liosta luachanna a sholáthar le haghaidh rothlú eochair rúnda.

  • Tacaíonn an socrú: SETTING: SECURE_PROXY_SSL_HEADER anois le liosta prótacail scartha le camóg sa luach ceannteidil.

ComharthaíLink to this heading

  • Seolann na comharthaí: ~django.db.models.signals.pre_delete agus:data: ~django.db.models.signals.post_delete ``origin` an scriosadh anois.

TeimpléidLink to this heading

  • Ní theastaíonn an tréith HTML <script>```` `` a thuilleadh agus an scagaire teimpléad:tfilter: json_script á timfhilleadh.

  • <TEMPLATES-OPTIONS>Tá an: class: lódóir teimpléad taisceáilte <django.template.loaders.cached.Loader>`cumasaithe anois i bhforbairt, nuai:socrú: `DEBUG True, agus:socrú: OPTIONS ['luchtóirí'] ní shonraítear. Féadfaidh tú ``OPTIONS ['loader'] ``a shonrú chun é seo a shárú, más gá.

TástálachaLink to this heading

  • Tacaíonn an:class: .DiscoverRunner anois le tástálacha reatha go comhthreomhar ar macOS, Windows, agus aon chórais eile ina bhfuil an modh tosaithe réamhshocraithe: mod: multiprocessing spawn.

  • Ardaíonn bloc adamhach neadaithe atá marcáilte mar bhuan in:class: django.test.testcase RuntimeError anois, mar an gcéanna le lasmuigh de na tástálacha.

  • <django.test.SimpleTestCase.assertFormSetError>:meth: .simpletestCase.assertForError agus:meth: `AssertFormSetError () `tacaíonn anois le réad foirme/formset a rith go díreach.

URLannaLink to this heading

  • Stórálann an tréith nua:attr: .resolvermatch.captured_kwargs na hargóintí eochairfhocal gabháilte, mar a pháirsítear ón URL.

  • Stórálann an tréith nua:attr: .resolvermatch.extra_kwargs na hargóintí eochairfhocal breise a chuirtear chuig an bhfeidhm amharc.

FóntaisLink to this heading

  • Tacaíonn SimpleLazyObject le hoibríochtaí breise anois.

  • mark_safe() now preserves lazy objects.

BailíochtóiríLink to this heading

  • Seiceálann an nua:class: ~django.core.validators.stepvalueValidator an bhfuil luach ina iolrach lárnach de mhéid céim ar leith. Úsáidtear an bailíochtóir nua seo don argóint nua step_size a chuirtear le réimsí foirme a léiríonn luachanna uimhriúla.

Athruithe neamh-chomhoiriúnacha ar ais i 4.1Link 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í.

  • Athraítear BasedatabaseFeatures.has_case_insensitive_like ó True go False chun iompar an chuid is mó de bhunachar sonraí a léiriú.

  • Baintear ``databaseintrospection.get_key_columns () ``. Úsáid ``DatabaseIntrospection.get_relations () ``ina ionad.

  • Cuirtear DatabaseOperations.on_conflict_suffix_sql () `in ionad modh databaseOperations.on_conflict_suffix_sql () a ghlacann leis na hargóintí ``fields, on_conflict`, update_fields`, agus unique_fields.

  • Cuirtear on_conflict` in ionad an argóint ignore_conflicts den mhodh databaseOperations.insert_statement () ``a ghlacann le ``Django.db.Models.Constants.onConflict`.

  • Oibríochtaí bunachar sonraí. Cuirtear ``DatabaseOperations in ionad _convert_field_to_tz (). _convert_sql_to_tz () a ghlacann leis na hargóintí ``sql, params`, agus tzname.

  • Tógann roinnt modhanna dáta agus ama ar DatabaseOperations anois argóintí sql` agus params` in ionad field_name agus filleann 2-tuple ina bhfuil roinnt SQL agus na paraiméadair atá le hidirphóladh isteach sa SQL sin. Tá na sínithe nua seo ag na modhanna athraithe:

    • ``DatabaseOperations.date_extract_sql (lookup_type, sql, params) `

    • ``DatabaseOperations.DateTime_Extract_SQL (lookup_type, sql, params, ainm) ``

    • ``DatabaseOperations.Time_Extract_SQL (cuardach_cineál, sql, params) ``

    • ``DatabaseOperations.date_trunc_sql (lookup_type, sql, params, tZnA=None) ``

    • ``DatabaseOperations.DateTime_Trunc_sql (féin, lookup_type, sql, params, tzname) ``

    • ``DatabaseOperations.time_trunc_sql (lookup_type, sql, params, tzname=None) ``

    • ``DatabaseOperations.DateTime_Cast_Date_SQL (sql, paramaí, ainm) ``

    • ``DatabaseOperations.DateTime_Cast_Time_SQL (sql, paramaí, ainm) ``

django.contrib.gisLink to this heading

  • Baintear tacaíocht do GDAL 2.1.

  • Baintear tacaíocht do PostGIS 2.4.

Tacaíocht titim do PostgreSQL 10Link to this heading

Críochnaíonn tacaíocht suas srutha do PostgreSQL 10 i mí na Samhna 2022. Tacaíonn Django 4.1 le PostgreSQL 11 agus níos airde.

Tacaíocht titim do MariaDB 10.2Link to this heading

Críochnaíonn tacaíocht suas srutha do MariaDB 10.2 i mí na Bealtaine 2022. Tacaíonn Django 4.1 le MariaDB 10.3 agus níos airde.

Cuardaigh an liosta athraithe riaracháin a chuimsíonn athruithe caidrimh ilLink to this heading

Cuirtear cuardach ar liosta athraithe riaracháin ag úsáid téarmaí cuardaigh iolracha i bhfeidhm anois i nglao amháin ar ``filter () ``, seachas i nglaonna ``filter () `seicheamhacha.

Maidir le caidrimh illuachmhar, ciallaíonn sé seo go gcaithfidh sraitheanna ón tsamhail gaolmhar na téarmaí go léir a mheaitseáil Mar shampla, má shocraítear search_fields go ['child__name', 'child__age'] agus má chuardaíonn úsáideoir ``Jamal 17', ní thabharfar sraitheanna tuismitheora ar ais ach amháin má bhíonn caidreamh le leanbh 17 bliain d'aois ainm Jamal, seachas tuismitheoirí a thabhairt ar ais nach bhfuil ach leanbh níos sine ar ainm Jamal.

Féach an t-ábhar: ref: spanning-il-luach-caidrim' le haghaidh tuilleadh plé a dhéanamh ar an difríocht seo. I Django 4.0 agus níos luaithe, lean:: meth: `~django.contrib.admin.modeladmin.get_search_results an dara ceist sampla, ach mar thoradh ar an iompar neamhdhoiciméadaithe seo bhí ceisteanna le comhpháirteanna iomarcacha.

Athruithe eochra eachtracha a aisiompú do chásanna samhailLink to this heading

<django.db.models.fields.related.RelatedManager>D'fhonn an t-iompar a aontú le caidreamh go leor le go leor le haghaidh cásanna samhail neamhshábháilte, ardaíonn eochair eachtrach droim “ValueError” anois agus iad ag glaoch ar: class: `bainisteoirí gaolmhara `le haghaidh rudaí neamhshábháilte.

IlghnéitheachLink to this heading

  • Tá bainisteoirí gaolmhara le haghaidh: class: ~django.db.models.foreignKey, :class: ~django.db.models.manyToManyField, agus:class: ~django.contrib.contentTypes.Fields.GenericRelation ar an sampla: Class: ~Django.db.Models.Model lena mbaineann siad anois. * Cuireadh an t-athrú seo ar ais i Django 4.1.2. *

  • DiscoverRunner now returns a non-zero error code for unexpected successes from tests marked with unittest.expectedFailure().

  • CsrfViewMiddleware no longer masks the CSRF cookie like it does the CSRF token in the DOM.

  • CsrfViewMiddleware now uses request.META['CSRF_COOKIE'] for storing the unmasked CSRF secret rather than a masked version. This is an undocumented, private API.

  • Tugann an: Attr: .ModelAdmin.Actions agus:attr: ~django.contrib.admin.modelAdmin.inlines réamhshocraithe anois le tuple folamh seachas liosta folamh chun sóchán neamhbheartaithe a dhíspreagadh.

  • </topics/forms/media> <link>Níl an tréith type="text/css" san áireamh a thuilleadh i gclibeanna ```` le haghaidh CSS:doc: form media.

  • Is imeachtaí JavaScript íon iad imeachtaí JavaScript formset:added agus formset: removed anois agus níl siad ag brath ar jQuery. Féach:ref: admin-javascript-inline-form-events le haghaidh tuilleadh sonraí faoin athrú.

  • Cuirtear exception in ionad argóint exc_info den fheidhm ``django.utils.log.log_response () `neamhdhoiciméadaithe.

  • Baintear argóint size den fheidhm ``django.views.static.was_modified_since () ``neamhdhoiciméadaithe.

  • Úsáideann an UI logáil amach riaracháin iarratais ``POST ``anois.

  • Cuirtear an modh non_form_errors () `in ionad na maoine neamhdhoiciméadaithe ``inlineAdminFormSet.NON_FORM_ERRORS. Tá sé seo comhsheasmhach le BaseFormSet.

  • Mar gheall ar: ref: thuas <templates-4.1>, tá an lódóir teimpléad taisceáilte cumasaithe anois i bhforbairt. Féadfaidh tú ``OPTIONS ['loader'] ``a shonrú chun é seo a shárú, más gá.

  • Cuirtear RedirecturlMixin` in ionad an mixin django.contrib.auth.views.successURLAllowedHostsMixin neamhdhoiciméadaithe.

  • BaseConstraint subclasses must implement validate() method to allow those constraints to be used for validation.

  • An URLResolver gan doiciméadú. _is_callback () ``, `UrlResolver. Bogtar _callback_strs, agus URLPattern.lookup_str () ``chuig ``django.contrib.admindocs.utils.

  • Athraíonn an modh: Meth: .model.FULL_CLEAN luach eisiúint anois go set`. Is fearr freisin luach ``eisithe a chur ar aghaidh mar set chuig na modhanna: meth: .model.clean_fields, :meth: .model.full_clean, :meth: .model.validate_unique, agus:meth: .model.validate_restricints.

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

  • Ní úsáideann abairtí comhcheangailte an t-iompar earráidí a bhaineann le tuairim a thuilleadh output_field` nuair a mheaitseálann cineálacha argóintí. Mar thoradh air sin, féadfaidh réiteach output_field le haghaidh feidhmeanna bunachar sonraí agus nathanna comhcheangailte titim anois le cineálacha measctha. Beidh ort an output_field` a shocrú go sainráite i gcásanna den sórt sin.

  • Ní athraíonn an t-ordú:djaDmin: makemessages comhaid `.po ``a thuilleadh nuair a bhíonn siad cothrom le dáta. I leaganacha níos sine, rinneadh “Pot-Creation-Date” a nuashonrú i gcónaí.

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

Logáil amach trí GETLink to this heading

<django.contrib.auth.views.LogoutView>Tá logáil amach trí iarratais GET chuig an:py:class: `amharc logála amach ionsuite `díluachtaithe. Úsáid iarratais ``POST ``ina ionad.

Más mian leat taithí úsáideora nasc HTML a choinneáil, is féidir leat foirm atá stíleáilte a úsáid le feiceáil mar nasc:

Html
<form id="logout-form" method="post" action="{% url 'admin:logout' %}">
  {% csrf_token %}
  <button type="submit">{% translate "Log out" %}</button>
</form>
Css
#logout-form {
  display: inline;
}
#logout-form button {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  text-decoration: underline;
}

IlghnéitheachLink to this heading

  • Tá an comhthéacs do theimpléid innéacs léarscáileáin léarscáileáin de liosta comhréidh URLanna míchuige. Ba chóir teimpléid innéacs léarscáileáin saincheaptha a nuashonrú do na hathróga coigeartaithe: ref: comhthéacs <sitemap-index-context-variables>, ag súil le liosta rudaí le suíomh ``agus tréithe roghnacha ``lastmod.

  • Tá an socrú idirthréimhseach CSRF_COOKIE_MASKED a dhíchur.

  • Tá an argóint ``ainm ``de:func: django.utils.functional.cached_property a dhíchur mar nach bhfuil sé gan ghá mar Python 3.6.

  • <django.contrib.postgres.indexes.OpClass>Tá an argóint opclasses` de Django.contrib.postgres.Constraints.ExclusionConstraint` a dhíchur i bhfabhar úsáid:class: opClass () `in:attr: `.ExclusionConstraint.Expressions. Chun é a úsáid, ní mór duit 'django.contrib.postgres' a chur i d':setting: INSTALLED_APPS.

    Tar éis an t-athrú seo a dhéanamh, ginfidh :djadmin: makemigrations imirce nua le dhá oibríocht: removeConstraint` agus AddConstraint. Ós rud é nach bhfuil aon éifeacht ag an athrú seo ar an scéim bunachar sonraí, is féidir an oibríocht:: class: ~django.db.migrations.Operations.SeparateDatabaseAndState a úsáid chun an stát imirce a nuashonrú gan aon SQL a reáchtáil. Bog na hoibríochtaí a ghintear isteach san argóint state_operations de:class: ~django.db.migrations.Operations.SeparateDatabaseandState. Mar shampla:

    Code
    class Migration(migrations.Migration):
        ...
    
        operations = [
            migrations.SeparateDatabaseAndState(
                database_operations=[],
                state_operations=[
                    migrations.RemoveConstraint(...),
                    migrations.AddConstraint(...),
                ],
            ),
        ]
    
  • <django.test.SimpleTestCase.assertFormSetError>Tá an cumas neamhdhoiciméadaithe chun Errors=None a rith chuig:meth: .simpletestCase.assertFormerror agus:meth: `assertFormSetError () `míchuige. Úsáid ``errors= [] ``ina ionad.

  • Django.Contrib.Sessions.Serializers.Pickleserializer a dhíchur mar gheall ar an mbaol go ndéanfar cód iargúlta a fhorghníomhú.

  • Tá úsáid QuerySet.iterator () ``ar thacar cheisteanna a fhaigheann rudaí gaolmhara réamh-mheasta gan an argóint ``chunk_size a sholáthar. I leaganacha níos sine, níor rinneadh aon réamh-aimsiú. Tugann luach a sholáthar do chunk_size` le fios go bhfuil an ceist bhreise in aghaidh an phíosa a theastaíonn chun réamh-fháil ag teastáil.

  • Tá cásanna samhail neamh-shábháilte a chur chuig scagairí gaolmhara. I Django 5.0, ardófar an eisceacht.

  • Cuirtear created=True leis an síniú de:meth: .remoteUserBackend.configure_user. Tá tacaíocht do fho-aicmí RemoteUserBackend` nach nglacann leis an argóint seo a dhíchur.

  • Tá an ailias django.utils.timezone.utc to:attr: datetime.timezone.utc díscothaithe. Úsáid: attr: datetime.timezone.utc go díreach.

  • Tá réad freagartha agus ainm foirme/foirmeacha a chur chuig SimpletestCase.assertFormError () ``agus ``AssertFormSetError () a dhíchur. Úsáid:

    Code
    assertFormError(response.context["form_name"], ...)
    assertFormsetError(response.context["formset_name"], ...)
    

    nó pas an réad foirme/formset go díreach ina ionad sin.

  • Tá an Django.contrib.gis.admin.openLayersWidget` neamhdhoiciméadaithe míchuige.

  • Django.Contrib.Auth.Hashers.CryptPasswordHasher díluachtaithe.

  • An cumas chun modhanna Nulls_first=FalseNulls_last=False a rith go Expression.asc () ``agus ``Expression.desc () modhanna, agus tá an abairt OrderBy díscothaithe. Úsáid ``None ``ina ionad.

  • Tá na teimpléid django/forms/default.html agus django/forms/formsets/default.html atá ina seachfhreastalaí do na teimpléid tábla-bhunaithe a dhíchur. Úsáid an teimpléad sonrach ina ionad.

  • Athainmnítear an modh ``logoutView.get_next_page () neamhdhoiciméadaithe go ``get_success_url () `.

Gnéithe bainte i 4.1Link to this heading

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

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

  • Baintear tacaíocht chun rudaí a shannadh nach dtacaíonn le cóipeanna domhain a chruthú le copy.deepcopy () ``do thréithe ranga i ``TestCase.setupTestData ()`.

  • Baintear tacaíocht chun luach boolean a úsáid in:attr: .basecommand.requires_system_checks.

  • Baintear an argóint whitelist agus domain_whitelist tréith django.core.validators.emailvalidator.

  • Baintear an t-athróg cumraíochta feidhmchláir default_app_config.

  • Ní ghlaonn TransactionTestCase.assertQuerySetEqual () ```repr () a thuilleadh ar tacar ceisteanna i gcomparáid le luachanna sreangáin.

  • Baintear an cúltaca django.core.cache.backends.memcached.memcachedcache.

  • Baintear tacaíocht don fhormáid réamh-Django 3.2 de theachtaireachtaí a úsáideann Django.contrib.messages.storage.cookie.cookie.cookieStorage.