Nótaí scaoilte Django 3.0Link to this heading

2 Nollaig, 2019

Fáilte go dtí Django 3.0!

Clúdaíonn na nótaí scaoilte seo na:ref: gnéithe nua <whats-new-3.0>, chomh maith le roinnt: ref: athruithe neamh-chomhoiriúnacha ar chúl<backwards-incompatible-3.0> a mbeidh tú ag iarraidh a bheith ar an eolas fúthu agus tú ag uasghrádú ó Django 2.2 nó níos luaithe. <deprecated-features-3.0>Chuireamar: Ref: thit roinnt <removed-features-3.0>gnéithe `a bhfuil deireadh a dtimthriall díghníomhaíochta bainte amach acu, agus chuireamaire:ref: `thosaigh muid ar an bpróiseas díghníomhaíochta 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 3.0 le Python 3.6, 3.7, 3.8, agus 3.9 (amhail 3.0.11). Molaimid** go hard** agus ní thacaímid go hoifigiúil ach leis an scaoileadh is déanaí de gach sraith.

Is é an tsraith Django 2.2.x an ceann deireanach a thacaíonn le Python 3.5.

Tacaíocht leabharlainne tríú páirtí le haghaidh leagan níos sine de DLink to this heading

Tar éis Django 3.0 a scaoileadh, molaimid go scaoilfidh údair aip tríú páirtí tacaíocht do gach leagan de Django roimh 2.2. Ag an am sin, ba cheart go mbeadh tú in ann tástálacha do phacáiste a reáchtáil ag baint úsáide as python -Wd` ionas go mbeidh rabhaidh dífhabhtaithe le feiceáil. Tar éis duit na socruithe rabhaidh díghrádaithe a dhéanamh, ba chóir go mbeadh d'aip comhoiriúnach le Django 3.0.

Cad atá nua i Django 3.0Link to this heading

Tacaíocht MariaDBLink to this heading

Tacaíonn Django anois go hoifigiúil le Mariadb 10.1 agus níos air< https://mariadb.org/> de. <mariadb-notes>Féach:ref: `Nótaí MariaDB `le haghaidh tuilleadh sonraí.

Tacaíocht ASGILink to this heading

Cuireann Django 3.0 tús lenár dturas chun Django a dhéanamh go hiomlán in ann sioncronaithe a dhéanamh trí thacaíocht a sholáthar chun feidhmiú mar fheidhmchlár ASGI.

Tá sé seo i dteannta lenár dtacaíocht WSGI atá ann cheana. Tá sé i gceist ag Django tacú leis an dá cheann don todhchaí atá le teacht. Ní bheidh gnéithe async ar fáil ach d'iarratais a ritheann faoi ASGI, áfach.

Ag an gcéim seo ní bhaineann tacaíocht async ach leis an bhfeidhmchlár ASGI seachtrach. Go hinmheánach fanann gach rud sioncrónach. Ní thacaítear le meánghearraí asincrónacha, tuairimí, srl. Is féidir leat, áfach, middleware ASGI a úsáid timpeall feidhmchlár Django, rud a ligeann duit Django a chomhcheangal le creataí ASGI eile.

Ní gá d'iarratais a aistriú mura dteastaíonn uait tosú ag triail a dhéanamh le cód asincrónach, ach tá: doc: doiciméadú againn maidir le húsáid le ASGI más mian leat níos mó </howto/deployment/asgi/index> a fhoghlaim.

Tabhair faoi deara, mar fho-éifeacht den athrú seo, go bhfuil Django ar an eolas anois faoi lúba imeachtaí asincrónacha agus go gcuirfidh sé bac ort cód glaonna atá marcáilte mar “neamhshábháilte async” - mar oibríochtaí ORM - ó chomhthéacs asincrónach. Má bhí tú ag úsáid Django ó chód async roimhe seo, d'fhéadfadh sé seo a spreagadh má bhí tú ag déanamh é go mícheart. Má fheiceann tú earráid ``SynchronousOnlyOperation`, ansin déan scrúdú go dlúth ar do chód agus bog aon oibríochtaí bunachar sonraí chun a bheith i snáithe leanbh sioncrónach.

Srianta eisiaimh ar PostgreSQLLink to this heading

