Nótaí scaoilte Django 3.1Link to this heading
4 Lúnasa, 2020
Fáilte go dtí Django 3.1!
Clúdaíonn na nótaí scaoilte seo na:ref: gnéithe nua <whats-new-3.1>, chomh maith le roinnt: ref: athruithe neamh-chomhoiriúnacha ar chúl<backwards-incompatible-3.1> a mbeidh tú ag iarraidh a bheith ar an eolas fúthu agus tú ag uasghrádú ó Django 3.0 nó níos luaithe. <deprecated-features-3.1>Chuireamar: Ref: thit roinnt <removed-features-3.1>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.1 le Python 3.6, 3.7, 3.8, agus 3.9 (amhail 3.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 3.1Link to this heading
Tuairimí asincrónacha agus tacaíocht lár-earraíLink to this heading
Tacaíonn Django anois le cosán iarratais go hiomlán asincrónach, lena n-áirítear:
<async-views>:ref: `Tuairimí asincrónacha `
<async-middleware>:ref: `Meán-earraí asincrónach `
<async-tests>:ref: `Tástálacha asincrónacha agus cliant tástála `
Chun tús a chur le tuairimí async, ní mór duit radharc a dhearbhú ag baint úsáide as async def:
async def my_view(request):
await asyncio.sleep(0.5)
return HttpResponse("Hello, async world!")
Tacaítear le gach gné asincrónach cibé an bhfuil tú ag rith faoi mhodh WSGI nó ASGI. Mar sin féin, beidh pionóis feidhmíochta ann ag baint úsáide as cód async i mód WSGI. Is féidir leat tuilleadh a léamh faoi na sonraí in:doc: /topics/async doiciméadú.
Tá saor ort tuairimí async agus sync, middleware, agus tástálacha a mheascadh an oiread agus is mian leat. Cinnteoidh Django go mbeidh an comhthéacs forghníomhaithe ceart agat i gcónaí. Táimid ag súil go gcoinneoidh formhór na dtionscadail formhór a gcuid tuairimí sioncrónach, agus níl ach cúpla rogha acu ag rith i mód async - ach is é do rogha go hiomlán é.
Ní thacaíonn ORM Django, ciseal taisce, agus píosaí eile cód a dhéanann glaonna líonra fadtéarmach le rochtain async fós. Táimid ag súil go gcuirfear tacaíocht dóibh in eisiúintí atá le teacht. Tá tuairimí async oiriúnach, áfach, má tá a lán glaonna API nó HTTP á dhéanamh agat taobh istigh de do radharc, is féidir leat na glaonna HTTP sin go léir a dhéanamh go dúchasach anois go comhthreomhar chun forghníomhú do radharc a bhrostú go mór.
Ba cheart go mbeadh tacaíocht asincrónach go hiomlán comhoiriúnach ar gcúl agus rinneamar iarracht a chinntiú nach bhfuil aon aischéimniú luais ann do do chód sioncrónach reatha. Níor cheart go mbeadh aon éifeacht shuntasach aige ar aon tionscadail Django atá ann cheana féin.
JSONField do gach cúltaca bunachar sonraí tacaitheLink to this heading
<django.forms.JSONField>Cuimsíonn Django anois:class: .Models.JSONField agus:class: `Forms.JSONField `is féidir a úsáid ar gach cúltaca bunachar sonraí tacaithe. Tacaíonn an dá réimse le húsáid ionchódóirí agus díchódóirí saincheaptha JSON. Tacaíonn an réimse samhail leis an ionspéireacht, :ref: `lookups, agus athraitheann <querying-jsonfield>`a bhí roimhe seo PostgreSQL amháin:
from django.db import models
class ContactInfo(models.Model):
data = models.JSONField()
ContactInfo.objects.create(
data={
"name": "John",
"cities": ["London", "Cambridge"],
"pets": {"dogs": ["Rufus", "Meg"]},
}
)
ContactInfo.objects.filter(
data__name="John",
data__pets__has_key="dogs",
data__cities__contains="London",
).delete()
Má úsáideann do thionscadal django.contrib.postgres.fields.jsonfield, móide an réimse foirme gaolmhara agus athfhoirmithe, ba cheart duit coigeartú chun na réimsí nua a úsáid, agus imirce bunachar sonraí a ghiniúint agus a chur i bhfeidhm. <deprecated-jsonfield>Go dtí seo, fágtar na sean-réimsí agus na claochruithe mar thagairt do na cinn nua agus tá siad: ref: `díscothaithe ó eisiúint seo `.
Socruithe DEFAULT_HASHING_ALGORITHMLink to this heading
Ligeann an suíomh idirthréimhseach nua DEFAULT_HASHING_ALGORITHM an algartam hashing réamhshocraithe le húsáid le haghaidh fianáin a ionchódú, comharthaí athshocraithe pasfhocal ar an suíomh riaracháin, seisiúin úsáideora agus sínithe cruthaithe ar:class: Django.core.signing.signer agus:meth: django.core.signing.dumps.
Cuireadh tacaíocht do SHA-256 i Django 3.1. Má tá cásanna iolracha den tionscadal céanna á uasghrádú agat go Django 3.1, ba cheart duit DEFAULT_HASHING_ALGORITHM a shocrú go sha1'` le linn an aistrithe, d'fhonn comhoiriúnacht a cheadú leis na leaganacha níos sine de Django. Tabhair faoi deara go dteastaíonn Django 3.1.1+ air seo. Nuair a bheidh an t-aistriú go 3.1 críochnaithe is féidir leat stop a chur le `DEFAULT_HASHING_ALGORITHM a shárú.
Tá an socrú seo imithe amhail an eisiúint seo, toisc go mbainfear tacaíocht do chomharthaí, fianáin, seisiúin agus sínithe a úsáideann algartam SHA-1 i Django 4.0.
MionghnéitheLink to this heading
django.contrib.adminLink to this heading
Ceadaíonn an Django.contrib.admin.emptyFieldListFilter` nua le haghaidh: attr: .modelAdmin.list_filter scagadh ar luachanna folmha (teaghráin folamh agus neamhairc) i radharc an liosta athraithe riaracháin.
Tá nasc anois ag scagairí ar an taobh na taobh deise den amharc liosta athraithe riaracháin chun na scagairí go léir a ghlanadh.
Tá barra taobh ag an riarachán anois ar scáileáin níos mó le haghaidh nascleanúint níos éasca. Tá sé cumasaithe de réir réamhshocraithe ach is féidir é a dhíchumasú trí úsáid a bhaint as saincheaptha
adminsiteagus socrú: attr: .adminsite.enable_nav_sidebar goFalse.Teastaíonn rochtain ar an iarratas reatha a rindreáil chun rochtain a fháil ar an mbarra taobh chun soláthairtí ról CSS agus ARIA a shocrú. <TEMPLATES-OPTIONS>Éilíonn sé seo ``'django.template.context_processors.request'` a úsáid sa rogha ``'context_processors'` de:setting: OPTION.
Ar dtús is féidir línte folamh
breisea bhaint anois, ar an mbealach céanna le cinn a chruthaítear go dinimiciúil.Déantar
XregExpa uasghrádú ó leagan 2.0.0 go 3.2.0.tá jQuery uasghrádaithe ó leagan 3.4.1 go 3.5.1.
Déantar leabharlann Select2 a uasghrádú ó leagan 4.0.7 go 4.0.13.
django.contrib.authLink to this heading
Méadaítear an líon athraithe réamhshocraithe don hasher pasfhocal PBKDF2 ó 180,000 go 216,000.
Ligeann an socrú nua:setting: PASSWORD_RESET_TIMEOUT líon na soicind a bhfuil nasc athshocraithe pasfhocal bailí dóibh a shainiú. Spreagtar é seo in ionad an socrú
PASSWORD_RESET_TIMEOUT_DAYSatá díluaite, a bhainfear i Django 4.0.Úsáideann an meicníocht athshocraithe pasfhocal an algartam hashing SHA-256 anois. Fanann tacaíocht do chomharthaí a úsáideann an sean-algartam hashing go dtí Django 4.0.
AbstractBaseUser.get_session_auth_hash()now uses the SHA-256 hashing algorithm. Support for user sessions that use the old hashing algorithm remains until Django 4.0.
django.contrib.contenttypesLink to this heading
Ceadaíonn an rogha nua:option: remove_stale_contenttypes --include-stale-apps cineálacha ábhar seasta a bhaint as aipeanna atá suiteáilte roimhe seo a baineadh ó:setting: INSTALLED_APPS.
django.contrib.gisLink to this heading
relatelookup is now supported on MariaDB.Cuireadh an maoin: attr: .linearring.is_counterclockwise leis.
AsGeoJSONis now supported on Oracle.Cuireadh na feidhmeanna: aicme: ~django.contrib.gis.db.models.functions.aswkb agus:class: ~django.contrib.gis.db.models.functions.aswkt.
Tacaíocht bhreise do PostGIS 3 agus GDAL 3.
django.contrib.humanizeLink to this heading
intwordtemplate filter now supports negative integers.
django.contrib.postgresLink to this heading
Ceadaíonn an rang nua:class: ~django.contrib.postgres.indexes.bloomIndex innéacsanna
blooma chruthú sa bhunachar sonraí. Suiteálann an oibríocht imirce nua:class: ~django.contrib.postgres.operations.bloomextension an síneadhbloomchun tacaíocht a chur leis an innéacs seo.get_FOO_display()now supportsArrayFieldandRangeField.Ceadaíonn na cuardaigh nua:lookup: rangefield.lower_inc, :lookup: rangefield.lower_inf, :lookup: rangefield.upper_inc, agus:lookup: rangefield.upper_inf fiosrúch:class: ~django.contrib.postgres.fields.rangefield cineál ceangailte.
rangefield.contained_bynow supportsSmallAutoField,AutoField,BigAutoField,SmallIntegerField, andDecimalField.SearchQuerynow supports'websearch'search type on PostgreSQL 11+.<django.contrib.postgres.search.SearchQuery>:class: Tacaíonn `searchQuery.value `anois le nathanna fiosrúcháin.
Ceadaíonn an rang nua:class: ~django.contrib.postgres.search.searchHeadline aird a tharraingt ar thorthaí cuardaigh.
searchlookup now supports query expressions.Ceadaíonn paraiméadar nua
cover_densityde:class: ~django.contrib.postgres.search.searchRank rangú de réir dlús clúdaigh.Ceadaíonn an paraiméadar nua
normalizationde:class: ~django.contrib.postgres.search.searchRank normalú céim.Ceadaíonn an tréith nua:attr: .ExclusionConstraint.deferrable srianta eisiaimh inathraithe a chruthú.
django.contrib.sessionsLink to this heading
Ceadaíonn an socrú: SETTING: SESSION_COOKIE_SAMESITE anois luach
`None'(teaghrán) a lua go sainráite go seoltar an fianán le gach iarratas ar an láithreán céanna agus tras-láithreán.
django.contrib.staticfilesLink to this heading
Tacaíonn an socrú: SETTING: STATICFILES_DIRS anois:class: Pathlib.path.
CacheLink to this heading
Tacaíonn an modh:func: ~django.views.decorators.cache.cache_control maisitheoir agus:func: ~django.utils.cache.patch_cache_control anois le hainmneacha réimse iolracha sa treoir no-cache` don cheannteideal
Cache-Control, de réir: rfc: 7234 #section -5.2.2.2.delete()now returnsTrueif the key was successfully deleted,Falseotherwise.
CSRFLink to this heading
Ceadaíonn an socrú:SETTING: CSRF_COOKIE_SAMESITE anois luach
``None'(teaghrán) a lua go sainráite go seoltar an fianán le gach iarratas ar an láithreán céanna agus tras-láithreán.
RíomhphostLink to this heading
<topic-email-file-backend>Tacaíonn an socrú: SETTING: EMAIL_FILE_PATH, a úsáideann an: ref: cúltaca ríomhphoist comhad `anois:class: `Pathlib.path.
Tuairisc EarráideLink to this heading
django.views.debug.SafeExceptionReporterFilternow filters sensitive values fromrequest.METAin exception reports.Ceadaíonn na tréithe nua:attr: .safeExceptionReporterFilter.Cleansed_Substitute agus:attr: .safeExceptionReporterFilter.Hidden_Settings socruithe íogaire a shaincheapadh agus scagadh
request.metai dtuarascálacha eisceachta.Féachann an dearcadh dífhabhtaithe 404 teicniúil anois:setting: DEFAULT_EXCEPTION_REPORTER_FILTER agus scagadh socruithe á chur i bhfeidhm.
Ceadaíonn an nua:setting: DEFAULT_EXCEPTION_REPORTER fo-aicme a: class: Django.views.debug.exceptionReporter a sholáthar chun giniúint tuarascála eisceachta a shaincheapadh. Féach: Ref: `custom-earror-reports `le haghaidh sonraí.
Stóráil ComhadLink to this heading
Tacaíonn modh ``FilesystemStorage.save () ``anois:class: Pathlib.path.
FileFieldandImageFieldnow accept a callable forstorage. This allows you to modify the used storage at runtime, selecting different storages for different environments, for example.
FoirmeachaLink to this heading
ModelChoiceIterator, used byModelChoiceFieldandModelMultipleChoiceField, now usesModelChoiceIteratorValuethat can be used by widgets to access model instances. See Roghanna caidrimh athraitheacha for details.django.forms.DateTimeFieldnow accepts dates in a subset of ISO 8601 datetime formats, including optional timezone, e.g.2019-10-10T06:47,2019-10-10T06:47:23+04:00, or2019-10-10T06:47:23Z. The timezone will always be retained if provided, with timezone-aware datetimes being returned even whenUSE_TZisFalse.Ina theannta sin, úsáideann
DATETIMEFIELDanoisDATE_INPUT_FORMATSchomh maith leDATETIME_INPUT_FORMATSagus ionchur réimse á thiontú go luach datetime`.MultiWidget.widgetsnow accepts a dictionary which allows customizing subwidgetnameattributes.Is féidir an maoin nua:attr: .boundfield.widget_type a úsáid chun rindreáil foirme a choigeartú go dinimiciúil bunaithe ar an gcineál giuirléid.
IdirnáisiúnúLink to this heading
Ceadaíonn an socrú:SETTING: LANGUAGE_COOKIE_SAMESITE anois luach
`None'(teaghrán) a lua go sainráite go seoltar an fianán le gach iarratas ar an láithreán céanna agus tras-láithreán.Cuireadh tacaíocht agus aistriúcháin leis na teangacha Araibis na hAilgéire, Igbo, Círgeise, Táidsicí, agus na Tuircméine.
Orduithe BainistíochtaLink to this heading
Ligeann an rogha nua:option: check --database ainmneacha bunachar sonraí a shonrú chun na seiceálacha córais ``bunachar sonraí ``a reáchtáil. Roimhe seo cuireadh na seiceálacha seo ar chumas do gach cumraí:setting: DATABASES tríd an gclib ``bunachar sonraí ``a chur chuig an ordú.
Déanann an rogha nua:option: migration --check imeacht an t-ordú imeacht le stádas neamh-nialasach nuair a bhraitear imirce neamhfheidhmeacha.
Ligeann an argóint nua
returncodele haghaidh: attr: ~django.core.management.commandError an stádas imeachta d'orduithe bainistíochta a shaincheapadh.Ligeann an rogha nua:option: `dbshell -- ARGUMENTS <dbshell -->`argóintí breise a chur chuig an gcliant líne ordaithe don bhunachar sonraí.
Cuimsíonn na horduithe: Djadmin: flush agus:djadmin: sqlflush SQL anois chun seicheamh a athshocrú ar SQLite.
SamhlaLink to this heading
Baineann an fheidhm nua:class: ~django.db.models.functions.extractisoWeekday laethanta seachtaine ISO-8601 ó:class: ~django.db.models.dateField agus:class: ~Django.db.Models.DateTimeField, agus ceadaíonn an nua:lookup: iso_week_day fiosrú ag ISO-8601 lá den tseachtain.
QuerySet.explain()now supports:Formáid
TREEar MySQL 8.0.16+,Rogha ``anailíse` ar MySQL 8.0.18+ agus MariaDB.
Cuireadh leis: Class: ~Django.db.Models.PositiveBigIntegerField a fheidhmíonn cosúil le a:class: ~Django.db.Models.PositiveIntegerField ach amháin nach gceadaíonn sé ach luachanna faoi theorainn áirithe (atá ag brath ar bhunachar sonraí). Tá luachanna ó 0` go 9223372036854775807` sábháilte i ngach bunachar sonraí a thacaíonn Django.
Déanann an rogha nua:class: ~django.db.models.restrict le haghaidh: attr: ~django.db.models.foreignKey.on_delete argóint
ForeignKeyagus OneTooneField` aithris ar iompar an srianta SQLON DELETE RESTRICT.Tacaíonn
CheckConstraint.Checkanois le nathanna boolean.Glacann na modhanna: Meth: .RelatedManager.add, :meth: ~.relatedManager.create, agus:meth: ~.relatedManager.set anois le glaonna mar luachanna san argóint through_defaults`.
Cinneann paraiméadar nua
is_dstden: meth: .queryset.DateTimes cóireáil dáta nach bhfuil ann agus débhríoch.<using-f-expressions-in-filters>Ceadaíonn an modh nua:class: ~django.db.Models.f abairt
bitxor () `: ref: oibríocht XOR bitwise.: meth: .queryset.bulk_create socraíonn anois an príomh-eochair ar rudaí agus MariaDB 10.5+ á úsáid agat.
Gineann an modh
DatabaseOperations.sql_Flush ()SQL níos éifeachtaí anois ar MySQL trí DELETE` a úsáid in ionad ráitisTRUNCATEle haghaidh táblaí nach dteastaíonn seicheamh athshocraithe uathshocraithe uathu.SQLite functions are now marked as
deterministicon Python 3.8+. This allows using them in check constraints and partial indexes.Ceadaíonn an tréith nua:attr: .UniqueConstraint.Deferrable srianta uathúla inathraithe a chruthú.
LeathanaighLink to this heading
Paginatorcan now be iterated over to yield its pages.
Iarrataí agus FreagraíLink to this heading
Má tá: SETTING: ALLOWED_HOSTS folamh agus
debug=true, ceadaítear fo-fhearann localhost anois sa cheannteidealHost, m.sh. static.localhost`.HttpResponse.set_cookie()andHttpResponse.set_signed_cookie()now allow usingsamesite='None'(string) to explicitly state that the cookie is sent with all same-site and cross-site requests.Tugann an modh nua:meth: .httpRequest.Accepts ar ais cibé an nglacann an t-iarratas leis an gcineál MIME tugtha de réir an cheannteideal HTTP
Accept.
SlándáilLink to this heading
Tá an socrú: SETTING: SECURE_REFERRER_POLICY réamhshocraithe anois go
`'same-origin'. Agus é seo cumraithe, socraíonn :class: ~django.middleware.securityMiddleware an ceannteideal: ref: referrer-policy gosame-originar gach freagra nach bhfuil sé ann cheana féin. Cuireann sé seo cosc ar an gceannteidealReferera sheoladh chuig bunús eile. Má theastaíonn an t-iompar roimhe seo uait, socraigh go sainráite:setting: SECURE_REFERRER_POLICY goNone.Athraítear an algartam réamhshocraithe de:class: django.core.signing.signer, :meth: django.core.signing.loads, agus:meth: django.core.signing.dumps go an SHA-256. Fanann tacaíocht do shínithe a rinneadh leis an sean-algartam SHA-1 go dtí Django 4.0.
Chomh maith leis sin, ceadaíonn paraiméadar nua ``algorithm ``den: class: ~django.core.signing.signer an algartam hashing a shaincheapadh.
TeimpléidLink to this heading
Tugann na clibeanna teimpléad athainmnithe: ttag: translate agus:ttag: blocktranslate isteach le haghaidh idirnáisiúnaithe i gcód teimpléid. Leanann na hainmneacha clibeanna teimpléad níos sine: ttag: trans agus:ttag: blocktrans ag obair, agus coinneofar iad go luath amach anseo.
Glacann an chlib teimpléad: ttag: include anois le hathrinneacha ainmneacha teimpléad.
TástálachaLink to this heading
SimpleTestCasenow implements thedebug()method to allow running a test without collecting the result and catching exceptions. This can be used to support running tests under a debugger.Ligeann an socrú bunachar sonraí tástála nua:setting: `MIG <TEST_MIGRATE>RATE `imirce a dhíchumasú le linn cruthú bunachar sonraí tástála.
DiscoverRunnercan now discard output for passing tests using thetest --bufferoption.<testing-multi-db>:class: ~django.test.runner.DiscoverRunner scipeann anois seiceálacha an chórais a reáchtáil ar bhunachair sonraí not:ref: `tagraítear le tástálacha `.
TransactionTestCaseteardown is now faster on MySQL due toflushcommand improvements. As a side effect the latter doesn't automatically reset sequences on teardown anymore. EnableTransactionTestCase.reset_sequencesif your tests require this feature.
URLannaLink to this heading
Path converters can now raise
ValueErrorinto_url()to indicate no match when reversing URLs.
FóntaisLink to this heading
filepath_to_uri()now supportspathlib.Path.parse_duration()now supports comma separators for decimal fractions in the ISO 8601 format.parse_datetime(),parse_duration(), andparse_time()now support comma separators for milliseconds.
IlghnéitheachLink to this heading
Tacaíonn an cúltaca SQLite anois:class: Pathlib.path don socrú
NAME.Úsáideann an settings.py` a ghineann an t-ordú:djadmin: startproject anois:class: pathlib.path in ionad:mod: os.path chun cosáin chórais comhaid a thógáil.
Ceadaítear an socrú: SETTING: `TIME_ZONE <DATABASE-TIME_ZONE>`anois ar bhunachair sonraí a thacaíonn le criosanna ama.
Athruithe neamh-chomhoiriúnacha ar ais i 3.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í.
DatabaseOperations.fetch_returned_insert_Columns ()teastaíonn argóint breise`returning_paramsanois.<DATABASE-TIME_ZONE>Tá maoin
connection.timezoneanoisUTC'de réir réamhshocraithe, nó an:setting: TIME_ZONE `nuai:setting: `USE_TZTruear bhunachair sonraí a thacaíonn le criosanna ama. Roimhe seo, bhí séNonear bhunachair sonraí a thacaíonn le criosanna ama.nasc. Athraítear maoin _nodb_connectiongo dtí an nasc. Modh _nodb_cursor () ``agus filleann bainisteoir comhthéacs anois a thugann cúrsóir agus a dhúnann an cúrsóir agus an nasc go huathoibríoch nuair a fhágann sé an ráiteas ``with.Teastaíonn DatabaseClient.runShell () ``argóint breise ``paraiméadair` anois mar liosta d'argóintí breise le cur ar aghaidh chuig an gcliant líne ordaithe.
Cuirtear an argóint boolean eochairfhocal amháin
reset_sequencesin ionad an argóint seasaimhseicheamhde databaseOperations.sql_flush () `. Má tá “Fíor”, athshocrófar seicheamh na dtáblaí gearrtha.Is argóint eochairfhocal amháin é an argóint allow_cascade` de `databaseOperations.sql_flush () ``anois.
Baintear an argóint seasaimh
úsáidde databaseOperations.execute_SQL_Flush () `. Úsáideann an modh bunachar sonraí an chás ar a dtugtar air anois.Caithfidh cúltaca bunachar sonraí tríú páirtí tacaíocht do JSONField` a chur i bhfeidhm nó
DatabaseFeatures.supports_JSON_Fielda shocrú goFalse. Mura dtacaítear le príomhiontacha a stóráil, socraighDatabaseFeatures.supports_primitives_in_json_fieldgoFalse. Má tá fíor-chineál sonraí ann do JSON, socraighDatabaseFeatures.has_Native_JSON_FieldgoTrue. Más rud é nach dtacaítear le lookup: jsonfield.contains agus:lookup: jsonfield.contained_by, socraighdatabaseFeatures.supports_json_field_containsgoFalse.Caithfidh cúltaca bunachar sonraí tríú páirtí introspection a chur i bhfeidhm do Jsonfield` nó
can_introspect_json_fielda shocrú goFalse.
Tacaíocht titim do MariaDB 10.1Link to this heading
Críochnaíonn tacaíocht suas srutha do MariaDB 10.1 i mí Dheireadh Fómhair 2020. Tacaíonn Django 3.1 le MariaDB 10.2 agus níos airde.
Tacaíocht brabhsálaí contrib.adminLink to this heading
Ní thacaíonn an riarachán le brabhsálaí oidhreachta Internet Explorer a thuilleadh Féach:ref: `an Ceisteanna Coitianta riaracháin <admin-browser-support>`le haghaidh sonraí faoi bhrabhsálaithe tacaithe.
<django.contrib.auth.models.User.first_name>:attr: `Abstractuser.first_name ```max_length ``méadaithe go 150Link to this heading
Tá imirce le haghaidh: attr: django.contrib.auth.models.user.first_name san áireamh. Má tá samhail úsáideora saincheaptha agat ag oidhreacht ó ``AbstractUser`, beidh ort imirce bunachar sonraí a ghiniúint agus a chur i bhfeidhm do do mhúnla úsáideora.
Más mian leat an teorainn 30 carachtar a chaomhnú do chéad ainmneacha, bain úsáid as foirm saincheaptha:
from django import forms
from django.contrib.auth.forms import UserChangeForm
class MyUserChangeForm(UserChangeForm):
first_name = forms.CharField(max_length=30, required=False)
Más mian leat an srian seo a choinneáil sa riarachán agus tú ag eagarthóireacht úsáideoirí, socraigh UserAdmin.form chun an fhoirm seo a úsáid:
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
class MyUserAdmin(UserAdmin):
form = MyUserChangeForm
admin.site.unregister(User)
admin.site.register(User, MyUserAdmin)
IlghnéitheachLink to this heading
Tá na heochracha taisce a úsáideann: ttag: cache agus arna ghineadh ar:func: ~django.core.cache.utils.make_template_fragment_key difriúil ó na heochracha a ghineann leaganacha níos sine de Django. Tar éis uasghrádú a dhéanamh go Django 3.1, is é an chéad iarratas ar aon bhrúin teimpléad a chosáilte roimhe seo ná caillte taisce.
Tá an loighic taobh thiar den chinneadh titim atreoraithe nó freagra 204 HTTP a thabhairt ar ais ón amharc: func: ~django.views.i18n.set_language bunaithe anois ar an gceannteideal HTTP
`Acceptin ionad an X-Requested-With` HTTP láithreacht.Baintear allmhairí comhoiriúnachta
django.core.exceptions.emptyResultSeti django.db.models.query`, django.db.models.sql`, agusdjango.db.models.sql.datastructures.Baintear allmhairiú comhoiriúnachta
Django.Core.Exceptions.FieldDoesNotExistidjango.db.models.fields.Baintear allmhairí comhoiriúnachta
django.forms.utils.pretty_name () ``agus ``django.forms.boundfield.boundfieldi django.forms.forms`.Baintear allmhairí comhoiriúnachta
Context, ContextPopException`, agusRequestContexti django.template.base`.Baintear allmhairiú comhoiriúnachta
django.contrib.admin.helpers.ACTION_CHECKBOX_NAMEidjango.contrib.admin.Tá na socruithe
STATIC_URLagusMEDIA_URLsocraithe chuig cosáin choibhneasta socraithe anois ag an luach arna sholáthar ag an bhfreastalaí deSCRIPT_NAME(nó/mura bhfuil sé socraithe). Níor cheart go gcuirfeadh an t-athrú seo isteach ar shocruithe a shocraítear chuig URLanna bailí nó ar bhealaí iomlána.ConditionalGetMiddlewareno longer adds theETagheader to responses with an emptycontent.django.utils.decorators.classproperty()decorator is made public and moved todjango.utils.functional.classproperty.floatformattemplate filter now outputs (positive)0for negative numbers which round to zero.Meta.orderingandMeta.unique_togetheroptions on models indjango.contribmodules that were formerly tuples are now lists.Láimhseálann an giuirléid féilire riaracháin bliana dhá dhigit anois de réir Sonraíocht an Ghrúpa Oscailte, ie déantar luachanna idir 69 agus 99 a mhapáil leis an gcéad roimhe seo, agus déantar luachanna idir 0 agus 68 a mhapáil leis an gcéad reatha.
Baintear formáidí dáta amháin ón liosta réamhshocraithe le haghaidh: setting: DATETIME_INPUT_FORMATS.
Ní dhéanann an giuirléid: Class: ~django.forms.FileInput leis an tréith HTML
riachtana thuilleadh nuair a bhíonn sonraí tosaigh ann.Baintear an rang
Django.Views.Debug.ExceptionReporterFilterneamhdhoiciméadaithe. De réir na doiciméadaithe: ref: custom-error-reports `, ní mór ranganna atá le húsáid le:setting: `DEFAULT_EXCEPTION_REPORTER_FILTER oidhreacht ó:class: django.views.debug.safeEXCEPtionReporterFilter.Tá tosaíocht anois ag maisitheoir an t-am taisce arna leagan síos ag: func: ~django.views.decorators.cache.cache_page os cionn an treoir
max-ageón gceannteidealCache-Control.Réimse iargúlta neamh-áitiúil a sholáthar san argóint: attr: .foreignKey.to_field anois:class: ~django.core.exceptions.fielderror.
SECURE_REFERRER_POLICYnow defaults to'same-origin'. See the What's New Security section above for more details.: djadmin: Ritheann ordú bainistíochta check seiceálacha an chórais ``bunachar sonraí ``anois ach amháin le haghaidh ainmneacha bunachar sonraí a shonraítear ag baint úsáid:option: check --database rogha.
migratemanagement command now runs thedatabasesystem checks only for a database to migrate.Baintear na ranganna CSS riaracháin
row1agusrow2i bhfabhar bréagaicmí:nth-child (odd) ``agus ``:nth-child (even).Éilíonn an fheidhm:func: ~django.contrib.auth.hashers.make_password anois go mbeadh a argóint ina shreang nó béite. Ba chóir cineálacha eile a chaitheamh go sainráite chuig ceann acu seo.
Baintear an paraiméadar
versionneamhdhoiciméadaithe chuig an bhfeidhm:class: ~django.contrib.gis.db.models.functions.askml.JSON and YAML serializers, used by
dumpdata, now dump all data with Unicode by default. If you need the previous behavior, passensure_ascii=Trueto JSON serializer, orallow_unicode=Falseto YAML serializer.Ní dhéanann an t-uathlódálaí monatóireacht a thuilleadh ar athruithe i gcomhaid aistriúcháin Django ionsuite.
Méadaítear an leagan íosta tacaithe de mysqlclient` ó 1.3.13 go 1.4.0.
Bogtar na
django.contrib.postgres.forms.invalidjsonInputagusDjango.contrib.postgres.forms.jsonStringneamhdhoiciméadaithe chuigdjango.forms.fields.Baintear an rang
Django.contrib.postgres.fields.jsonb.jsonAdapterneamhdhoiciméadaithe.Ní thuilleadh an scagaire: ttag: {% localize off%} agus: <localize>tfilter: unlocalize a thuilleadh: socrú: DECIMAL_SEPARATOR.
Méadaítear an leagan íosta tacaithe de asgiref` ó 3.2 go 3.2.10.
</topics/forms/media> < https://html.spec.whatwg.org/multipage/scripting.html#the-script-element>Déanann rang:doc: Meáin `clibeanna `` anois gan an tréith ``cineál` le moltaí `WHATWG `_ a <script>leanúint.
ModelChoiceIterator, used byModelChoiceFieldandModelMultipleChoiceField, now yields 2-tuple choices containingModelChoiceIteratorValueinstances as the firstvalueelement in each choice. In most cases this proxies transparently, but if you need thefieldvalue itself, use theModelChoiceIteratorValue.valueattribute instead.
Gnéithe atá díscríofa i 3.1Link to this heading
PostgreSQL JsonfieldLink to this heading
<django.forms.JSONField>Tá Django.Contrib.Postgres.Fields.JsonField agus Django.Contrib.Postgres.Forms.JsonField a dhíchur i bhfabhar: .Models.JSONField agus:class: Forms.JSONField.
Tá na django.contrib.postgres.fields.jsonb.keytransform` agus Django.contrib.postgres.fields.jsonb.keytextTransform neamhdhoiciméadaithe i bhfabhar na n-athfhoirmithe i django.db.models.fields.json`.
Is féidir an JSONFields, KeyTransform`, agus KeyTextTransform` nua a úsáid ar gach cúltaca bunachar sonraí tacaithe.
IlghnéitheachLink to this heading
Tá socrú
PASSWORD_RESET_TIMEOUT_DAYSa dhíchur i bhfabhr:setting: PASSWORD_RESET_TIMEOUT.Úsáid neamhdhoiciméadaithe an chuardaigh: lookup: isnull le luachanna neamh-boolean de réir mar a dhéantar an taobh na láimhe deise a dhíchur, bain úsáid as True` nó False` ina ionad sin.
Tá an rang eisceachta
Django.db.Models.Query_Utils.InvalidQuerydoiciméadaithe ar éigean i bhfabhar: ~Django.Core.Exceptions.FieldDoesNotExist agus:class: ~Django.Core.Exceptions.FieldDoesNotExist agus:class: ~Django.Core.Exceptions.Fielderror.Tá an pointe iontrála
django-admin.pya dhíchur i bhfabhar ``django-admin ``.< https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API>Tá an modh HttpRequest.is_ajax () `díluaite toisc go raibh sé ag brath ar bhealach JQuery-shonrach chun glaonna AJAX a léiriú, agus is gnách go n-úsáideann úsáid reatha an JavaScript `Fetch API `_. Ag brath ar do chás úsáide, is féidir leat do mhodh braite AJAX féin a scríobh, nó an modh nua: meth: `.httpRequest.Accepts a úsáid má bhraitheann do chód ar cheannteideal HTTP an chliaint
Accept.Má tá do mhodh braite AJAX féin á scríobh agat, is féidir ``request.is_ajax () a atáirgeadh go díreach mar ``request.headers.get ('x-requested-with') == 'XMLHttpRequest'.
Ag dul
Nonemar an chéad argóint chuig ``django.utils.deprecation.middlewaremixin. Tá __init__ () ``díluaite.Tá formáid ionchódú luachanna fianáin a úsáideann u:class: ~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.0.
Tá formáid ionchódú na seisiúin 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.0.
Tá an argóint doiciméadach amháin
providing_argsle haghaidh: class: ~django.Dispatch.Signal a dhíchur. Má tá tú ag brath ar an argóint seo mar dhoiciméadú, is féidir leat an téacs a bhogadh chuig trácht cód nó docstring.Tá glaoch ar
django.utils.crypto.get_random_string () ``gan argóint ``length, cuirtear díluasc.Tá an teachtaireacht
liostdo:class: ~django.forms.ModelMultipleChoiceField a dhíchur i bhfabharinvalid_list.Tá ainmneacha colún amh a chur chuig: meth: .queryset.ORDER_by atá díluaite. Is féidir an toradh céanna a bhaint amach trí ainmneacha a rith in a:class: ~Django.db.Models.Expressions.RawSql roimh ré.
Tá an réimse samhail
NullBooleanFielda dhíchur i bhfabhar ``BooleanField (Null=True, Blank = True) ``.Tá ``django.conf.urls.url () ``alias o:func: `django.urls.re_path díscothaithe.
<django.template.backends.django.DjangoTemplates><TEMPLATES-OPTIONS>Tá na clibeanna teimpléad
{% ifequal%}agus{% ifnotequal%} `díluaite i bhfabhra:ttag:` {% if%} `<if>. Clúdaíonn{% if%}` gach cás úsáide, ach más gá duit leanúint ar aghaidh ag úsáid na clibeanna seo, is féidir iad a bhaint as Django go modúl agus a áireamh mar chlib ionsuite san :class: builtin' '`rogha in:socrú: `ROGHANNA.Tá socrú idirthréimhseach
DEFAULT_HASHING_ALGORITHMdíchuimsithe.
Gnéithe bainte i 3.1Link to this heading
Tá na gnéithe seo tar éis deireadh a dtimthriall díscrúdaithe bainte amach agus baintear iad i Django 3.1.
Féach: Ref: deprecated-features-2.2 le haghaidh sonraí faoi na hathruithe seo, lena n-áirítear conas úsáid na ngnéithe seo a bhaint.
Baintear
django.utils.timezone.fixeDoffset.Baintear
django.core.paginator.querysetPaginator.Ní dhéanann
Meta.Orderingsamhail difear do cheisteannaGROUP BY.Baintear
Django.Contrib.Postgres.Fields.FloatRangeFieldagusDjango.Contrib.Postgres.Forms.FloatRangeField.Baintear an socrú
FILE_CHARSET.Baintear
Django.contrib.staticfiles.storage.cachedStaticFilesStorage.Éilíonn an modh
RemoteUserBackend.configure_user () ```requestmar an chéad argóint seasaimh.Baintear tacaíocht do SimpletestCase.ALLOW_DATABASE_Queries` agus
TransactionTestCase.Multi_DB.