Nótaí scaoilte Django 1.11Link to this heading
4 Aibreán, 2017
Fáilte go dtí Django 1.11!
Clúdaíonn na nótaí scaoilte seo na:ref: gnéithe nua <whats-new-1.11>, chomh maith le roinnt: ref: athruithe neamh-chomhoiriúnacha ar chúl<backwards-incompatible-1.11> a mbeidh tú ag iarraidh a bheith ar an eolas fúthu agus tú ag uasghrádú ó Django 1.10 nó leaganacha níos sine. <deprecated-features-1.11>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 1.11 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 Beidh deireadh le tacaíocht don LTS roimhe seo, Django 1.8, i mí Aibreáin 2018.
Comhoiriúnacht PythonLink to this heading
Éilíonn Django 1.11 Python 2.7, 3.4, 3.5, 3.6, nó 3.7 (amhail 1.11.17). Molaimid** go hard** agus ní thacaímid go hoifigiúil ach leis an scaoileadh is déanaí de gach sraith.
Is é an tsraith Django 1.11.x an ceann deireanach a thacaíonn le Python 2. Ní thacóidh an chéad eisiúint mhór eile, Django 2.0, ach le Python 3.4+.
Ní bhíonn rabhaidh dhíspreagtha ard a thuilleadh de réir réamhshocLink to this heading
Murab ionann agus leaganacha níos sine de Django, ní thaispeántar rabhaidh diúltaithe Django féin de réir réamhshocraithe a thuilleadh. Tá sé seo ag teacht le hiompar réamhshocraithe Python.
Ligeann an t-athrú seo d'aipeanna tríú páirtí tacú le Django 1.11 LTS agus Django 1.8 LTS araon gan cód a chur leis chun rabhaidh díghrádaithe a sheachaint.
Tar éis Django 2.0 a scaoileadh, molaimid go scaoilfidh údair aip tríú páirtí tacaíocht do gach leagan de Django roimh 1.11. 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 2.0.
Cad atá nua i Django 1.11Link to this heading
Innéacsanna samhail rang-bhunaitheLink to this heading
Tá ranganna sa mhodúl nua:mod: django.db.models.indexes a éascaíonn innéacsanna bunachar sonraí a chruthú. <django.db.models.Options.indexes>Cuirtear innéacsanna le samhlacha ag baint úsáide as an rogha: attr: `Meta.Indexes `.
Cruthaíonn an rang:Class: ~django.db.models.index innéacs b-crann, amhail is dá n-úsáide:attr: ~django.db.models.field.db_index ar an réimse samhail nó index_together ``ar an rang `Meta samhail. Is féidir é a fho-aicmiú chun tacú le cineálacha innéacs éagsúla, mar shampla:class: ~django.contrib.postgres.indexes.ginIndex. Ligeann sé freisin an t-ord (ASC/DESC) a shainiú do cholúin an innéacs.
Rindreáil giuirléid bunaithe ar theimpléadLink to this heading
Chun giuirléidí a shaincheapadh a éascú, déantar rindreáil giuirléid foirme anois ag baint úsáide as an gcóras teimplé Féach: doc: /ref/foirme/renderers.
<template-widget-incompatibilities-1-11>B'fhéidir go mbeidh ort aon ghuirléidí saincheaptha atá scríofa agat a choigeartú le haghaidh cúpla athrú: ref: `athruithe neamh-chomhoiriúnacha ar ais `.
Nathanna SubcheisteLink to this heading
Ceadaíonn na nathanna bunachar sonraí nua:class: ~django.db.models.subquery agus:class: ~django.db.models.exists fo-cheisteanna follasacha a chruthú. Féadfaidh fo-cheisteanna tagairt a dhéanamh do réimsí ón tacar ceisteanna seachtrach ag baint úsáide as an aic:class: ~Django.db.Models.OuterRef.
MionghnéitheLink to this heading
django.contrib.adminLink to this heading
ModelAdmin.date_hierarchycan now reference fields across relations.Ligeann an crúca nua:meth: `ModelAdmin.get_Exclude () <django.contrib.admin.ModelAdmin.get_exclude>`na réimsí eisiata a shonrú bunaithe ar an iarratas nó an tsamhail.
Is féidir an teimpléad
popup_response.htmla shárú anois in aghaidh an aip, in aghaidh an tsamhail, nó tríd an tréith: :attr: .modeladmin.popup_response_template a shocrú.
django.contrib.authLink to this heading
Méadaítear 20% an líon athraithe réamhshocraithe don hasher pasfhocal PBKDF2.
Cuireann tuairimí rang-bhunaithe an:class: ~django.contrib.auth.views.loginView agus:class: ~django.contrib.auth.views.logoutView in ionad na tuairimí bunaithe ar fheidhm ``login () ``agus ``logout () `.
The:Class: ~django.contrib.auth.views.passwordChangeView, :class: ~django.contrib.auth.views.paswordChangeDoneView, :class: ~django.contrib.auth.views.passwordResetView, :class: ~django.contrib.auth.views.wordDresetView , :class: `~django.contrib.auth.views.PasswordResetConfirmView, agus:class: ~django.contrib.auth.views.PasswordResetCompleteView athsholáthraíonn tuairimí aicmbunaithe ar an password_change () `, password_change (), wordpass_reset ()`,
password_reset_done () ``, `password_reset_confirm (), agus ``password_reset_complete () `` tuairimí bunaithe ar fheidhm.Ceadaíonn an tréith nua
post_reset_logind':class: ~django.contrib.auth.views.passwordResetConfirmView logáil isteach go huathoibríoch ar úsáideoir tar éis athshocrú pasfhocal rathúil. Má tá go leorAUTHENTICATION_BACKENDS` cumraithe agat, bain úsáid as an tréith ``post_reset_login_backendchun cén ceann atá le húsáid a roghnú.Chun an fhéidearthacht comhartha athshocraithe pasfhocal a sceitheadh trí cheanntásc HTTP Referer a sheachaint (mar shampla, má chuimsíonn an leathanach athshocraithe tagairt do CSS nó JavaScript arna óstáil ar fhearann eile), stóráilíonn an:class: ~django.contrib.auth.views.PasswordResetConfirmView (ach ní an `password_reset_confirm () `amharc feidhm-bhunaithe) treoraíonn sé féin chun an fhoirm athraithe pasfhocal a chur i láthair don úsáideoir gan an comhartha san URL.
update_session_auth_hash()now rotates the session key to allow a password change to invalidate stolen session cookies.Ceadaíonn an tréith nua
success_url_allowed_hostsd':class: ~django.contrib.auth.views.loginView agus:class: ~django.contrib.auth.views.logoutView sraith óstach atá sábháilte le hathreorú tar éis logáil isteach agus logáil amach a shonrú.Breiseadh bailíochtóirí pasfhocal
help_textchuig:class: ~django.contrib.auth.forms.userCreationForm.Cuirtear an HttpRequest` anois chuig:func: ~django.contrib.auth.autenticate a chuireann chuig an gcúltaca fíordheimhnithe é ina dhiaidh sin má ghlacann sé le argóint
request.Faigheann an comhartha:func: ~django.contrib.auth.signals.user_login_failed argóint
iarratanois.PasswordResetFormsupports custom user models that use an email field named something other than'email'. SetCustomUser.EMAIL_FIELDto the name of the field.get_user_model()can now be called at import time, even in modules that define models.
django.contrib.contenttypesLink to this heading
Nuair a bhraitear cineálacha ábhar seasta san ordú:djadmin: remove_stale_contenttypes, tá liosta de rudaí gaolmhara ann anois mar Auth.Permission`s a scriosfar freisin. Roimhe seo, níor liostaíodh ach na cineálacha ábhair (agus bhí an pras seo tar éis
imirceseachas in ordú ar leithligh).
django.contrib.gisLink to this heading
Ceadaíonn na modhanna nua:meth: .geosgeometry.from_GML agus:meth: .ogrgeometry.from_GML geoiméadraí a chruthú ó GML.
Tacaíocht bhreise don chuardach: lookup: dwithin ar SpatiaLite.
Oibríonn an fheidhm: Class: ~django.contrib.gis.db.models.functions.Area, :class: ~django.contrib.gis.db.models.functions.distance feidhm, agus cuardaigh achair anois le comhordanáidí geodéiseacha ar Spatialite.
Úsáideann na giuirléidí foirmeacha bunaithe ar OpenLayers anois
OpenLayers.js ``óhttps://cdnjs.cloudflare.comatá níos oiriúnaí le húsáid táirgeachta ná an sean-fhoinsehttps://openlayers.org/ ``. Déantar iad a nuashonrú freisin chun OpenLayers 3 a úsáid.Is féidir le himirce PostGIS toisí réimse a athrú anois.
Cuireadh an cumas leis na paraiméadair
size ``, `shape, agusoffseta rith agus rudaí:class: ~django.contrib.gis.gdal.gdalRaster á chruthú.Cuirtear tacaíocht Spatialite leis an bhfeidhm: class: ~django.contrib.gis.db.models.functions.isValid, :class: ~django.contrib.gis.db.models.functions.makeValid feidhm, agus:lookup: isvalid cuardach.
Cuireadh tacaíocht Oracle leis an bhfeidhm: class: ~django.contrib.gis.db.models.functions.asgml, :class: ~django.contrib.gis.db.models.functions.boundingCircle feidhm, :class: ~django.contrib.db.models.functions.isvalid feidhm, agus:lookup: validis.
django.contrib.postgresLink to this heading
Cinneann an argóint nua
distintdo:class: ~django.contrib.postgres.aggregates.stringagg an mbeidh luachanna comhtháite ar leith.Ceadaíonn na ranganna nua:class: ~django.contrib.postgres.indexes.ginIndex agus:class: ~django.contrib.postgres.indexes.brinIndex innéacsanna
GINagus BRIN` a chruthú sa bhunachar sonraí.Glacann
django.contrib.postgres.fields.jsonfieldle paraiméadar nuaencoderchun rang saincheaptha a shonrú chun cineálacha sonraí nach dtacaíonn an t-ionchódóir caighdeánach a ionchódú.Ligeann an t-oibríocht imirce nua
citextagus:class: ~django.contrib.postgres.operations.CiteXtExtension síneadhcitextPostgreSQL a úsáid le haghaidh cuardaigh cás-neamh-íogair. Cuirtear trí réimse ar fáil: Cicharfield`, Ciemailfield`, agusCitextField.Ceadaíonn an nua:class: ~django.contrib.postgres.aggregates.jsonBagg luachanna a chomhiomlánú mar eagar JSON.
Ceadaíonn an: Class: ~django.contrib.postgres.fields.hStorefield (réimse samhail) agus:class: ~django.contrib.postgres.forms.hStorefield (réimse foirme) luachanna null a stóráil.
CacheLink to this heading
Cuireann cúltaca Memcached anois ábhar: socrú: `OPTIONS <CACHES-OPTIONS>`mar argóintí eochairfhocal chuig tógálaí na gcliant, rud a cheadaíonn rialú níos airde ar iompar cliant. Féach an doiciméad:ref: `cache argóintí <cache_arguments>`le haghaidh samplaí.
Ligeann cúltaca Memcached anois freastalaithe iolracha a shainiú mar shreang teoranta le camóg in:socrú: LOCATION <CACHES-LOCATION>, ar mhaithe le seirbhísí tríú páirtí a úsáideann teaghráin den sórt sin in athróga comhshaoil.
CSRFLink to this heading
Cuireadh an socrú: socrú: CSRF_USE_SESSIONS leis chun an comhartha CSRF a stóráil i seisiún an úsáideora seachas i bhfianán.
Cúltaca bunachar sonraíLink to this heading
Cuireadh an argóint skip_locked` leis la:meth: .queryset.select_for_update () `ar PostgreSQL 9.5+ agus Oracle chun ceisteanna a fhorghníomhú le ``FOR UPDATE SKIP LOCKED`.
Cuireadh an socrú: socrú: `TEST ['TEMPLATE'] <TEST_TEMPLATE>`leis chun ligean d'úsáideoirí PostgreSQL teimpléad a shonrú chun an bunachar sonraí tástála a chruthú.
QuerySet.iterator()úsáideann cúrsóirí taobh an fhreastalaí anois ar PostgreSQL. Aistríonn an ghné seo cuid d’ualach cuimhne an oibrí (a úsáidtear chun torthaí fiosrúcháin a choinneáil) chuig an mbunachar sonraí agus d’fhéadfadh sé úsáid chuimhne an bhunachair shonraí a mhéadú.<mysql-isolation-level>Cuireadh tacaíocht MySQL leis an rogha
`isolation_level'in:setting: OPTIONS chun ligean an: ref: `leibhéal aonrú idirbheart `a shonrú. Chun caillteanas sonraí féideartha a sheachaint, moltar aistriú ó leibhéal réamhshocraithe MySQL, inathsheolta, go léamh tiomanta.
RíomhphostLink to this heading
Cuireadh an socrú: leagan: EMAIL_USE_LOCALTIME leis chun ceannteidil dáta SMTP a sheoladh sa chrios ama áitiúil seachas i UTC.
Tagann
emailmessage.attachment () ``agus ``attach_file ()ar ais anois go cineál MIME: mimetype: application/octet-stream nuair a shonraítear ábhar dénártha nach féidir a dhíchódú mar UTF-8 le haghaidh a:mimetype: text/* ceangaltán.
Stóráil ComhadLink to this heading
FoirmeachaLink to this heading
An tréith nua
empty_valuear:class: ~django.forms.charfield, :class: ~django.forms.emailfield, :class: ~django.forms.regexfield, :class: ~django.forms.slugfield, agus:class: ~django.forms.URLField Ligeann ELD` an luach Python le húsáid a shonrú chun “folamh” a léiriú.<django.forms.Form.get_initial_for_field>Tugann an modh nua:meth: `form.get_initial_for_field () `sonraí tosaigh ar ais do réimse foirme.
IdirnáisiúnúLink to this heading
Tacaíonn formáidiú uimhreacha agus an socrú: NUMBER_GROUPING le grúpáil dhigit neamh-aonfhoirmeach.
Orduithe BainistíochtaLink to this heading
Ceadaíonn an rogha nua:option: loaddata --exclude samhlacha agus aipeanna a eisiamh agus sonraí á luchtú ó daingneáin.
Ligeann an rogha nua:option: diffsettings --default modúl socruithe seachas socruithe réamhshocraithe Django a shonrú chun comparáid a dhéanamh ina gcoinne.
Cuireann argóintí app_label` teorainn anois leis an aschur: `showmigrations --plan.
ImirceLink to this heading
SamhlaLink to this heading
<django.db.models.query.QuerySet.update_or_create>Cuireadh tacaíocht le haghaidh luachanna inghlaonta san argóint
defaultsde:meth: queryset.update_or_create () `agus:meth: `~django.db.models.query.queryset.get_or_create.ImageFieldnow has a defaultvalidate_image_file_extensionvalidator. (This validator moved to the form field in Django 1.11.2.)Tacaíocht bhreise le haghaidh gearradh ama chuig feidhmeanna: class: ~Django.db.Models.Functions.trunc.
Chuir an fheidhm: class: ~django.db.models.functions.extractWeek leis chun an tseachtain a bhaint ó:class: ~django.db.models.dateField agus:class: ~django.db.models.DateTimeField agus nochtaigh sé tríd an cuardach: seachtain.
Chuir an fheidhme:class: ~django.db.models.functions.truncTime leis an bhfeidhm chuig truncate:class: ~Django.db.Models.DateTimeField lena chomhpháirt ama agus nochtaigh sé tríd an cuardach: lookup: time.
Tacaíocht bhreise le haghaidh abairtí in:meth: .queryset.values agus:meth: ~.queryset.values_list.
Tacaíocht bhreise le haghaidh abairtí fiosrúcháin ar chuardaigh a thógann go leor argóintí, mar shampla raon `.
Is féidir leat an rogha
Unique=Truea úsáid anois le:class: ~django.db.models.filefield.<django.db.models.Expression.asc>Cuireadh na paraiméadair
nulls_firstagusnulls_lastchuig: class: Expression.asc () `agus:meth: `~django.db.Models.Expression.desc chun ordú luachanna null a rialú.<using-f-expressions-in-filters>Ceadaíonn an abairt nua
Fbitleftshift () ``agus ``bitrightshift ()modhanna: ref: `oibríochtaí aistrithe bitwise `.Cuireadh leis: Meth: .QuerySet.Union, :meth: ~.QuerySet.Intersection, agus:meth: ~.querySet.Difference.
Iarrataí agus FreagraíLink to this heading
<django.http.QueryDict.fromkeys>Cuireadh leis: Meth: `Querydict.fromKeys () `.
CommonMiddlewarenow sets theContent-Lengthresponse header for non-streaming responses.Cuireadh an socrú:setting: SECURE_HSTS_PRELOAD leis chun ligean an treoir ``réamh-load` a chur leis an gceannteideal ``Strict-Transport-Security ``.
ConditionalGetMiddlewarenow adds theETagheader to responses.
SraitheadhLink to this heading
Ligeann an tréith nua ``Django.Core.Serializers.Base.Serializer.Stream_Class ``d'fho-aicmí an sruth réamhshocraithe a shaincheapadh.
Is féidir an t-ionchódóir a úsáideann an: ref: JSON serializer <serialization-formats-json>`a shaincheapadh anois trí argóint eochairfhocal ``cls` a chur chuig an bhfeidhm ``serializers.serialize () ``.
DjangoJSONEncodernow serializestimedeltaobjects (used byDurationField).
TeimpléidLink to this heading
mark_safe()can now be used as a decorator.<TEMPLATES-OPTIONS>Tacaíonn cúltaca teimpléad:class: ~django.template.backends.jinja2.jinja2 le próiseálaithe comhthéacs anois tríd an rogha ``'context_processors'` a shocrú in:setting: OPTION.
Tugann an clibe:ttag: athghrúpa
namedtuples anois in ionad foclóirí ionas gur féidir leat an réad grúpa a dhíphacáil go díreach i lúb, m.sh.{% for grouper, liosta i athghrúpáilte%}.Cuireadh clib teimpléad a:ttag: resetcicle leis chun seicheamh an chlib teimpléad: ttag: timthriall a athshocrú.
<django.template.loaders.filesystem.Loader>Is féidir leat eolairí ar leith a shonrú anois le haghaidh áirithe: class: `Filesystem.loader `.
TástálachaLink to this heading
Cuireadh leis: Meth: .DiscoverRunner.get_Test_Runner_Kwargs chun ligean na hargóintí eochairfhocal a chuirtear chuig an rádálaí tástála a shaincheapadh.
Cuireadh an rogha: rogha: test --debug-mode leis chun cabhrú le teipeanna tástála a réiteach tríd an socrú: socrú: DEBUG go True`.
Déanann na feidhmeanna nua:func: django.test.utils.setup_databases (bogadh ó
django.test.runner) agus:func: ~django.test.utils.teardown_databases níos éasca reathaithe tástála saincheaptha a thógáil.Tacaíocht bhreise le haghaidh: meth: python: unittest.testcase.subtest agus an rogha: 'test --parallel` á úsáid agat.
Ritheann
DiscoverRunnerseiceálacha an chórais anois ag tús rith tástála. Athraigh an modh:meth: .DiscoverRunner.run_checks más mian leat é sin a dhíchumasú.
BailíochtóiríLink to this heading
Cuireadh leis: Class: ~django.core.validators.fileExtensionValidator chun síntí comhaid a bhailíochtú agus:data: ~django.core.validators.validate_image_file_extension chun comhaid íomhá a bhailíochtú.
Athruithe neamh-chomhoiriúnacha ar ais i 1.11Link to this heading
django.contrib.gisLink to this heading
Chun an bunachar cóid a shimpliú agus toisc go bhfuil sé níos éasca a shuiteáil ná nuair a scaoileadh
contrib.gisden chéad uair, is spleáchas riachtanach é: ref: gdalbuild anois do GeoDjango. I leaganacha níos sine, ní theastaíonn sé ach le haghaidh SQLite.Baintear
contrib.gis.mapstoisc go ndéanann sé comhéadan le leagan ar scor de API Google Maps agus is cosúil nach bhfuil sé cothabháilte. <14284>Má tá tú ag úsáid é, :ticket: `Cuir in iúl dúinn `.Déanann an t-oibreoir comhionannais Geosgeometry comparáid anois idir SRID.
Úsáideann na giuirléidí foirmeacha bunaithe ar OpenLayers OpenLayers 3 anois, agus tá na teimpléid gis/openlayers.html` agus
gis/openlayers-osm.htmlnuashonraithe. Seiceáil do thionscadal má dhéanann tú na giuirléidí seo a fho-rangú nó má leathnaíonn Chomh maith leis sin, oibríonn na giuirléidí nua beagán difriúil ná na seancinn. In ionad uirlisí uirlisí a úsáid sa ghuirléid, cliceáil tú chun tarraingt, cliceáil agus tarraingt chun an léarscáil a bhogadh, agus cliceáil agus tarraingt point/beart/cúinne chun é a bhogadh.Titeann tacaíocht do SpatiaLite <4.0.
Titear tacaíocht do GDAL 1.7 agus 1.8.
Úsáideann na giuirléidí in
contrib.gis.forms.widgetsagusOpenLayersWidgetan riaracháin an:doc: foirm rindreála API seachas ``loader.render_to_string () </ref/forms/renderers> `. Má tá teimpléad giuirléid saincheaptha á úsáid agat, beidh ort a bheith cinnte gur féidir le do rindreoir foirme é a aimsiú. Mar shampla, d'fhéadfá an renderer: class: `~django.forms.renderers.templateSetting a úsáid.
django.contrib.staticfilesLink to this heading
D'fhéadfadh go dteipeann ar collectstatic` anois le linn iar-phróiseála agus stóráil comhaid statacha hashed á n-úsáid má tá lúb tagartha ann (m.sh.
`foo.css'` tagairtí ``bar.css'a thagraíonn do ``foo.css') nó má tá an slabhra comhaid eile ró-dhomhain le réiteach i roinnt pasanna. Sa chás deireanach sin, méadaigh líon na bpasanna ag baint úsáidea:attr: `.manifestStaticFilesStorage.MAX_POST_PROCESS_PASES.Agus
ManifestStaticFilesStorageá n-úsáid agat, ardaíonn comhaid statacha nach bhfaightear sa léiriú ag an tréimhseValueErroranois in ionad cosán gan athrú a thabhairt ar ais. Is féidir leat filleadh ar an sean-iompar trí shocrú: attr: .manifestStaticFilesStorage.manifest_strict goFalse.
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í.
Cuirtear an modh
DatabaseOperations.time_trunc_sql ()leis chun tacú le trongáilTimefield`. Glacann sé le hargóintí ``lookup_typeagus field_name` agus filleann sé an SQL cuí ar ais chun an réimse ama tugthafield_namea ghearradh chuig réad ama nach bhfuil ach an sainiúlacht ar leith air. Is féidir leis an argóintlookup_typea bheith ina`uair ',nóiméad'`, nó ```soicind.Cuirtear an modh
DatabaseOperations.DateTime_Cast_Time_SQL () `leis chun tacú leis an cuardach: lookup: `time`. Glacann sé le hargóintí ``field_nameagustznameagus filleann sé an SQL riachtanach chun luach dáta-ama a chaitheamh go luach ama.Chun tacaíocht
FOR UPDATE SKIP LOCKEDa chumasú, socraighdatabaseFeatures.HAS_SELECT_FOR_UPDATE_SKIP_LOCKED = True.Sonraíonn an tréith nua
DatabaseFeatures.supports_index_column_orderingan gceadaíonn bunachar sonraí ordú a shainiú do cholúin in innéacsanna. Is é an luach réamhshocraitheTrueagus ba chóir go mbeadh eochair'ordaithe '``i ngach ceann de na foclóirí ar ais le liosta luachanna ``ASC'` agus/nó ``DESCagus/nó luachannaDESCa fhreagraíonn d'ordú gach colún san innéacs.inspectdbno longer callsDatabaseIntrospection.get_indexes()which is deprecated. Custom database backends should ensure all types of indexes are returned byDatabaseIntrospection.get_constraints().Athainmnigh an ghné ignores_quoted_identificfier_case` go ignores_table_name_case` chun léiriú níos cruinne an chaoi a n-úsáidtear é.
Cuirtear an argóint eochairfhocal
ainm ``leis an modh `DatabaseWrapper.create_cursor (self, name=None)chun cúrsaí taobh an fhreastalaí a úsáid ar chúltaca a thacaíonn leis a cheadú.
Tacaíocht titim do PostgreSQL 9.2 agus PostGIS 2.0Link to this heading
Críochnaíonn tacaíocht suas srutha do PostgreSQL 9.2 i Meán Fómhair 2017. Mar thoradh air sin, socraíonn Django 1.11 PostgreSQL 9.3 mar an leagan íosta a thacaíonn sé go hoifigiúil.
Baintear tacaíocht do PostGIS 2.0 freisin mar is é PostgreSQL 9.2 an leagan deireanach chun tacú leis.
Chomh maith leis sin, méadaítear an leagan íosta tacaithe de psycopg2 ó 2.4.5 go 2.5.4.
Ceanglaíonn Liveservertestcase le calafort nialasLink to this heading
Seachas raon calafoirt a ghlacadh agus athrá chun calafort saor in aisce a aimsiú, ceanglaíonn Liveservertestcase le calafort nialas agus braitheann sé ar an gcóras oibriúcháin chun calafort saor in aisce a shannadh. Ní úsáidtear an t-athróg timpeallachta DJANGO_LIVE_TEST_SERVER_ADDRESS a thuilleadh, agus toisc nach n-úsáidtear é a thuilleadh freisin, baintear an rogha manage.py test --liveserver.
Más gá duit LiveserVertestCase a cheangal le calafort ar leith, bain úsáid as an tréith ```port ``cuireadh i Django 1.11.2.
Cosaint i gcoinne atreoruithe neamhchinnte i:mod: tuairimí django.contrib.auth agus i18nLink to this heading
Cosnaíonn LoginView, LogoutView` (agus na coibhéisí bunaithe ar fheidhm atá díluaite), agus:func: ~django.views.i18n.set_language úsáideoirí ó bheith atreoraithe chuig URLanna next neamh-HTTPS nuair a bhíonn an aip ag rith thar HTTPS.
QuerySet.get_or_create () ``agus ``update_or_create () argóintí a bhailíochtúLink to this heading
Chun clóscríobh a chosc ó rith go ciúin, :meth: ~django.db.models.query.queryset.get_or_create agus:meth: ~django.db.models.queryset.update_or_create seiceáil gur réimsí samhail iad a gcuid argóintí. Níor chóir go mbeadh sé seo comhoiriúnach ar chúl ach amháin sa bhfíric go bhféadfadh sé fabht i do thionscadal a nochtadh.
Is spleáchas riachtanach é pytz agus tacaíocht do `settings.TIME_ZONE = None ``baintearLink to this heading
Chun láimhseáil crios ama Django a shimpliú, is spleáchas riachtanach anois é pytz. Tá sé suiteáilte go huathoibríoch mar aon le Django.
Baintear tacaíocht do settings.time_zone = None ``toisc nach n-úsáidtear an t-iompar go coitianta agus tá sé úsáideach go cinnte. Más mian leat an crios ama a bhrath go huathoibríoch bunaithe ar chrios ama an chórais, is féidir leat úsáid a úsáid:pypi: `tzlocal:
from tzlocal import get_localzone
TIME_ZONE = get_localzone().zone
Oibríonn sé seo cosúil le settings.time_zone = None ``ach amháin go socraíonn sé ``os.environ ['TZ'] freisin. Cuir in iúl dúinn `__ má < https://groups.google.com/g/django-developers/c/OAV3FChfuPM/discussion> tá cás úsáide ann ina bhfaighidh tú nach féidir leat do chód a oiriúnú chun ``TIME_ZONE` a shocrú.
Athruithe HTML i dteimpléid riaracháinLink to this heading
Cuirtear clib <p class="help">```` in ionad <div> chun liostaí a áireamh laistigh de théacs cabhrach.
<div class="readonly">Tá réimsí léite amháin fillte i ...</div> <p>``in ionad...</p> ``chun aon chineál HTML a cheadú mar ábhar an réimse.
Athruithe mar gheall ar rindreáil giuirléid bunaithe ar theimpléad a thabhairt isteachLink to this heading
Baintear roinnt ranganna neamhdhoiciméadaithe i django.forms.widgets:
SubwidgetRendererMixin, RoghiceFieldRenderer`, RadioFieldRender`, CheckboxFieldRender`RoiceInput, RadioChoiceInput`, CheckboxChoiceInput`
Baintear an modh ``Select.render_option () ``neamhdhoiciméadaithe.
Baintear an modh Widget.format_output(). Úsáid teimpléad giuirléid saincheaptha ina ionad sin.
Tá roinnt luachanna giuirléid, mar shampla roghanna `, log <select>ánaithe anois má tá ``settings.use_l10n=true. D'fhéadfá filleadh ar an sean-iompar le teimpléid giuirléid saincheaptha a úsáideann an chlib teimpléad:ttag: localize chun logánú a mhúchadh.
``Django.Template.Backends.Django.Template.render () ``cosc ar chomhthéacs neamh-dictLink to this heading
Le haghaidh comhoiriúnacht le hinnill teimpléad iolracha, caithfidh django.template.backends.django.template.render () ``(ar ais ó APIs luchtaire teimpléad ardleibhéil mar ``loader.get_template ()) foclóir comhthéacs a fháil seachas Context nó requestContext`. Má bhí tú ag rith ceachtar den dá rang, pas foclóir ina ionad sin - tá sé sin ag luí ar ais le leaganacha níos sine de Django.
Athruithe stáit samhail in oibríochtaí imirceLink to this heading
Chun luas imirce a chur i bhfeidhm a fheabhsú, cuirtear moill ar rindreáil samhlacha gaolmhara go dtí go ndéanfar oibríocht a theastaíonn iad (m.sh. Runpython`). <writing-your-own-migration-operation>Má tá oibríocht saincheaptha agat a oibríonn le ranganna samhail nó cásanna samhail ón argóint from_state i database_forwards () ``nó `database_backwards ()`, ní mór duit stáit samhail a rinneadh ag baint úsáide as an modh ``clear_delayed_apps_cache () ``mar a thuairiscítear in:ref: `scríobh d'oibríocht imirce féin `.
Cúrsóirí taobh an fhreastalaí ar PostgreSQLLink to this heading
Cuireann an t-athrú chun déanaime:meth: .queryset.iterator () `úsáid cúrsaí taobh an fhreastalaí ar PostgreSQL cosc ar Django a rith le PGBouncer i mód comhionannaithe idirbheart. <DATABASE-DISABLE_SERVER_SIDE_CURSORS>Chun é sin a íoslódáil, bain úsáid as an socrú:setting: `DISABLE_SERVER_SIDE_CURSORS `(curtha leis i Django 1.11.1) in:setting: `DATABASES.
Féach:ref: transaction-pooling-server-side-cursors le haghaidh tuilleadh plé.
IlghnéitheachLink to this heading
<django.utils.feedgenerator.SyndicationFeed.latest_post_date>Mura bhfuil tréith
pubdatenó updateddate` ag aon earraí sa bhfotha, filleann: meth: `SyndicationFeed.latest_post_date () `an dáta/am reatha UTC anois, in ionad dáta-am gan aon fhaisnéis crios ama.Tá teipeanna CSRF logáilte chuig an logger
django.security.csrfin ionaddjango.request.ALLOWED_HOSTSvalidation is no longer disabled when running tests. If your application includes tests with custom host names, you must include those host names inALLOWED_HOSTS. See Tests and multiple host names.Ag baint úsáide as id eochair eachtrach (m.sh.
field_id') in ModelAdmin.list_display`, taispeánann ID an réad gaolmhar. Bain an iarmhír_idmás mian leat sean-iompar léiriú teaghrán an réada.I bhfoirmeacha samhail, sábhálann: class: ~django.db.models.charfield le
Null=TrueanoisNULLle haghaidh luachanna bána in ionad teaghráin folamh.Ar Oracle, :meth: Model.validate_unique () <django.db.models.Model.validate_unique>`ní sheiceálann teaghráin folamh le haghaidh uathúlacht a thuilleadh mar a léirmhíníonn an bunachar sonraí an luach mar `NULL`.
Má dhéanann tú fo-aicmi:class: .abstractUser agus má sháraíonn tú
clean () ``, bí cinnte go dtugann sé ``super (). :meth: Glaítear .BaseUserManager.Normalize_Email i modh nua:meth: .abstractuser.clean ionas go gcuirfear normalú i bhfeidhm i gcásanna cosúil le bailíochtú foirm mhúnla.Ní ghlacann
emailfieldagus URLField` leis an argóint eochairfhocalstripa thuilleadh. Bain é toisc nach bhfuil éifeacht aige i leaganacha níos sine de Django mar scriosann na réimsí seo spás bán i gcónaí.Úsáideann an tréith
seiceáilagusroghnaithea rinneadh ag giuirléidí foirme chomhréir boolean HTML5 anois seachas ``checked='checked'` agus ``selected='roghnaithe'` XHTML.RelatedManager.add(),remove(),clear(), andset()now clear theprefetch_related()cache.Chun caillteanas féideartha socruithe sábháilte a chosc, ardaíonn: func: ~django.test.utils.setup_test_environment eisceacht anois má thugtar air an dara huair sula nglaonn sé: func: ~django.test.utils.teardown_test_environment.
Baintear an alias
DateTimeAwarejsonEncoderneamhdhoiciméadaithe do:class: ~django.core.serializers.json.djangojsonEncoder (athainmnithe i Django 1.0).Tá an: class: luchtóir teimpléad cached <django.template.loaders.cached.Loader>`cumasaithe anois mura ndéantar socrú: `OPTIONS ['luchtaitheoirí']<TEMPLATES-OPTIONS> sonraithe agus:setting: OPTIONS ['debug'] `<TEMPLATES-OPTIONS>is `False` (réamhshocraíonn an rogha deireanach go luach:socrú: DEBUG). <template_tag_thread_safety>D'fhéadfadh sé seo a bheith comhoiriúnach ar chúl má tá clibeanna teimpléad éigin agat: ref: `nach bhfuil sábháilte snáithe `.
Ní tharlaíonn an pras le haghaidh scriosadh cineál ábhair seasta a thuilleadh tar éis an t-ordú
imircea reáchtáil. Úsáid an t-ordú nua:djadmin: remove_stale_contenttypes ina ionad.Úsáideann giuirléid an riaracháin do
IntegerFieldtype="number"seachastype="text".Déantar ceanntásca coinníollach HTTP a pháirseáil agus comparáid anois de réir na sonraíochta Iarrataí Coinníollacha: rfc: 7232 seachas an níos sine: rfc: 2616.
patch_response_headers()no longer adds aLast-Modifiedheader. According to the RFC 7234 Section 4.2.2, this header is useless alongside other caching headers that provide an explicit expiration time, e.g.ExpiresorCache-Control.UpdateCacheMiddlewareandadd_never_cache_headers()callpatch_response_headers()and therefore are also affected by this change.Sna teimpléid riaracháin, cuirtear clib <p class="help">```` in ionad
<div>chun liostaí a áireamh laistigh de théacs cabhrach.ConditionalGetMiddlewareno longer sets theDateheader as web servers set that header. It also no longer sets theContent-Lengthheader as this is now done byCommonMiddleware.Má tá middleware agat a athraíonn ábhar freagra agus atá le feiceáil roimh
CommonMiddlewarei socruitheMIDDLEWAREnó MIDDLEWARE_CLASSES`, ní mór duit do mheán a athordú ionas nach ndéanfar freagraí tar éis Content-Length` a shocrú nó an freagra a athshocrú.get_model()andget_models()now raiseAppRegistryNotReadyif they're called before models of all applications have been loaded. Previously they only required the target application's models to be loaded and thus could return models without all their relations set up. If you need the old behavior ofget_model(), set therequire_readyargument toFalse.Baintear an tréith
BaseCommand.can_import_settingsneamhúsáidte.Baintear an
django.utils.functional.lazy_propertyneamhdhoiciméadaithe.Le haghaidh comhsheasmhachta le hiarratais neamh-ilpháirteach, fágann
`MultipartParser.parse () ````Request.Postinathraithe anois. Má tá tú ag modhnú anQueryDictsin, ní mór duit anois é a chóipeáil ar dtús, m.sh. ``Request.post.copy () ``.Baintear tacaíocht do IPython <1.0 ón ordú
sliog.D'athraigh síniú API príobháideach
Widget.build_attrs () ``ó `Extra_Attrs=None, **kwargsgo ``base_attrs, extra_attrs=None ``.Tá réada cosúil le comhad (m.sh., :class: ~io.stringio agus:class: ~io.bytesio) a uaslódáil chuig an:class: ~django.db.models.imagefield ag baint úsáide as an cliant tástála ag teastáil tréith
nameanois le luach a rachaidh an:data: ~django.core.validators.extenate_image_file_sione_ bailíochtaitheoir. Féach an nóta in:meth: .client.post.FileFieldnow moves rather than copies the file it receives. With the default file upload settings, files larger thanFILE_UPLOAD_MAX_MEMORY_SIZEnow have the same permissions as temporary files (often0o600) rather than the system's standard umask (often0o6644). Set theFILE_UPLOAD_PERMISSIONSif you need the same permission regardless of file size.
Gnéithe atá díscríofa i 1.11Link to this heading
``models.permalink () ``maisitheoirLink to this heading
Úsáid: func: django.urls.reverse ina ionad. Mar shampla:
from django.db import models
class MyModel(models.Model):
...
@models.permalink
def url(self):
return ("guitarist_detail", [self.slug])
éiríonn sé:
from django.db import models
from django.urls import reverse
class MyModel(models.Model):
...
def url(self):
return reverse("guitarist_detail", args=[self.slug])
IlghnéitheachLink to this heading
Tá tuairimí bunaithe ar fheidhm
`contrib.authlogin () ``agus ``logout () `` luasghabhunaithe i bhfabhar radhairc nua aicme-bhunaithe: class: ~django.contrib.contrib.auth.views.loginView agus:class: ~django.contrib.auth.views.logoutView.Tá an paraiméadar
extra_contextneamhúsáidte de `contrib.auth.views.logout_then_login () ``a dhíchur.Tá
contrib.authpassword_change () `, password_change_done ()`, password_reset () `, password_reset_done ()`, password_reset_done () `, password_reset_verify ()`, agus ``password_reset_complete () tuairimí nua ar fheidhm tuairimí range-bhunaithe: class: `~django.contrib.auth.views.passwordChangeView, :class: ~django.contrib.auth.views.passwordChangedOneView, :class: ~django.contrib.auth.views.passwordResetView, :class: ~django.contrib.auth.views.passwordResetView DoneView`, :class: ~django.contrib.auth.views.PasswordResetConfirmView, agus:class: ~django. Contrib.auth.views.PasswordResetCompleteView.Bogtar ``django.test.runner.setup_databases () ``chuig: func: django.test.utils.setup_databases. Tá an sean-shuíomh mionscailte.
Tá
django.utils.translation.string_concat () ``luasghabháilte i bhfabhr:func: `django.utils.text.format_lazy`. Is féidir ``format_lazy ('{}' * len (teaghráin), *teaghráin) ``a chur in ionad ``string_concat (*teaghráin).Maidir leis an gcúltaca taisce
Pylibmccache, tá socruithe iompraíochta pylibmc` a rith mar thréithe barrleibhéil deOPTIONSa dhíchur. Socraigh iad faoi eochairiompraíochtaí ``laistigh de `OPTIONSina ionad.Tá an paraiméadar
hostde django.utils.http.is_safe_url () ``a dhíchur i bhfabhar an pharaiméadar nua ``allowed_hosts`.Tá eis <include>ceachtaí a thostú a ardaíodh agus clib teimpléad: ttag: {% include%} á léiriú díreach mar is minic a bhíonn an t-iompar níos mearbhall ná cabhrach. I Django 2.1, ardófar an eisceacht.
Tá
DatabaseIntrospection.get_Indexes ()díscoilte i bhfabhar ``DatabaseIntrospection.get_Constraints () ``.authenticate()now passes arequestargument to theauthenticate()method of authentication backends. Support for methods that don't acceptrequestas the first positional argument will be removed in Django 2.1.Tá an socrú
USE_ETAGdíluaite i bhfabhr:class: ~django.middleware.http.ConditionalGetMiddleware a chuireann an ceannteidealEtaganois le freagraí beann ar an socrú. Ní shocróidhCommonMiddlewareagus ``django.utils.cache.patch_response_heads () ``eTaganna a thuilleadh nuair a chríochnaíonn an díphacáil.Samhail. Tá _meta.has_auto_fielda dhíchur i bhfabhar seiceáil an bhfuil Samhail. Níl _meta.auto_field Non `.Tá grúpaí léirithe rialta le Ilmsu#` in url () ``díluchtaithe. Is é an t-aon ghrúpa atá úsáideach ná ``(? i) ``le haghaidh URLanna cás-neamh-íogair, áfach, ní dea-chleachtas iad URLanna cás-neamh-íogair toisc go gcruthaíonn siad iontrálacha iolracha d'innill chuardaigh, mar shampla. D'fhéadfadh réiteach malartach a bheith a chruthú a:data: `~django.conf.urls.handler404 a lorgaíonn carachtair uachtaracha sa URL agus a atreoraíonn chuig coibhéis beaga.
<django.forms.Widget.render>Cuirtear an argóint
rendererleis an modh:meth: `Widget.render () `. Oibreoidh modhanna nach nglacann leis an argóint sin trí thréimhse díscrúdaithe.