Cumasaíonn an rang nua:class: ~django.contrib.postgres.Constraints.ExclusionConstraint srianta eisiaimh a chur ar PostgreSQL. <django.db.models.Options.constraints>Cuirtear srianta le samhlacha ag baint úsáide as an rogha: attr: `Meta.Constraints `.

Nathanna scagaireLink to this heading

Is féidir abairtí a aschuir:class: ~django.db.models.booleanfield a úsáid go díreach anois i scagairí ``QuerySet ``, gan anótáil a dhéanamh ar dtús agus ansin scagadh i gcoinne an anótála.

Liomhanna le haghaidh roghanna réimse samhailLink to this heading

Tá cineálacha áireamh saincheaptha TextRoices, IntegerChoices`, agus Roghnaithe ar fáil anois mar bhealach chun: attr: .field.choices a shainiú. Soláthraítear cineálacha TextChoices agus IntegerChoices do réimsí téacs agus sláimhir. Ligeann an rang Roghna áireamh comhoiriúnach a shainiú do chineálacha sonraí nithiúla eile. Tacaíonn na cineálacha áireamh saincheaptha seo le lipéid inléite don duine ar féidir iad a aistriú agus rochtain a fháil orthu trí mhaoin ar an áireamh nó ar a chomhaltaí. Féach: Tagairt: `Cineálacha áireamh <field-choices-enum-types>`le haghaidh tuilleadh sonraí agus samplaí.

MionghnéitheLink to this heading

django.contrib.adminLink to this heading

  • Cuireadh tacaíocht leis an tréith admin_order_field ar airíonna in:attr: .modeladmin.list_display.

  • Ligeann an modh nua:meth: `ModelAdmin.get_inlines () <django.contrib.admin.ModelAdmin.get_inlines>`na línte a shonrú bunaithe ar an iarratas nó an tsamhail.

  • Déantar leabharlann Select2 a uasghrádú ó leagan 4.0.3 go 4.0.7.

  • tá jQuery uasghrádaithe ó leagan 3.3.1 go 3.4.1.

django.contrib.authLink to this heading

  • Ligeann an tréith nua reset_url_token in:class: ~django.contrib.auth.views.passwordResetConfirmView paraiméadar comhartha a thaispeántar mar chomhpháirt d'URLanna athshocraithe pasfhocal a shonrú.

  • Cuireadh leis: Class: ~django.contrib.auth.backends.baseBackend rang chun saincheapadh cúltaca fíordheimhnithe a éascú.

  • Cuireadh leis: Meth: ~django.contrib.auth.models.user.get_USER_PERMISSIONS () `modh chun an modh atá ann: meth: `~django.contrib.auth.models.user.get_Group_Permissions () a scáthú.

  • Cuireadh tréith HTML autocomplete le giuirléidí réimsí ainm úsáideora, ríomhphoist agus pasfhocal in:mod: django.contrib.auth.forms le haghaidh idirghníomhaíochta níos fearr le bainisteoirí pasfhocal brabhsálaí.

  • createsuperuser now falls back to environment variables for password and required fields, when a corresponding command line argument isn't provided in non-interactive mode.

  • REQUIRED_FIELDS now supports ManyToManyFields.

  • Tugann an modh nua:meth: .userManager.with_perm ar ais úsáideoirí a bhfuil an cead sonraithe acu.

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

django.contrib.gisLink to this heading

  • Ceadaíodh feidhmeanna cuardaigh spásúla MySQL oibriú ar ghéiméadracha fíor. Bhí tacaíocht roimhe seo teoranta do bhosca teorainneacha.

  • Cuireadh an fheidhm: class: ~django.contrib.gis.db.models.functions.geometryDistance leis, le tacaíocht ar PostGIS.

  • Tacaíocht bhreise don aonad furlong in:class: ~django.contrib.gis.Measure.distance.

  • Tacaíonn an socrú: SETTING: GEOIP_PATH anois:class: Pathlib.path.

  • Glacann an rang:class: ~django.contrib.gis.geoip2.geoip2 anois:class: Pathlib.path pathlib.path` ``path.

django.contrib.postgresLink to this heading

  • Cuidíonn an nua:class: ~django.contrib.postgres.fields.rangeOperators le clóscríobh in oibreoirí SQL a sheachaint ar féidir a úsáid le chéile le:class: ~django.contrib.postgres.fields.rangefield.

  • Léiríonn an léiriú nua:class: ~django.contrib.postgres.fields.rangeBoundary teorainneacha na raon.

  • Ceadaíonn na ranganna nua:class: ~django.contrib.postgres.operations.addIndexConcurrently agus:class: ~django.contrib.postgres.operations.removeIndexConcurrently innéacsanna CONCURRENTLY a chruthú agus a scaoileadh ar PostgreSQL.

