Nótaí scaoilte Django 3.2Link to this heading

Aibreán 6, 2021

Fáilte go dtí Django 3.2!

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

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

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

Comhoiriúnacht PythonLink to this heading

Tacaíonn Django 3.2 le Python 3.6, 3.7, 3.8, 3.9, agus 3.10 (amhail 3.2.9). 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 3.2Link to this heading

Uathoibríoch: aicme: ~django.apps.appconfig fionnachtainLink to this heading

Sainmhíníonn an chuid is mó de na feidhmchláir in-phlugáilte fo-aicme: ~django.apps.appconfig i bhfo-mhodúl apps.py. Sainmhíníonn go leor athróg default_app_config ag díriú ar an rang seo ina __init__.py.

Nuair a bhíonn an fo-mhodúl apps.py` ann agus go sainmhíníonn fo-aicme aonair: class: ~django.apps.appconfig, úsáideann Django anois an chumraíocht sin go huathoibríoch, ionas gur féidir leat default_app_config` a bhaint.

D'fhág default_app_config` ní féidir ach cosán an fheidhmchláir a dhearbhú in:setting: INSTALLED_APPS (m.sh. ``django.contrib.admin') seachas cosán cumraíochta an aip (m.sh. ``Django.contrib.admin.apps.adminconfig'). Tugadh isteach é le haghaidh comhoiriúnacht cúil leis an iar-stíl, agus é mar intinn an t-éiceachóras a aistriú go dtí an dara ceann, ach níor tharla an lasc.

Le fionnachtain uathoibríoch AppConfig, ní theastaíonn default_app_config a thuilleadh. Mar thoradh air sin, tá sé imithe.

Féach: ref: configuring-applications-ref le haghaidh sonraí iomlána.

Cineál eochracha bunscoile a chruthaíodh uathoibrLink to this heading

<django.db.models.Field.primary_key>Nuair a shainmhínítear samhail, mura sainmhínítear aon réimse i msamhail le:attr: primary_key=true `cuirtear eochair bunscoile intuigthe leis. <django.apps.AppConfig.default_auto_field>Is féidir an cineál eochair bhunscoile intuigthe seo a rialú anois tríd an socrú: setting: `DEFAULT_AUTO_FIELD agus:attr: AppConfig.DEFault_AUTO_FIELD tréith. Níl gá níos mó eochracha bunscoile a shárú i ngach samhail.

Ag coinneáil an t-iompar stairiúil, is é an luach réamhshocraithe le haghaidh: socrú: DEFAULT_AUTO_FIELD: class: ~django.db.models.autofield. Ag tosú le 3.2 tionscadal nua a ghintear le:setting: DEFAULT_AUTO_FIELD atá socraithe to:class: ~DJANGO.DB.Models.BIGAUTOFIELD. <django.apps.AppConfig.default_auto_field>Chomh maith leis sin, gintear aipeanna nua le: attr: AppConfig.default_auto_field `socraithe to:class: `~django.db.models.bigautofield. Sa todhchaí a scaoileadh Django athrófar an luach réamhshocraithe de:setting: DEFAULT_AUTO_FIELD go dt:class: ~DJANGO.DB.Models.BIGAUTOFIELD.

Chun imirce nach dteastaíonn a sheachaint sa todhchaí, socraigh go sainráite:setting: DEFAULT_AUTO_FIELD to:class: ~django.db.models.autofield:

Code
DEFAULT_AUTO_FIELD = "django.db.models.AutoField"

nó é a chumrú ar bhonn in aghaidh an aip:

Code
from django.apps import AppConfig


class MyAppConfig(AppConfig):
    default_auto_field = "django.db.models.AutoField"
    name = "my_app"

nó ar bhonn in aghaidh an tsamhail:

Code
from django.db import models


class MyModel(models.Model):
    id = models.AutoField(primary_key=True)

Le súil leis an réamhshocrú atá ag athrú, cuirfidh seiceáil chórais rabhadh ar fáil mura bhfuil socrú follasach agat le haghaidh: setting: DEFAULT_AUTO_FIELD.

Nuair a athraítear luach de:setting: DEFAULT_AUTO_FIELD, ní féidir imirce don phríomh-eochair an uathoibríoch atá cruthaithe ann cheana trí tháblaí a ghiniúint faoi láthair. Féach na:setting: DEFAULT_AUTO_FIELD docs le haghaidh sonraí maidir le táblaí den sórt sin a imirce.

Innéacsanna feidhmiúlaLink to this heading

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

Code
from django.db import models
from django.db.models import F, Index, Value
from django.db.models.functions import Lower, Upper


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

    class Meta:
        indexes = [
            Index(
                Lower("first_name"),
                Upper("last_name").desc(),
                name="first_last_name_idx",
            ),
            Index(
                F("height") / (F("weight") + Value(5)),
                name="calc_idx",
            ),
        ]

<django.db.models.Options.indexes>Cuirtear innéacsanna feidhmiúla le samhlacha ag baint úsáide as an rogha: attr: `Meta.Indexes `.

Tacaíocht pymemcacheLink to this heading

Ligeann an cúltaca taisce nua django.core.cache.backends.memcached.pymemcacheCache leabharlanna:pypi: pymemcache a úsáid le haghaidh memcached. Teastaíonn pymemcache 3.4.0 nó níos airde. Le haghaidh tuilleadh sonraí, féach an:doc: doiciméadú maidir le caching in Django </topics/cache>.

Maisitheoirí nua don suíomh riaracháinLink to this heading

Ceadaíonn an maisitheoir nua:func: ~django.contrib.admin.display roghanna a chur go héasca le feidhmeanna taispeána saincheaptha is féidir a úsáid le:attr: ~django.contrib.admin.modeladmin.list_display nó: attr: ~django.contrib.admin.modeladmin.readonly_fields.

Mar an gcéanna, ceadaíonn an maisitheoir nua:func: ~django.contrib.admin.action roghanna a chur go héasca le feidhmeanna gníomhaíochta is féidir a úsáid le:attr: ~django.contrib.admin.modeladmin.actions.

Tá an buntáiste ag baint úsáide as an maisitheoir @display gur féidir anois an maisitheoir @property a úsáid nuair is gá duit tréithe a shonrú ar an modh saincheaptha. Roimhe seo bhí sé riachtanach an fheidhm ``property () `a úsáid ina ionad sin tar éis na tréithe riachtanacha a shannadh don mhodh.

Tá an buntáiste ag baint le maisitheoirí a úsáid go bhfuil na roghanna seo níos infhaighte mar is féidir iad a mholadh trí fhóntais chríochnaithe in eagarthóirí cód. Níl siad ach áisiúlacht agus socraíonn siad na tréithe céanna fós ar na feidhmeanna faoin gcochall.

MionghnéitheLink to this heading

django.contrib.adminLink to this heading

  • ModelAdmin.search_fields now allows searching against quoted phrases with spaces.

  • Déantar réimsí a bhaineann le léamh amháin a rinneadh anois mar naisc innasctha má tá spriocmhúnlaí cláraithe sa riarachán.

  • Tacaíonn an riarachán anois le téama, agus tá téama dorcha ann atá cumasaithe de réir socruithe brabhsálaí. Féach:ref: admin-theming le haghaidh tuilleadh sonraí.

  • <django.db.models.ForeignKey.to_field><django.db.models.ForeignKey.limit_choices_to>:attr: .ModelAdmin.AutoComplete_Fields meas anois:attr: ForeignKey.to_Field `agus:attr: `ForeignKey.LIMIT_CHOICES_TO agus tú ag cuardach samhail ghaolmhar.

  • Suiteálann an riarachán radharc deiridh catch-all anois a atreoraíonn úsáideoirí neamhfhíordheimhnithe chuig an leathanach logála isteach, is cuma an bhfuil an URL bailí ar shlí eile. Cosnaíonn sé seo i gcoinne saincheist phríobháideachta féideartha líonta samhail.

    Cé nach moltar, féadfaidh tú an nua:attr: .adminsite.final_catch_all_view a shocrú go False chun an radharc catch-all a dhíchumasú.

django.contrib.authLink to this heading

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

  • Athraítear an leagan réamhshocraithe don hasher pasfhocal Argon2 go Argon2id. Méadaítear memory_cost agus parallelism` go 102,400 agus 8 faoi seach chun na réamhshocruithe argon2-cffi a mheaitseáil.

    Ag méadú an memory_cost` brúitear an chuimhne riachtanach ó 512 KB go 100 MB. Tá sé seo fós sách coimeádach ach d'fhéadfadh fadhbanna a bheith mar thoradh ar thimpeallachtaí srianta cuimhne Más amhlaidh is amhlaidh, is féidir an hasher atá ann cheana a fho-aicmiú chun na réamhshocruithe a shárú.

  • Méadaítear an t-entróp salainn réamhshocraithe do na hashers pasfhocal Argon2, MD5, PBKDF2, SHA-1 ó 71 go 128 giotán.

django.contrib.contenttypesLink to this heading

  • Ligeann an argóint nua absolute_max d':func: ~django.contrib.contenttypes.forms.generic_inlineformset_factory an líon uasta foirmeacha is féidir a shaincheapadh nuair a sholáthraítear sonraí POST `. Féach: ref: formsets-absolute-max le haghaidh tuilleadh sonraí.

  • Ceadaíonn an argóint nua can_delete_extra le haghaidh: func: ~django.contrib.contenttypes.forms.generic_inlineformset_factory an rogha chun foirmeacha breise a scriosadh a bhaint. Féach: attr: ~.baseFormSet.can_delete_extra le haghaidh tuilleadh faisnéise.

django.contrib.gisLink to this heading

  • Tacaíonn an modh: Meth: .gdalraster.transform anois:class: ~django.contrib.gis.gdal.spatialReference.

  • Tacaíonn an rang:class: ~django.contrib.gis.gdal.datasource anois:class: Pathlib.path.

  • Tacaíonn an rang:class: ~django.contrib.gis.utils.layermapping anois:class: Pathlib.path.

django.contrib.postgresLink to this heading

  • Ceadaíonn an tréith nua:attr: .ExclusionConstraint.include srianta eisiaimh clúdaigh a chruthú ar PostgreSQL 12+.

  • Ligeann an tréith nua ExclusionConstraint.opClasses ranganna oibreora PostgreSQL a shocrú.

  • The new JSONBAgg.ordering attribute determines the ordering of the aggregated elements.

  • Cinneann an tréith nua:attr: .jsonBagg.Distinct an mbeidh luachanna comhiomlánaithe ar leith.

  • Seiceálann an oibríocht: Class: ~django.contrib.postgres.operations.createExtension anois go bhfuil an síneadh ann cheana sa bhunachar sonraí agus scipeánann sé an imirce más amhlaidh.

  • Ceadaíonn na hoibríochtaí nua:class: ~django.contrib.postgres.operations.createCollation agus:class: ~django.contrib.postgres.operations.removeCollation coláidí a chruthú agus a scaoileadh ar PostgreSQL. Féach:ref: manage-postgresql-collations le haghaidh tuilleadh sonraí.

  • Ceadaíonn cuardaigh le haghaidh: class: ~django.contrib.postgres.fields.arrayfield eagair (neamh-neadaithe) ina bhfuil nathanna mar thaobh na láimhe deise anois.

  • Ligeann an léiriú nua:class: opClass () <django.contrib.postgres.indexes.OpClass>`innéacsanna feidhmiúla a chruthú ar nathanna le rang oibreora saincheaptha. Féach:ref: `new_functional_indexes le haghaidh tuilleadh sonraí.

django.contrib.sitemapsLink to this heading

  • An nua:aicme: ~django.contrib.sitemaps.sitemap tréithe: attr: ~django.contrib.siteMaps.SiteMap.Alternates, :attr: ~django.contrib.sitemaps.siteMap.Languages agus:attr: ~django.contrib.sitemaps.sitemaps.emsitemaps.sitemaps.sitemaps.sitemapsites Ceadaíonn .x_default` léarscáil an láithreáin ghiniú*malartach* le leaganacha logánaithe de do leathanaigh.

django.contrib.syndicationLink to this heading

  • Ligeann an crúca nua item_comments URL tuairimí a shonrú in aghaidh an mhír beatha.

Cúltaca bunachar sonraíLink to this heading

  • Is féidir le cúltaca bunachar sonraí tríú páirtí tástálacha a scipeáil nó a mharcáil mar theipeanna ag súil leo i sraith tástála Django ag baint úsáide as na tréithe nua databaseFeatures.django_test_skips agus django_test_expected_failures.

MaisitheoiríLink to this heading

  • Ligeann an maisitheoir nua:func: ~django.views.decorators.common.no_append_slash tuairimí aonair a eisiamh ó:setting: APPEND_SLASH normalú URL.

Tuairisc EarráideLink to this heading

  • Is féidir le fo-aicmí Custom:Class: ~django.views.debug.exceptionReporter airíonna: attr: ~django.views.debug.exceptionReporter.html_template_path agus: attr: ~django.views.debug.exceptionReporter.text_template_path a shainiú chun na teimpléid a úsáidtear chun tuarascálacha eisceachta a dhéanamh.

Uaslódálacha ComhadLink to this heading

  • <django.core.files.uploadhandler.FileUploadHandler.upload_interrupted>Ceadaíonn an glaoch nua:meth: `FileUploadHandler.upload_interrupted () `uaslódálacha cur isteach ar láimhseáil.

FoirmeachaLink to this heading

  • Ceadaíonn an argóint nua absolute_max d':func: .formset_factory, :func: .inlineformset_factory, agus:func: .modelformset_factory an líon uasta na bhfoirmeacha is féidir a shaincheapadh agus sonraí POST` á sholáthar. Féach: ref: formsets-absolute-max le haghaidh tuilleadh sonraí.

  • Ceadaíonn an argóint nua can_delete_extra do:func: .formset_factory, :func: .inlineformset_factory, agus:func: .modelformset_factory an rogha chun foirmeacha breise a scriosadh a bhaint. Féach: attr: ~.baseFormSet.can_delete_extra le haghaidh tuilleadh faisnéise.

  • BaseFormSet now reports a user facing error, rather than raising an exception, when the management form is missing or has been tampered with. To customize this error message, pass the error_messages argument with the key 'missing_management_form' when instantiating the formset.

Tuairimí cineálachaLink to this heading

  • Tacaíonn na tréithe week_format de:class: ~django.views.generic.dates.weekMixin agus:class: ~django.views.generic.dates.weekArchiveView leis an bhformáid seachtaine `%V' ISO 8601 anois.

Orduithe BainistíochtaLink to this heading

  • loaddata now supports fixtures stored in XZ archives (.xz) and LZMA archives (.lzma).

  • dumpdata now can compress data in the bz2, gz, lzma, or xz formats.

  • makemigrations can now be called without an active database connection. In that case, check for a consistent migration history is skipped.

  • BaseCommand.requires_system_checks now supports specifying a list of tags. System checks registered in the chosen tags will be checked for errors prior to executing the command. In previous versions, either all or none of the system checks were performed.

  • Déantar tacaíocht d'aschur teirminéil daite ar Windows a nuashonrú. Braithtear timpeallachtaí críochfoirt nua-aimseartha éagsúla go huathoibríoch, agus feabhsaítear na roghanna chun tacaíocht a chum Féach: ref: syntax-coloring le haghaidh tuilleadh sonraí.

ImirceLink to this heading

  • Ligeann an maoin nua Operation.Migration_Name_Fragment blúire ainm comhaid a sholáthar a úsáidfear chun imirce nach bhfuil ach an oibríocht sin a ainmniú.

  • Tacaíonn imirce anois le sraitheadh rudaí cosáin íon agus coincréite ó:mod: pathlib, agus:class: os.pathlike cásanna.

SamhlaLink to this heading

  • The new no_key parameter for QuerySet.select_for_update(), supported on PostgreSQL, allows acquiring weaker locks that don't block the creation of rows that reference locked rows through a foreign key.

  • When() expression now allows using the condition argument with lookups.

  • Ceadaíonn na tréithe nua:attr: .index.include agus:attr: .uniqueConstraint.include innéacsanna clúdaigh a chruthú agus srianta uathúla a chlúdach ar PostgreSQL 11+.

  • Ceadaíonn an tréith nua:attr: .UniqueConstraint.opClasses ranganna oibreora PostgreSQL a shocrú.

  • Measann an modh: Meth: .querySet.Update anois an clásal ``order_by () ``ar MySQL agus MariaDB.

  • FilteredRelation() now supports nested relations.

  • The of argument of QuerySet.select_for_update() is now allowed on MySQL 8.0.1+.

  • Value() expression now automatically resolves its output_field to the appropriate Field subclass based on the type of its provided value for bool, bytes, float, int, str, datetime.date, datetime.datetime, datetime.time, datetime.timedelta, decimal.Decimal, and uuid.UUID instances. As a consequence, resolving an output_field for database functions and combined expressions may now crash with mixed types when using Value(). You will need to explicitly set the output_field in such cases.

  • Ligeann an modh nua:meth: .queryset.alias ainmneacha in-athúsáidte a chruthú le haghaidh nathanna nach gá a roghnú ach a úsáidtear chun scagadh, ordú nó mar chuid de nathanna casta.

  • Ceadaíonn an fheidhm nua:class: ~django.db.models.functions.collate scagadh agus ordú trí chomhbhailtí sonraithe bunachar sonraí.

  • The field_name argument of QuerySet.in_bulk() now accepts distinct fields if there's only one field specified in QuerySet.distinct().

  • Ceadaíonn paraiméadar nua tzinfo den fheidhmeanna bunachar sonraí: ~django.db.models.functions.truncDate agus:class: ~django.db.models.functions.truncTime feidhmeanna dáta a ghearradh i gcrios ama ar leith.

  • <django.db.models.TextField.db_collation>Ceadaíonn an argóint nua db_collation` le haghaidh: attr: CharField `agus:attr: `TextField<django.db.models.CharField.db_collation> comhdhlúthú bunachar sonraí a shocrú don réimse.

  • Cuireadh feidhm bunachar sonraí: class: ~django.db.models.functions.random leis.

  • <django.db.models.OuterRef>:ref: aggregation-functions, :class: F () `, :class: `O <django.db.models.F>uterRef (), agus ceadaíonn nathanna eile athfhoirmithe a úsáid anois. Féach: ref: using-transforms-in-expressions le haghaidh sonraí.

  • Ráthaíonn an argóint nua durable le haghaidh: func: ~django.db.transaction.atomic go ndéanfar athruithe a dhéantar sa bhloc adamhach má imeoidh an bloc gan earráidí. Ardóidh bloc adamhach neadaithe atá marcáilte mar mharthanach Runtimeerror.

  • Cuireadh feidhm bunachar sonraí: class: ~django.db.models.functions.jsonObject leis.

LeathanaighLink to this heading

  • Ligeann an modh nua:meth: django.core.paginator.paginator.get_elided_page_range raon leathanaigh a ghiniúint le cuid de na luachanna a dhíothú. Má tá líon mór leathanaigh ann, d'fhéadfadh sé seo a bheith cabhrach chun líon réasúnta naisc leathanaigh a ghiniúint i dteimpléad.

Iarrataí agus FreagraíLink to this heading

  • Stóráiltear ceanntála freagartha anois in:attr: .httpResponse.headers. Is féidir é seo a úsáid in ionad an chomhéadan bunaidh cosúil le dict de rudaí HttpResponse. Leanfar tacaíocht ar aghaidh leis an dá chomhéadan. Féach: Ref: setting-header-fields le haghaidh sonraí.

  • Ceadaíonn an paraiméadar nua headers de:class: ~django.http.httpResponse, :class: ~django.template.response.simpletemplateResponse, agus:class: ~Django.Template.Response.TemplateResponse freagra:attr: ~Django.http.HttpResponse Ceannairí ar ionchúradh.

SlándáilLink to this heading

  • Déantar an socrú: SETTING: SECRET_KEY a sheiceáil anois le haghaidh luach bailí ar an gcéad rochtain, seachas nuair a luchtaítear socruithe den chéad uair. Cuireann sé seo ar chumas orduithe bainistíochta a reáchtáil nach bhfuil ag brath ar an SECRET_KEY gan gá leo luach a sholáthar. Mar thoradh air seo, glaoch: func: ~django.conf.settings.configure gan SECRET_KEY` bailí a sholáthar, agus ansin dul ar aghaidh chun rochtain a fháil ar Settings.SECRET_KEY ardóidh eisceacht anois:exc: ~django.core.exceptions.imProperlyConfigured.

  • Ceadaíonn na modhanna nua Signer.sign_Object () ``agus ``Signer.unsign_Object () struchtúir chasta sonraí a shíniú. Féach:ref: signing-complex-data le haghaidh tuilleadh sonraí.

    Chomh maith leis sin, :func: signing.dumps () <django.core.signing.dumps>`agus:func: `~django.core.signing.loads ina aicearraí le haghaidh: meth: .timeStampSigner.sign_Object agus:meth: ~.TimeStampSigner.Unsign_Object.

SraitheadhLink to this heading

  • Ceadaíonn an <serialization-formats-jsonl>serializer nua:ref: JSONL `formáid Lines JSON a úsáid le: djadmin: `dumpdata agus:djadmin: djadmin: `loaddata. Is féidir leis seo a bheith úsáideach chun bunachair sonraí móra a líonadh toisc go luchtaítear sonraí líne ar líne isteach sa chuimhne, seachas iad a luchtú go léir ag an am céanna.

ComharthaíLink to this heading

  • <django.dispatch.Signal.send_robust>: meth: Logáil `signal.send_robust () `eisceachtaí anois.

TeimpléidLink to this heading

TástálachaLink to this heading

  • Objects assigned to class attributes in TestCase.setUpTestData() are now isolated for each test method. Such objects are now required to support creating deep copies with copy.deepcopy(). Assigning objects which don't support deepcopy() is deprecated and will be removed in Django 4.1.

  • DiscoverRunner now enables faulthandler by default. This can be disabled by using the test --no-faulthandler option.

  • DiscoverRunner and the test management command can now track timings, including database setup and total run time. This can be enabled by using the test --timing option.

  • : class: ~django.test.client coimeannann an teaghrán fiosrúcháin iarratais anois agus 307 agus 308 atreoraithe á leanúint agat.

  • <django.db.transaction.on_commit>Gabhann an modh nua:meth: .testcase.captureOnCommitCallbacks feidhmeanna glaonna ar ais a chuirtear chuig: func: transaction.on_commit () `i liosta. Ligeann sé seo duit glaonna den sórt sin a thástáil gan an níos moille: class: `.transactionTestCase a úsáid.

  • TransactionTestCase.assertQuerysetEqual() now supports direct comparison against another queryset rather than being restricted to comparison against a list of string representations of objects when using the default value for the transform argument.

FóntaisLink to this heading

  • Ligeann paraiméadar nua depth de fheidhmeanna django.utils.timesince.timesince () ``agus ``django.utils.timesince.timetill () líon na n-aonad ama in aice láimhe le filleadh a shonrú.

BailíochtóiríLink to this heading

  • Cuimsíonn bailíochtóirí ionsuite anois an luach a chuirtear ar fáil in argóint params` ardaithe: exc: ~django.core.exceptions.validationError. Ligeann sé seo teachtaireachtaí earráide saincheaptha an sealbhóir áite % (value) s a úsáid.

  • Déanann an t-oibreoir comhionannais: Class: .ValidationError neamhaird anois ar ordú teachtaireachtaí ``agus `params.

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

  • Cuireann an maoin nua DatabaseFeatures.Introspected_Field_Types in ionad na gnéithe seo:

    • can_introspect_autofield

    • `Is féidir leis an réimse mór_iomlánaíneach

    • `is féidir _introspect_dénárach_réimhseach

    • ``Is féidir _introspect_deacimal_réimse ``

    • ``Is féidir _ionfheictitheoireach_tréimhseach_réimse `

    • Is féidir _introspect_ip_address _field

    • ``Is féidir _ionstraimhseach_dearfact_réimhseach_iomlán_réimse `

    • ``Is féidir _ionstraimhseach_beag_lán_réimse `

    • ``Is féidir _réimseach_aim_ionstraiméireacht `

    • cineál_infheicteoireach_mór_auto_field_

    • `cineál_réimsí beag_auto_field_introspected

    • `cineál_réimsí ionchosraithead_boolean

  • Chun tacaíocht a chumasú chun innéacsanna a chlúdach (:attr: .index.include) agus srianta uathúla a chlúdach (:attr: .UniqueConstraint.include), socraigh databaseFeatures.supports_covering_indexes go True`.

  • Caithfidh cúltaca bunachar sonraí tríú páirtí tacaíocht do cholúin bunachar sonraí colún a chur i bhfeidhm ar Charfield agus TextFields nó DatabaseFeatures.supports_collation_on_charfield` agus databaseFeatures.supports_collation_on_textfield a shocrú go False`. Mura dtacaítear le comparáidí neamhchinnteacha, socraigh supports_non_deterministic_collations go False`.

  • Baintear DatabaseOperations.Random_Function_SQL () i bhfabhar an fheidhm bunachar sonraí nua:class: ~Django.db.Models.Functions.Random.

  • DatabaseOperations.date_trunc_sql () ``agus DatabaseOperations.time_trunc_sql () glacann anois an argóint roghnach ``tzname d'fhonn a ghearradh i gcrios ama ar leith.

  • Faigheann DatabaseClient.runshell () `argóintí anois agus foclóir roghnach le hathróga comhshaoil chuig an gcliant líne ordaithe bunúsach ó ``DatabaseClient.settings_to_cmd_args_env () `modh. Caithfidh cúltaca bunachar sonraí tríú páirtí ``DatabaseClient.settings_to_cmd_args_env () `a chur i bhfeidhm ``DatabaseClient.runshell () a shárú.

  • Caithfidh cúltaca bunachar sonraí tríú páirtí tacaíocht d'innéacsanna feidhmiúla a chur i bhfeidhm (:attr: .index.Expressions) nó DatabaseFeatures.supports_Expression_indexes` a shocrú go False. Mura bhfuil COLLATE` mar chuid den ráiteas CREATE INDEX, socraigh databaseFeatures.collate_as_index_expression go True`.

django.contrib.adminLink to this heading

  • Tá naisc leathanaigh sa riarachán anois 1-innéacsaithe in ionad 0-innéacsaithe, ie is é an teaghrán fiosrúcháin don chéad leathanach ? p=1 in ionad ? p=0.

  • Briseoidh an radharc nua riaracháin catch-all patrúin URL a atreoraítear tar éis na URLanna riaracháin agus an réimír URL riaracháin a mheaitseáil. <django.contrib.admin.AdminSite.final_catch_all_view>Is féidir leat d'ordú URL a choigeartú nó, más gá, socraí:attr: adminsite.final_catch_all_view `go `False`, ag díchumasú an radharc catch-all. Féach:ref: whats-new-3.2 le haghaidh tuilleadh sonraí.

  • Ní chuirtear comhaid JavaScript mionraithe san áireamh leis an riarachán a thuilleadh. Má theastaíonn uait go ndéanfaí na comhaid seo a mionrú, smaoinigh ar aip tríú páirtí nó uirlis tógála seachtrach a úsáid. <contrib-admin-jquery>Tá na comhaid JavaScript mionraithe a phacáistithe leis an riarachán (e.g.:ref: `jquery.min.js `) san áireamh fós.

  • ModelAdmin.prepopulated_fields no longer strips English stop words, such as 'a' or 'an'.

django.contrib.gisLink to this heading

  • Baintear tacaíocht do PostGIS 2.2.

  • Clónaíonn cúltaca Oracle anois polagóin (agus bailiúcháin geoiméadais ina bhfuil polagóin) sula ndéanann siad iad a athdhíriú agus iad a shábháil ar an mbunachar sonraí. Níl siad sáraithe i bhfeidhm a thuilleadh. B'fhéidir go dtabharfá é seo a thabhairt faoi deara má úsáideann tú na polagóin tar éis samhail a shábháil.

Tacaíocht titim do PostgreSQL 9.5Link to this heading

Críochnaíonn tacaíocht suas srutha do PostgreSQL 9.5 i mí Feabhra 2021. Tacaíonn Django 3.2 le PostgreSQL 9.6 agus níos airde.

Tacaíocht titim do MySQL 5.6Link to this heading

Is é Aibreán 2021 deireadh na tacaíochta suas srutha do MySQL 5.6. Tacaíonn Django 3.2 le MySQL 5.7 agus níos airde.

IlghnéitheachLink to this heading

  • Tacaíonn Django anois le criosanna ama neamh-pytz, mar shampla Python 3.9+'s:mod: zoneinfo modúl agus a backport.

  • Athainmnítear an modh neamhdhoiciméadaithe SpatialiteOperations.proj4_version () ``go `proj_version ().

  • slugify() now removes leading and trailing dashes and underscores.

  • Ní bhraitheann scagairí teimpléad:tfilter: intcomma agus:tfilter: intword a thuilleadh ar an socrú USE_L10N.

  • Baintear tacaíocht do ``argon2-cffi ``<19.1.0.

  • Ní chuimsíonn na heochracha taisce an teanga a thuilleadh nuair a dhéantar idirnáisiúnú a dhíchumasú (USE_I18N = False) agus cuirtear logánú cumasaithe (USE_L10N = True). Tar éis uasghrádú a dhéanamh go Django 3.2 i gcumraíochtaí den sórt sin, is é an chéad iarratas ar aon luach a chosáiltear roimhe seo ná caill taisce.

  • ``ForeignKey.validate () ``úsáideann anois:attr: ~Django.db.Models.Model. _base_manager seachas: attr: ~django.db.Models.Model. _default_manager chun a sheiceáil go bhfuil cásanna gaolmhara ann.

  • Nuair a shainmhíníonn feidhmchlár fo-aicme: ~django.apps.appconfig i bhfo-mhodúl apps.py, úsáideann Django an chumraíocht seo go huathoibríoch anois, fiú mura bhfuil sé cumasaithe le default_app_config`. Socraigh default = False sa fho-aicme: ~django.apps.appconfig más gá duit an t-iompar seo a chosc. Féach:ref: whats-new-3.2 le haghaidh tuilleadh sonraí.

  • Ardaíonn múnla teibí anois TypeError a thionscnamh.

  • Tá argóintí eochairfhocal to:func: ~django.test.utils.setup_databases eochairfhocal amháin anois.

  • Baintear an fheidhm ``django.utils.http.limited_parse_qsl () ``neamhdhoiciméadaithe. Úsáid le do thoil: func: urllib.parse.parse_qsl ina ionad.

  • django.test.utils.TestContextDecorator now uses addCleanup() so that cleanups registered in the setUp() method are called before TestContextDecorator.disable().

  • Ardaíonn SessionMiddleWare eisceacht anois a:exc: ~Django.Contrib.sessions.Exceptions.SessionInterrupted in ionad:exc: ~Django.Core.Exceptions.SuspiciousOperation nuair a scriostar seisiún in iarratas comhuaineach.

  • Déanann an t-oibreoir comhionannais: Class: Django.DB.Models.Field idirdhealú i gceart anois cásanna allamuigh oidhreachta ar fud samhlacha. Ina theannta sin, sainmhínítear ordú réimsí den sórt sin anois.

  • Filleann an fheidhm django.core.files.locks.lock () ``neamhdhoiciméadaithe ``False anois mura féidir an comhad a ghlasáil, in ionad ardú:exc: blockingioError.

  • Déanann an mheicníocht athshocraithe pasfhocail neamhbhailí anois ar chomharthaí nuair a athraítear ríomhphost an úsáideora.

  • makemessages command no longer processes invalid locales specified using makemessages --locale option, when they contain hyphens ('-').

  • Is é an réimse foirme django.contrib.auth.forms.ReadOnlyPasswordHashfield anois:attr: ~django.forms.field.disabled de réir réamhshocraithe. Dá bhrí sin ní gá ``UserChangeForm.clean_password () ``an luach tosaigh a thabhairt ar ais a thuilleadh.

  • Láimhseálann na hoibríochtaí taisce cache.get_many () ``, `get_or_set (), has_key () `, incr ()`, decr () `, incr_version ()`, agus decr_version () ``i gceart anois ``None` atá stóráilte sa taisce, ar an mbealach céanna le haon luach eile, in ionad iompar amhail is nach raibh an eochair ann.

    Mar gheall ar theorannú python-memcached, coimeádtar an t-iompar roimhe seo don chúltaca `MemcachedCache ``atá díluaite.

  • Méadaítear an leagan íosta tacaithe de SQLite ó 3.8.3 go 3.9.0.

  • CookieStorage now stores messages in the RFC 6265 compliant format. Support for cookies that use the old format remains until Django 4.1.

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

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

IlghnéitheachLink to this heading

  • Assigning objects which don't support creating deep copies with copy.deepcopy() to class attributes in TestCase.setUpTestData() is deprecated.

  • Tá luach boolean a úsáid in:attr: .baseCommand.requires_System_Checks díluachtaithe. Úsáid '__all__' in ionad True, agus [] (liosta folamh) in ionad False.

  • Tá an argóint whitelist agus an tréith domain_whitelist` de:class: ~django.core.validators.emailValidator a dhíchur. Úsáid allowlist in ionad whitelist, agus domain_allowlist in ionad domain_whitelist. B'fhéidir go mbeidh ort whitelist a athainmniú sna himirce atá ann cheana.

  • Tá an t-athróg cumraíochta feidhmchláir default_app_config díscothaithe, mar gheall ar an bhfionnachtain AppConfig uathoibríoch anois. Féach:ref: whats-new-3.2 le haghaidh tuilleadh sonraí.

  • Tá glaoch go huathoibríoch ar repr () ``ar shraith fiosrúcháin i ``TransactionTestCase.AssertQuerySetEqual ()`, i gcomparáid le luachanna teaghrán, a dhíchur. Má theastaíonn an t-iompar roimhe seo uait, socraigh go sainráite transform go repr.

  • Tá an cúltaca django.core.cache.backends.memcached.memcachedcache díluaite mar tá roinnt fadhbanna ag python-memcached agus is cosúil nach bhfuil sé cothabháilte. Úsáid django.core.cache.backends.memcached.pymemcacheCachedjango.core.cache.backends.memcached.pylibmccache ina ionad.

  • Tá formáid na dteachtaireachtaí a úsáideann Django.contrib.messages.storage.cookie.cookie.cookieStorage difriúil ón bhformáid a ghineann leaganacha níos sine de Django. Tá tacaíocht don sean-fhormáid fós go dtí Django 4.1.