django.contrib.sessionsLink to this heading

  • Ligeann an modh nua:meth: `~django.contrib.sessions.backends.base.sessionbase.get_session_cookie_age () `aois an fianán seisiúin a shonrú go dinimiciúil.

django.contrib.syndicationLink to this heading

  • Chuir an tréith aicme ``teanga ``leis an:class: django.contrib.syndication.views.feed chun teanga beatha a shaincheapadh. Is é an luach réamhshocraithe:func: ~django.utils.translation.get_language () `in ionad:setting: `LANGUAGE_CODE.

CacheLink to this heading

Stóráil ComhadLink to this heading

  • Ligeann an modh nua:meth: .storage.get_alternative_name an algartam a shaincheapadh chun ainmneacha comhaid a ghiniúint má tá comhad leis an ainm uaslódáilte ann cheana féin.

FoirmeachaLink to this heading

  • Féadfaidh Formsets an giuirléid a úsáidtear a rialú agus foirmeacha á ordú trí:attr: ~django.forms.formsets.baseFormSet.can_Order trí:attr: ~django.formsets.baseFormSet.Ordering_Widget tréith nó overriding:attr: `~django.formsets.baseformset.get_ordering_widget) `.

IdirnáisiúnúLink to this heading

  • Cuireadh sean:setting: LANGUAGE_COOKIE_HTTPONLY, :setting: LANGUAGE_COOKIE_SAMESITE, agus:setting: LANGUAGE_COOKIE_SECURE socruithe chun na bratacha HTTPONLY`, SAMESITE`, agus Secure a shocrú ar fhianáin teanga. Coinníonn luachanna réamhshocraithe na socruithe seo an t-iompar roimhe seo.

  • Tacaíocht agus aistriúcháin leis an teanga Úsbéiceach.

LogáilLink to this heading

  • Ligeann paraiméadar nua reporter_class de:class: ~django.utils.log.adminEmailHandler fo-aicme django.views.debug.exceptionReporter a sholáthar chun an téacs rianaithe a sheoltar chuig an suite:setting: ADMINS a shaincheapadh: False.

Orduithe BainistíochtaLink to this heading

  • Ceadaíonn an rogha nua:option: compilemessages --ignore neamhaird a dhéanamh ar eolairí ar leith agus tú ag cuardach comhaid ``.po ``le tiomsú.

  • showmigrations --list now shows the applied datetimes when --verbosity is 2 and above.

  • Ar PostgreSQL, tacaíonn: djadmin: dbshell le deimhnithe TLS ar thaobh an chliaint anois.

  • : djadmin: inspectdb anois introspects:class: ~django.db.models.onetoonefield nuair a bhíonn srian eochair uathúil nó príomhúil ag eochair eachtrach.

  • Sceapann an rogha nua:option: --skip-checks seiceálacha córais a reáchtáil sula ndéantar an t-ordú a reáchtáil.

  • Tacaíonn na roghanna: rogha: startapp --template agus:option: startproject --template le teimpléid atá stóráilte i gcartlann XZ (.tar.xz`, .txz`) agus cartlanna LZMA (.tar.lz`, .tlz`).

SamhlaLink to this heading

  • Feidhmeanna bunachar sonraí hash breise:class: ~django.db.models.functions.md5, :class: ~django.db.models.functions.sha1, :class: ~django.db.models.functions.sha224, :class: ~django.db.models.models.256, :class: ~django.db.models.models.S.SHA384, agus:aicme: ~Django.db.Models.Functions.SHA512.

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

  • Cinneann paraiméadar nua is_dst den fheidhmeanna bunachar sonraí :class: ~django.db.Models.Functions.trunc cóireáil dáta nach bhfuil ann agus débhríoch.

  • Taispeánann connection.queries ráitis ``COPY... TO` anois ar PostgreSQL.

  • FilePathField now accepts a callable for path.

  • Tábla idirmheánach siméadrach ceadaithe le haghaidh féin-tagartha: aicme: ~ Django.db.Models.manyToManyField.

  • Tacaíonn na tréithe name de:class: ~Django.db.Models.CheckConstraint, :class: ~django.db.Models.UniqueConstraint, agus:class: ~django.db.models.index anois le lipéad aip agus idirghabháil ranga ag baint úsáide as % (app_label) s' agus ``% (class) “sealbhóirí áiteanna.

  • <descriptors>Ligeann an tréith nua:attr: .field.descriptor_class réimsí samhail an t-iompar faighte agus socraithe a shaincheapadh trí a gcuid: py:ref: `descriptors `a shárú.

  • Avg and Sum now support the distinct argument.

  • Cuireadh leis: Class: ~Django.db.Models.SmallAutoField a ghníomhaíonn go leor cosúil:class: ~django.db.models.autofield ach amháin nach gceadaíonn sé ach luachanna faoi theorainn áirithe (atá ag brath ar bhunachar sonraí). Tá luachanna ó 1 go 32767` sábháilte i ngach bunachar sonraí a thacaíonn Django.

  • AutoField, BigAutoField, and SmallAutoField now inherit from IntegerField, BigIntegerField and SmallIntegerField respectively. System checks and validators are now also properly inherited.

  • FileField.upload_to now supports pathlib.Path.

  • CheckConstraint is now supported on MySQL 8.0.16+.

  • Ceadaíonn an modh nua allows_group_by_selected_pks_on_model () ```django.db.backends.base.baseDatabaseFeatures barrfheabhsú clásail GROUP BY nach dteastaíonn ach príomheochracha na samhlacha roghnaithe. De réir réamhshocraithe, ní thacaítear leis ach do mhúnlaí bainistithe ar PostgreSQL.

    Chun an barrfheabhsú eochair príomhúil GROUP BY a chumasú do mhúnlaí neamhbhainistithe, caithfidh tú inneall bunachar sonraí PostgreSQL a fho-aicmiú, ag cur an modh aicme `allows_group_by_selected_pks_on_model () ``mar is gá duit. <subclassing-database-backends>Féach: tagairt: `Fo-aicmiú na gcúltaca bunachar sonraí ionsuite `mar shampla.

Iarrataí agus FreagraíLink to this heading

  • Ceadaíodh: aicme: ~django.http.httpResponse a thionscnamh le hábhar: class: memoryview.

  • Le húsáid i, mar shampla, teimpléid Django, ceadaíonn: attr: .httpRequest.headers cuardach anois ag baint úsáide as béim (m.sh. user_agent) in ionad idirlíochtaí.

SlándáilLink to this heading

  • X_FRAME_OPTIONS now defaults to 'DENY'. In older versions, the X_FRAME_OPTIONS setting defaults to 'SAMEORIGIN'. If your site uses frames of itself, you will need to explicitly set X_FRAME_OPTIONS = 'SAMEORIGIN' for them to continue working.

  • SECURE_CONTENT_TYPE_NOSNIFF now defaults to True. With this enabled, SecurityMiddleware sets the Roghanna Cineál-Ábhar X-: nosniff header on all responses that do not already have it.

  • <referrer-policy>:class: ~django.middleware.security.securityMiddleware is féidir leis an gceannteideal: ref: `Referrer-Policy `a sheoladh anois.

TástálachaLink to this heading

  • Ceadaíonn an t-argóint nua tástála:class: ~django.test.client raise_request_exception rialú cibé an chóir eisceachtaí a ardaíodh le linn an iarratais a ardú sa tástáil freisin. Tá an luach réamhshocraithe go True le haghaidh comhoiriúnacht ar ais. Más “False” é agus má tharlaíonn eisceacht, cuirfidh an cliant tástála freagra 500 ar ais leis an tréith: attr: ~django.test.response.exc_info, tuple a sholáthraíonn faisnéis faoin eisceacht a tharla.

  • Is féidir tástálacha agus cásanna tástála atá le reáchtáil a roghnú de réir patrún ainm tástála ag baint úsáide as an rogha nua: rogha: test -k.

  • Déileálann comparáid HTML, mar a úsáideann: meth: ~django.test.simpletestCase.assertMMleQual anois téacs, tagairtí carachtair, agus tagairtí eintiteas a thagraíonn don charachtar céanna mar choibhéis.

  • DiscoverRunner can now spawn a debugger at each error or failure using the test --pdb option.

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

``Model.save () ``nuair a sholáthraíonn sé réamhshocraithe don phríomh-eochairLink to this heading

Model.save() no longer attempts to find a row when saving a new Model instance and a default value for the primary key is provided, and always performs a single INSERT query. In older Django versions, Model.save() performed either an INSERT or an UPDATE based on whether or not the row exists.

<ref-models-force-insert>Déanann sé seo glaoch ar Model.save () ``agus eochairluach réamhshocraithe a sholáthraítear comhionann le passing:ref: `force_insert=True `go `save () an tsamhail. Beidh “IntegrityError” mar thoradh ar iarrachtaí sampla nua ``Samhail ``a úsáid chun an tsraith atá ann cheana a nuashonrú.

D'fhonn samhail atá ann cheana a nuashonrú le haghaidh príomhluach sonrach, bain úsáid as an modh: meth: ~django.db.models.query.queryset.update_or_create nó ``QuerySet.Filter (pk=...) .update (...) `ina ionad. Mar shampla:

Python console
>>> MyModel.objects.update_or_create(pk=existing_pk, defaults={"name": "new name"})
>>> MyModel.objects.filter(pk=existing_pk).update(name="new name")

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

  • Is é an dara argóint de DatabaseIntrospection.get_geometry_type () anois an cur síos sraithe in ionad ainm an cholúin.

  • DatabaseIntrospection.get_field_type () ní fhéadfaidh tuples a thabhairt ar ais a thuilleadh.

  • Más féidir leis an mbunachar sonraí eochracha eachtracha a chruthú sa ráiteas SQL céanna a chuireann réimse leis, cuir schemaEditor.sql_create_column_inline_fk leis an SQL cuí; ar shlí eile, socraigh databaseFeatures.can_create_inline_fk = False.

  • Athainmnítear databaseFeatures.can_Return_id_from_insert agus can_return_ids_from_bulk_insert go can_return_columns_from_insert agus can_return_rows_from_bulk_insert.

  • Láimhseálann feidhmeanna bunachar sonraí anois formáidí: class: datetime.timezone nuair a chruthaítear ag baint úsáide as cásanna: class: datetime.timedelta (m.sh. timezone (timedelta (hours=5)) `, a d'aschur UTC+ 05:00 '`). Ba chóir go ndéanfadh cúltaca tríú páirtí an fhormáid seo a láimhseáil agus iad ag ullmhú: class: `~django.db.models.DateTimeField` i ``datetime_cast_date_sql () ``, `datetime_extract_sql (), srl.

  • Cuirtear iontrálacha le haghaidh AutoField, BigAutoField, agus SmallAutoField le DatabaseOperations.integer_field_ranges chun tacú leis na bailíochtaithe raon slánuimhreacha ar na cineálacha réimse seo. Seans go mbeidh ar innill tríú páirtí na hiontrálacha réamhshocraithe a shaincheapadh.

  • Cuirtear fetch_returned_insert_column () ``in ionad `databaseOperations.fetch_returned_insert_id () a thugann liosta luachanna ar ais ag an ráiteas INSERT... RETURNING, in ionad luach amháin.

  • Cuirtear return_insert_columns() in ionad DatabaseOperations.return_insert_id() a ghlacann le hargóint réimsí, ar féidir é a chur ar ais aríst réimsí tar éis é a chur isteach. De ghnáth, níl anseo ach an eochair bhunscoile uathghinte.

django.contrib.adminLink to this heading

  • Is fearr le teachtaireachtaí athraithe stair samhail Riaracháin lipéid réimse níos inléite anois seachas ainmneacha réimse.

django.contrib.gisLink to this heading

  • Baintear tacaíocht do PostGIS 2.1.

  • Baintear tacaíocht do SpatiaLite 4.1 agus 4.2.

  • Baintear tacaíocht do GDAL 1.11 agus GEOS 3.4.

Tacaíocht titim do PostgreSQL 9.4Link to this heading

Críochnaíonn tacaíocht suas srutha do PostgreSQL 9.4 i mí na Nollag 2019. Tacaíonn Django 3.0 le PostgreSQL 9.5 agus níos airde.

Tacaíocht titim do Oracle 12.1Link to this heading

Críochnaíonn tacaíocht suas srutha do Oracle 12.1 i mí Iúil 2021. Tacófar le Django 2.2 go dtí Aibreán 2022. Tacaíonn Django 3.0 go hoifigiúil le Oracle 12.2 agus 18c.

API comhoiriúnachta príobháideacha Python 2Link to this heading

Cé gur baineadh tacaíocht Python 2 i Django 2.0, níor baineadh roinnt APIs príobháideacha ó Django ionas go bhféadfadh aipeanna tríú páirtí leanúint ar aghaidh ag úsáid iad go dtí deireadh saoil Python 2.

Ós rud é go bhfuilimid ag súil go laghdóidh apps comhoiriúnacht Python 2 agus tacaíocht á cur le Django 3.0, táimid ag baint na APIs seo faoi láthair.

  • ``django.test.utils.str_prefix () ``- Níl réamhfhoirmeacha 'u' ag teaghráin i Python 3.

  • ``django.test.utils.patch_logger () ``- Úsáid: Meth: UnitTest.TestCase.AssertLogs ina ionad.

  • ``django.utils.lru_cache.lru_cache () ``- Alias de:func: functools.lru_cache.

  • django.utils.decorators.available_attrs () ``- Tugann an fheidhm seo ``Functools.wrapper_assignments.

  • Django.Utils.Decorators.ContextDecorator - Alias de:aicme: ContextLib.ContextDecorator.

  • ``django.utils. _os.abspathu () ``- Ainm aith:func: os.path.abspath.

  • django.utils. _os.upath () ``agus ``npath () - Ní dhéanann na feidhmeanna seo aon rud ar Python 3.

  • django.utils.six - Bain úsáid as an leabharlann seolta seo nó aistrigh chu:pypi: six.

  • django.utils.encoding.python_2_unicode_compatible () ``- Alias de ``six.python_2_unicode_compatible ().

  • ``django.utils.functional.curry () ``- Úsáid: Func: functools.partial nó:class: functools.partialmethod. Féach: commit: 5b1c389603a353625ae1603ba345147356336afb.

  • Django.Utils.SafeString.SafeBytes - Gan úsáid ó Django 2.0.

Luach réamhshocraithe nua don socrú FILE_UPLOAD_PERMISSIONSLink to this heading

I leaganacha níos sine, socraíonn an:setting: FILE_UPLOAD_PERMISSIONS réamhshocraithe go None. Leis an réamhshocraithe:setting: FILE_UPLOAD_HANDLERS, mar thoradh air seo tá ceadanna difriúla ag comhaid uaslódáilte ag brath ar a méid agus cén láimhseálaí uaslódála a úsáidtear.

FILE_UPLOAD_PERMISSIONS réamhshocraithe anois go 0o644 chun an neamhréireacht seo a sheachaint.

Luachanna réamhshocraithe nua le haghaidh socruithe slLink to this heading

Chun tionscadail Django a dhéanamh níos sláine de réir réamhshocraithe, tá luachanna réamhshocraithe níos sláine ag roinnt socruithe slándála anois:

Féach an Cad atá nua:Ref: `Slándála roinn <whats-new-security-3.0>`thuas le haghaidh tuilleadh sonraí faoi na hathruithe seo.

IlghnéitheachLink to this heading

  • Cineál ábhair. Cuimsíonn __str__ () ````app_label an tsamhail anois chun samhlacha leis an ainm céanna a dhíbhriú in aipeanna éagsúla.

  • Toisc go bhfuil rochtain a fháil ar an teanga sa seisiún seachas sa fhianán, ní chuireann LocalEmiddleware ag lorg teanga an úsáideora sa seisiún a thuilleadh agus: func: django.contrib.auth.logout ní chaomhníonn teanga an tseisiúin a thuilleadh tar éis logáil amach.

  • django.utils.html.escape() now uses html.escape() to escape HTML. This converts ' to &#x27; instead of the previous equivalent decimal code &#39;.

  • <unittest.-k>Oibríonn an rogha django-admin test -k anois mar an rogha: rogha: unittest -k seachas mar aicearra do --keepdb.

  • Baintear tacaíocht do pywatchman <1.2.0.

  • urlencode() now encodes iterable values as they are when doseq=False, rather than iterating them, bringing it into line with the standard library urllib.parse.urlencode() function.

  • Aistríonn scagaire teimpléad intword` anois ``1.0 mar abairt uaineach agus gach luach uimhriúil eile mar iolra. D'fhéadfadh sé seo a bheith mícheart i gcás roinnt teangacha.

  • Déanann luach a shannadh do mhúnla 's:class: ~django.db.models.foreignKey nó:class: ~django.db.models.onetoonefield `_id' tréith an réimse comhfhreagrach anois. Beidh ceist mar thoradh ar rochtain a fháil ar an réimse ina dhiaidh sin.

  • patch_vary_headers() now handles an asterisk '*' according to RFC 7231 Section 7.1.4, i.e. if a list of header field names contains an asterisk, then the Vary header will consist of a single asterisk '*'.

  • Ar MySQL 8.0.16+, cuimsíonn PositiveIntegerField agus PositiveSmallIntegerField srian seiceála anois chun luachanna diúltacha sa bhunachar sonraí a chosc.

  • Cuirtear Alias=None leis an síniú de:meth: .expression.get_group_by_cols.

  • Ní thuilleann RegExPattern, a úsáid:func: ~django.urls.re_path, argóintí eochairfhocal le luachanna ``None ``le cur chuig an amharc do na grúpaí ainmnithe roghnacha atá in easnamh.

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

django.utils.encoding.force_text () ``agus ``smart_text ()Link to this heading

Tá na hainmneacha smart_text () ``agus ``force_text () (ó Django 2.0) de smart_str () ``agus ``force_str () a dhíchur. Déan neamhaird ar an díghabháil seo má thacaíonn do chód le Python 2 toisc go bhfuil iompar smart_str () ``agus ``force_str () difriúil ansin.

IlghnéitheachLink to this heading

  • django.utils.http.urlquote () ``, `urlquote_plus (), urlunquote () `, agus urlunquote_plus () díluchtaithe i bhfabhar na bhfeidhmeanna is ainmneacha iad le haghaidh: :func: urllib.parse.quote, :func: ~urllib.parse.quote, :func: ~urllib.parse.quote .quote_plus`, :func: ~urllib.parse.unquote, agus:func: ~urllib.parse.unquote_plus.

  • django.utils.translation.ugettext () ``, ``ugettext_lazy (), ugettext_noop () `, ungettext (), agus ``ungettext_lazy () ``díluaite i bhfabhar na bhfeidhmeanna gur ainmneacha iad le haghaidh: :func: tils.django.utranslation.gettext, :func: ~django.utils.translation.gettext_lazy, :func: ~django.utils.translation.gettext_noop, :func: ~django.utils.translation.ngettext, agus:func: ~django.utils.translation.nget_textlazy.

  • Chun cruthú seisiúin a theorannú agus dá bhrí sin roinnt straitéisí caching a fhabhrú, stopfaidh: func: django.views.i18n.set_language ag socrú teanga an úsáideora sa seisiún i Django 4.0. Ó Django 2.1, stóráiltear an teanga i gcónaí sa fhianán: setting: LANGUAGE_COOKIE_NAME.

  • django.utils.text.unescape_entity () ``a dhíchur i bhfabhar :func: `html.unescape`. Tabhair faoi deara go ndéanann ``unescape_entity () ``, `html.unescape () measúnú ar teaghráin leisciúil láithreach.

  • Chun mearbhall féideartha maidir le raon feidhme éifeachtach a sheachaint, athainmnítear an fóntais inmheánach príobháideach is_safe_url () ``go `url_has_allowed_host_and_scheme (). Ní thugann sé le tuiscint go ginearálta go bhfuil óstach agus scéim ceadaithe ag URL go bhfuil sé “sábháilte”. Féadfar é a lua go mícheart fós, mar shampla. Déan cinnte go n-úsáidtear freisin: func: ~django.utils.encoding.iri_to_uri ar chomhpháirt cosán URLanna neamhiontaofa.

Gnéithe bainte i 3.0Link to this heading

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

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

  • Baintear an modúl django.db.backends.postgresql_psycopg2.

  • Baintear ``django.shortcuts.render_to_response () ``.

  • Baintear an socrú DEFAULT_CONTENT_TYPE.

  • Baintear ``HttpRequest.xreadLines () ``.

  • Baintear tacaíocht don argóint context de Field.from_DB_VALUE () ``agus ``Expression.convert_VALUE ()`.

  • Baintear an argóint eochairfhocal field_name de QuerySet.early () ``agus ``latest ()`.

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

  • Baintear an fheidhm GIS ForcerHR.

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

  • Baintear na leabharlanna clibeanna teimpléad staticfiles agus admin_static.

  • Baintear ``django.contrib.staticfiles.templatetags.staticfiles.static () ``.