Nótaí scaoilte Django 1.10Link to this heading

1 Lúnasa, 2016

Fáilte go Django 1.10!

Clúdaíonn na nótaí scaoilte seo na:ref: gnéithe nua <whats-new-1.10>, chomh maith le roinnt athruithe: ref: athruithe neamh-chomhoiriúnacha ar chúl<backwards-incompatible-1.10> a mbeidh tú ag iarraidh a bheith ar an eolas fúthu agus tú ag uasghrádú ó Django 1.9 nó leaganacha níos sine. <deprecated-features-1.10>Chuireamar: Ref: thit roinnt <removed-features-1.10>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

Cosúil le Django 1.9, teastaíonn Python 2.7, 3.4, nó 3.5 ó Django 1.10. 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 1.10Link to this heading

Cuardach téacs iomlán do PostgreSQLLink to this heading

Cuimsíonn django.contrib.postgres anois cnuasach feidhmeanna bunachar sonraí chun úsáid an innill chuardaigh téacs iomlán a cheadú. Is féidir leat cuardach a dhéanamh thar réimsí iolracha i do bhunachar sonraí coibhneasta, cuardaigh a chomhcheangal le cuardaigh eile, cumraíochtaí agus ualuithe éagsúla teanga a úsáid, agus na torthaí a rangú de réir ábharthacht.

Cuimsíonn sé tacaíocht trigram anois, ag baint úsáide as an lorgaí:lookup: trigram_similar, agus na:class: ~django.contrib.postgres.search.trigramsimilarity agus:class: ~django.contrib.postgres.search.trigramdistance.

Meán-earraí nua i stílLink to this heading

</topics/http/middleware> < https://github.com/django/deps/blob/main/final/0005-improved-middleware.rst>:doc: “Cuirtear isteach stíl nua de mheán-earraí” chun an easpa docht iarrata/freagartha a réiteach ar sheanstíl mheánearraí a thuairiscítear in DEP 0005. Beidh ort: ref: sean-mheán-earraí saincheaptha a oiriúnú `agus aistriú ón socrú ``MIDDLEWARE <upgrading-middleware>_CLASSES` go dtí an socrú nua:setting: MIDDLEWARE chun leas a bhaint as na feabhsuithe.

Tacaíocht oifigiúil d'ainmneacha úsáideora UnicodeLink to this heading

Ní ghlac an tsamhail:class: ~django.contrib.auth.models.user i django.contrib.auth ar dtús litreacha agus uimhreacha ASCII in ainmneacha úsáideora. Cé nach rogha d'aon ghnó a bhí ann, glacadh le carachtair Unicode i gcónaí agus Python 3 á úsáid agat.

Glacann an bailíochtóir ainm úsáideora go sainráite anois le carachtair Unicode de réir réamhshocraithe ar Python 3 amháin.

Féadfaidh samhlacha úsáideora saincheaptha an nua:class: ~django.contrib.auth.validators.asciiUserNameValidator nó: class: ~django.contrib.auth.validators.unicodeUserNameValidator a úsáid.

MionghnéitheLink to this heading

django.contrib.adminLink to this heading

  • Maidir le suíomhanna atá ag rith ar fho-chosán, déanfaidh an réamhshocraithe:attr: URL don nasc “Féach ar an láithreán” <django.contrib.admin.AdminSite.site_url>`ag barr gach leathanach riaracháin ag díriú anois ar ``request.meta ['SCRIPT_NAME'] ``má tá sé socraithe, in ionad `/``.

  • Tá nasc anois le foirm athraithe an réada sa teachtaireacht rathúlachta atá le feiceáil tar éis réad a chur leis nó a chur in eagar.

  • Baintear gach JavaScript inlíne ionas gur féidir leat an ceannteideal HTTP Content-Security-Policy a chumasú más mian leat.

  • <django.contrib.admin.InlineModelAdmin.classes>Ceadaíonn an tréith nua:attr: InlineModelAdmin.classes `aicmí a shonrú ar thacainní réimsí inlíne. Titeofar ar dtús na línte a bhfuil rang ``fallse` acu agus beidh nasc beag “seó” ag a gceanntásc.

  • Mura bhfuil an cead breise ag úsáideoir, déanfar an bloc `réad-uirlisí ``ar liosta athraithe samhail a léiriú anois (gan an cnaipe leis). Fágann sé seo go bhfuil sé níos éasca uirlisí saincheaptha a chur leis sa chás seo.

  • Stórálann an tsamhail:Class: ~django.contrib.admin.models.logentry teachtaireachtaí athraithe i struchtúr JSON anois ionas gur féidir an teachtaireacht a aistriú go dinimiciúil ag baint úsáide as an teanga ghníomhach reatha. Is é modh nua ``Logentry.get_change_message () ``an bealach is fearr anois chun an teachtaireacht athraithe a aisghabháil.

  • Tá nasc anois ag rudaí roghnaithe do réimsí i ModelAdmin.raw_id_fields` le foirm athraithe réad anois.

  • Cuireadh roghanna “Gan dáta” agus “Tá dáta aige” le haghaidh DateFieldListFilter má tá an réimse neamhnaithe.

  • Déantar an leabharlann jQuery atá leabaithe sa riarachán a uasghrádú ó leagan 2.1.4 go 2.2.3.

django.contrib.authLink to this heading

  • <argon2_usage>Tacaíocht bhreise don: ref: `hash pasfhocal Argon2 `. Moltar é thar PBKDF2, áfach, ní hé an réamhshocrú toisc go dteastaíonn leabharlann tríú páirtí uaidh.

  • Méadaíodh 25% an líon athraithe réamhshocraithe don hasher pasfhocal PBKDF2. Ní dhéanfaidh an t-athrú comhoiriúnach ar chúl difear d'úsáideoirí a bhfuil fo-aicmithe ag Django.contrib.auth.hashers.pbkdf2PasswordHasher chun an luach réamhshocraithe a athrú.

  • Seolann an radharc ``django.contrib.auth.views.logout () ``ceanntásca “no-cache” chun saincheist a chosc ina ndéanann Safari ceascanna a atreorú agus cuireann sé cosc ar úsáideoir a bheith in ann logáil amach.

  • Cuireadh an argóint roghnach backend chuig: func: django.contrib.auth.login chun ligean é a úsáid gan dhintiúir.

  • Rialaíonn an socrú nua:setting: LOGOUT_REDIRECT_URL athreorú an amharc django.contrib.auth.views.logout () `, mura bhfaigheann an dearcadh argóint ``next_page.

  • Ligeann an paraiméadar nua redirect_autenticated_user don amharc ``django.contrib.auth.views.login () ``úsáideoirí fíordheimhnithe a thugann cuairt ar an leathanach logála isteach a atreorú.

  • Déanann an nua:class: ~django.contrib.auth.backends.allowAllUsersModelBackend agus:class: ~django.contrib.auth.backends.allowAllUsersRemoteUserBackend neamhaird ar luach User.is_Active, agus: class: ~django.contrib.auth.backends.modelBackend :class: ~django.contrib.auth.backends.remoteUserBackend diúltú úsáideoirí neamhghníomhacha anois.

django.contrib.gisLink to this heading

  • Distance lookups now accept expressions as the distance value parameter.

  • Ríomhaíonn an maoin nua:attr: `Geosgeometry.unary_union <django.contrib.gis.geos.GEOSGeometry.unary_union>`aontas eilimintí uile an geoiméadra seo.

  • <django.contrib.gis.geos.GEOSGeometry.covers>Cuireadh an predicate dénártha: meth: `Geosgeometry.covers () `leis.

  • Cuireadh an modh: meth: GdalBand.Statistics () `agus:attr: `~django.contrib.gis.gdal.gdalband.mean agus:attr: ~django.contrib.gis.gdal.gdalband.st <django.contrib.gis.gdal.GDALBand.statistics>d tréithe.

  • Tacaíocht bhreise don chomhiomlán: aicme: ~django.contrib.gis.db.models.makeline agus:class: ~django.contrib.gis.db.models.functions.geohash feidhm ar Spatialite.

  • Tacaíocht bhreise don: class: ~django.contrib.gis.db.models.functions.difference, :class: ~django.contrib.gis.db.models.functions.intersection, agus:class: ~django.contrib.gis.db.models.functions.symdifference feidhmeanna ar MySQL.

  • Tacaíocht bhreise chun geoiméadraí folamh GEOS a chur ar aghaidh.

  • Ceadaíonn an nua:attr: ~django.contrib.gis.geos.wktwriter.trim agus:attr: ~django.contrib.gis.geos.wktWriter.Precision airíonna de:class: ~django.contrib.gis.geos.wktWriter rialú aschur an chuid codánach de na comhordanáidí i WKT.

  • <django.contrib.gis.geos.LineString.closed><django.contrib.gis.geos.MultiLineString.closed>Cuireadh airíonna: attr: Linestring.closed `agus:attr: `MultilineString.Closed leis.

  • Aisíonn an:doc: GeoJSON serializer an príomh-eochair na rudaí sa fhoclóir </ref/contrib/gis/serializers> airíonna mura sonraítear réimsí ar leith.

  • Cuireadh an cumas sonraí ionchuir a mhacasamhlú ar an modh GDALBand.data(). Is féidir sonraí banna a nuashonrú anois le luachanna arís agus arís eile go héifeachtach.

  • Feidhmeanna bunachar sonraí breise :aicme:`~django.contrib.gis.db.models.functions.IsValid` agus :rang:`~django.contrib.gis.db.models.functions.MakeValid`, chomh maith leis an :lookup: cuardach isvalid, go léir le haghaidh PostGIS. Ligeann sé seo céimseataí neamhbhailí ar thaobh an bhunachair shonraí a scagadh agus a dheisiú.

  • Cuireadh tacaíocht raster leis do gach duine: doc: cuardach spásúil </ref/contrib/gis/geoquerysets>.

django.contrib.postgresLink to this heading

  • Ar mhaithe le áisiúlacht, caitheann :class: ~django.contrib.postgres.fields.hStorefield anois a heochracha agus a luachanna chuig teaghráin.

django.contrib.sessionsLink to this heading

  • Baineann an t-ordú bainistíochta: DJadmin: clearsessions seisiúin comhadbhunaithe anois.

django.contrib.sitesLink to this heading

  • <topics-serialization-natural-keys>Tacaíonn an tsamhail: Class: ~django.contrib.sites.models.site anois:ref: `eochracha nádúrtha `.

django.contrib.staticfilesLink to this heading

  • Úsáideann an chlib teimpléad:ttag: static django.contrib.staticfiles anois má tá sé i INSTALLED_APPS. Tá sé seo úsáideach go háirithe d'aipeanna tríú páirtí ar féidir leo {% load static%} `a úsáid anois i gcónaí (in ionad {% load staticfiles%} {% load static from staticfiles%} ) agus gan a bheith buartha faoi cibé an bhfuil an aip `staticfiles suiteáilte nó nach bhfuil.

  • Is féidir leat:ref: a shaincheapadh níos éasca `an rogha <customize-staticfiles-ignore-patterns>collectstatic --ignore`` le AppConfig` saincheaptha.

CacheLink to this heading

  • Úsáideann an cúltaca taisce comhbhunaithe anois an prótacal picling is airde.

CSRFLink to this heading

  • Glacann an réamhshocraithe:setting: CSRF_FAILURE_VIEW, views.csrf.csrf_fail () `anois le paraiméadar roghnach ``template_name, ag réamhshocrú go ``403_csrf.html'`, chun an teimpléad a úsáidtear chun an leathanach a rinneadh a rialú.

  • Chun cosaint a dhéanamh i gcoinne ionsaithe BREACH, athraíonn an mheicníocht cosanta CSRF luach an chomhartha foirme anois ar gach iarratas (agus rún inathraithe á choinneáil ar féidir a úsáid chun na comharthaí éagsúla a bhailíochtú).

Cúltaca bunachar sonraíLink to this heading

  • Aontaíodh gearradh sonraí ama ar gach cúltaca.

  • Má thacaíonn an bunachar sonraí leis, is féidir le cúltaca databaseFeatures.can_return_ids_from_bulk_insert=true a shocrú agus DatabaseOperations.fetch_returned_insert_ids () a chur i bhfeidhm chun eochracha bunscoile a shocrú ar rudaí a cruthaíodh ag baint úsáide as `querySet.bulk_create () `.

  • Cuireadh argóintí eochairfhocal leis na modhanna as_sql () ``de nathanna éagsúla (`Func, When`, Case `, agus Orderby`) chun ligean do chúltaca bunachar sonraí iad a shaincheapadh gan féin a athrú, rud nach bhfuil sábháilte agus cúltaca bunachar sonraí éagsúla á úsáid. <django.db.models.Func.as_sql>Féach na paraiméadair arg_joiner` agus **extra_context de:meth: `Func.as_sql () `mar shampla.

Stóráil ComhadLink to this heading

  • Cuireann cúltaca stórála API atá ar an eolas ag crios ama anois le modhanna nua: meth: ~django.core.files.storage.storage.get_accessed_time, :meth: ~django.core.files.storage.storage.get_created_time, agus:meth: ~django.core.files.storage.get_get_get_get_geT_Am_athraithe'. Tugann siad `datetime` atá ar an eolas faoi chrios ama más rud é: socrú: `True é USE_TZ agus datetime` naif sa chrios ama áitiúil ar shlí eile.

  • Déanann an modh nua:meth: Storage.generate_filename () <django.core.files.storage.Storage.generate_filename>`níos éasca stórais saincheaptha a chur i bhfeidhm nach n-úsáideann na glaonna ``os.path` roimhe seo in:class: ~Django.db.Models.FileField.

FoirmeachaLink to this heading

  • Freastalaítear foirm agus giuirléid ``Meáin ``anois ag baint úsáide as: mod: django.contrib.staticfiles má tá sé suiteáilte.

  • Cuimsíonn an chlib <input>```a rinneadh ag:class: ~django.forms.charfield tréith minlength anois má tá ``min_length ``sa réimse.

  • Tá an tréith HTML “riachtanach” ag réimsí foirme riachtanacha anois. <django.forms.Form.use_required_attribute>Socraigh an tréith nua:attr: Form.use_required_attribute le False chun é a dhíchumasú. Ní chuirtear an tréith “riachtanach” san áireamh ar fhoirmeacha foirmeacha mar b'fhéidir nach mbeidh bailíochtú an bhrabhsálaí ceart agus foirmeacha á gcur leis agus á scriosadh.

Tuairimí cineálachaLink to this heading

  • Is féidir an rang:class: ~django.views.generic.base.view a allmhairiú anois ó django.views.

IdirnáisiúnúLink to this heading

  • <django.http.HttpRequest.urlconf>Is féidir an fheidhm chúntóirí:func: ~django.conf.urls.i18n.i18n_patterns a úsáid anois i bhfréimhe URLConf a shonraítear ag baint úsáide as: attr: `request.urlconf `.

  • Trí an pharaiméadar nua prefix_default_language a shocrú fao:func: ~django.conf.urls.i18n.i18n_patterns go False`, is féidir leat rochtain a fháil ar an teanga réamhshocraithe gan réimír URL a cheadú.

  • set_language() now returns a 204 status code (No Content) for AJAX requests when there is no next parameter in POST or GET.

  • Is ionad tuairimí ranga-bhunaithe: ~Django.Views.I18N.JavaScriptCatalog agus:class: ~django.views.i18N.jsonCatalog na tuairimí bunaithe ar fheidhm “javascript_catalog () ``agus ``json_catalog () . Tá na tuairimí nua beagnach comhionann leis na seanchúin ach amháin go mbailíonn na tuairimí nua gach teaghrán JavaScript i bhfearann aistriúcháin ``djangojs ``ó gach aip suiteáilte seachas na teaghráin JavaScript ó:setting: `LOCALE_PATHS.

Orduithe BainistíochtaLink to this heading

  • call_command() now returns the value returned from the command.handle() method.

  • Ligeann an rogha nua:option: check --fail-level leibhéal na teachtaireachta a shonrú a fhágfaidh go n-imeoidh an t-ordú le stádas neamh-nialas.

  • Déanann an rogha nua:option: makemigrations --check imeacht an t-ordú le stádas neamh-nialas nuair a bhraitear athruithe samhail gan imirce.

  • makemigrations now displays the path to the migration files that it generates.

  • Glacann an roghna:option: shell --interface anois le python chun an ateangaire Python “simplí” a úsáid a chur i bhfeidhm.

  • Ligeann an rogha nua:option: shell --command duit ordú a reáchtáil mar Django agus imeacht, in ionad an bhlaosc idirghníomhach a oscailt.

  • Cuireadh rabhadh chuig: djadmin: dumpdata má shonraítear samhail seachfhreastalaí (nach bhfuil aon aschur mar thoradh air sin) gan a thuismitheoir nithiúil.

  • Is féidir an tréith nua:attr: BaseCommand.requires_migrations_checks a shocrú go <django.core.management.BaseCommand.requires_migrations_checks>True más mian leat d'ordú rabhadh a phriontáil, cosúil:djadmin: runserver, mura n-oireann an tacar imirce ar an diosca leis na himirce sa bhunachar sonraí.

  • Chun cabhrú le tástáil, glacann: func: ~django.core.management.call_command anois le réad ordaithe mar an chéad argóint.

  • Tacaíonn an t-ordú: Djadmin: shell le críochnú cluaisín ar chórais a úsáideann libedit, m.sh. macOS.

  • Ligeann an t-ordú: DJAdmin: inspectdb duit na táblaí ba chóir a iniúchadh a roghnú trína n-ainmneacha a shonrú mar argóintí.

ImirceLink to this heading

  • Tacaíocht bhreise le haghaidh sraitheadh rudaí Enum.enum.

  • Cuireadh an argóint elidable leis na hoibríochtaí: :class: ~django.db.migrations.operations.runsql agus:class: ~django.db.migrations.operations.runpython chun ligean iad a bhaint agus imirce á scrúdú.

  • Tacaíocht bhreise le haghaidh: ref: imirce neamh-adamhaíoch tríd an tréith atomic` <non-atomic-migrations>`a shocrú ar ``Imirce.

  • <migration-history-consistency>Na horduithe imirce agus makemigrations` anois:ref: seiceáil stair chomhsheasmhach imirce `. Má aimsíonn siad roinnt spleáchais neamhfheidhmeacha ar imirce feidhmithe, ardaítear ``InconsistentImmigrationHistory`.

  • Seolann na comharthaí: Func: ~django.db.models.signals.pre_migrate agus:func: ~django.db.models.signals.post_migrate a n-imirce plean` agus apps anois.

SamhlaLink to this heading

  • Déantar eochracha eachtracha droim ó mhúnlaí seachfhreastalaí a iomadú anois Tá an gaol droim atá ceangailte ag a:class: ~Django.db.Models.ForeignKey ag díriú ar mhúnla seachfhreastalaí inrochtana anois mar thuairiscitheoir ar an rang samhail seachfhreastaithe agus féadfar tagairt a thabhairt dó i scagadh tacar fiosrúcháin.

  • Tugann an modh nua:meth: Field.rel_DB_type () <django.db.models.Field.rel_db_type>`cineál sonraí colún bunachar sonraí do réimsí mar `ForeignKey` agus OneTooneField a thugann pointe chuig réimse eile.

  • Cuirtear tréith aicme:attr: ~django.db.models.func.arity leis a:class: ~django.db.models.func. Is féidir an tréith seo a úsáid chun líon na n-argóintí a ghlacann an fheidhm a shocrú.

  • Cuireadh leis: Class: ~Django.db.Models.BigAutoField a fheidhmíonn cosúil leis an:class: ~django.db.models.autofield ach amháin go bhfuil sé ráthaithe go n-oirfidh sé uimhreacha ó 1 go 9223372036854775807`.

  • QuerySet.in_bulk() may be called without any arguments to return all objects in the queryset.

  • related_query_name now supports app label and class interpolation using the '%(app_label)s' and '%(class)s' strings.

  • Ceadaítear sár-réimsí samhla a fuarthas le hoidhreacht ó bhunaicmí teibí.

  • Is API poiblí anois é an fheidhm:func: ~django.db.models.prefetch_related_objects.

  • QuerySet.bulk_create() sets the primary key on objects when using PostgreSQL.

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

  • Féadfaidh samhail seachfhreastalaí teacht le hoidhreacht anois ar mhúnlaí seachfhreastalaí iolracha a roinneann aicme tuismitheora neamhtheibí coitianta.

  • Cuireadh leis: Class: ~Django.db.Models.Functions.Extract feidhmeanna chun comhpháirteanna dáta-ama a bhaint mar shláimhreacha, mar shampla bliain agus uair an chloig.

  • Cuireadh leis: Class: ~Django.db.Models.Functions.Trunc feidhmíonn dáta nó dáta-am a ghearradh go comhpháirt shuntasach. Cumasaíonn siad ceisteanna mar dhíolacháin in aghaidh an lae nó díolacháin in aghaidh na huaire.

  • ``Samhail. Socraíonn __init__ () ``luachanna réimsí fíorúla anois óna argóintí eochairfhocal.

  • <django.db.models.Options.default_manager_name>Ceadaíonn na roghanna nua:attr: Meta.Base_Manager_name `agus:attr: `Meta.Default_Manager_name<django.db.models.Options.base_manager_name> an: attr: ~django.db.models.model a rialú. _base_manager agus:attr: ~Django.db.Models.Model. _default_manager, faoi seach.

Iarrataí agus FreagraíLink to this heading

  • Cuireadh request.user leis an radharc dífhabhtaithe.

  • Added HttpResponse methods readable() and seekable() to make an instance a stream-like object and allow wrapping it with io.TextIOWrapper.

  • Cuireadh na tréithe: attr: HttpRequest.content_type `agus:attr: `~django.http.httpRequest.content_params a pháirsítear ón gceannteideal CONTENT_TY <django.http.HttpRequest.content_type>PE.

  • Déantar an parser do Request.cookies a shimpliú chun iompar brabhsálaí a mheaitseáil níos fearr. D'fhéadfadh go mbeadh fianáin anois ag request.cookies` atá neamhbhailí de réir: rfc: 6265 ach is féidir iad a shocrú trí document.cookie`.

SraitheadhLink to this heading

  • Tá a fhios ag an django.core.serializers.json.djangojsonEncoder` anois conas teaghráin leisciúil a shraitheadh, a úsáidtear de ghnáth le haghaidh ábhar inaistrithe.

TeimpléidLink to this heading

  • Cuireadh an rogha autoescape leis an:class: ~django.template.backends.django.djangoTemplates cúltaca agus an ranga:class: ~django.template.engine.

  • Cuireadh na hoibreoirí comparáide is ``agus ``níl leis an gclibe:ttag: `if `.

  • Ceadaí:TFilter: dictsort liosta liostaí a ordú de réir eilimint ag innéacs sonraithe.

  • Cuimsíonn an próiseálaí comhthéacs: Func: ~django.template.context_processors.debug ceisteanna maidir le gach ainm bunachar sonraí in ionad an ailias réamhshocraithe amháin.

  • Cuireadh tacaíocht coibhneasta coibhneasta le haghaidh argóintí teaghráin de chlibeanna teimpléad: ttag: extends agus:ttag: include.

TástálachaLink to this heading

  • Chun fabhtanna a ghabháil níos fearr, seiceálann: class: ~django.test.testcase srianta bunachar sonraí in-iarchurraithe anois ag deireadh gach tástála.

  • Is féidir le tástálacha agus cásanna tástála a bheith: ref: marcáilte le clibeanna <topics-tagging-tests>`agus rith go roghnach leis na roghanna nua:option: `test --tag agus:option: test --exclude-tag.

  • Is féidir leat logáil isteach anois agus seisiúin a úsáid leis an gcliant tástála fiú mura bhfuil: mod: django.contrib.sessions in:setting: INSTALLED_APPS.

URLannaLink to this heading

  • An addition in django.setup() allows URL resolving that happens outside of the request/response cycle (e.g. in management commands and standalone scripts) to take FORCE_SCRIPT_NAME into account when it is set.

BailíochtóiríLink to this heading

  • URLValidator now limits the length of domain name labels to 63 characters and the total length of domain names to 253 characters per RFC 1034.

  • int_list_validator() now accepts an optional allow_negative boolean parameter, defaulting to False, to allow negative integers.

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

API cúltaca bunachar sonraíLink to this heading

  • Úsáideann “Areafield” GIS cineál uimhriúil bunúsach neamhshonraithe a d'fhéadfadh a bheith i gcleachtas aon chineál uimhriúil Python. Déantar luachanna Decimal.Decimal a aisghabháiltear ón mbunachar sonraí a thiontú anois go float chun go mbeidh sé níos éasca iad a chomhcheangal le luachanna a úsáideann na leabharlanna GIS.

  • D'fhonn gearradh ama a chumasú ní mór duit bratach gné bunachar sonraí supports_temporal_subtraction a shocrú go True agus an modh DatabaseOperations.subtract_temporals () a chur i bhfeidhm. Ba cheart don mhodh seo an SQL agus na paraiméadair a theastaíonn chun an difríocht i micreasoicind idir na hargóintí lhs` agus rhs` a ríomh sa chineál sonraí a úsáidtear chun stóráil:class: ~Django.db.Models.DurationField a ríomh.

Tugann ``_meta.get_fields () ``réimsí comhsheasmhacha droim ar ais do mhúnlaí seachfhreastalaíLink to this heading

Roimh Django 1.10, chuir an modh: meth: ~django.db.models.options.options.get_fields réimsí droim éagsúla ar ais nuair a ghlaoigh sé ar mhúnla seachfhreastalaí i gcomparáid lena aicme coincréite seachfhála. Socraíodh an neamhréireacht seo tríd an tsraith iomlán réimsí a thabhairt ar ais ag díriú ar aicme coincréite nó ar cheann dá sheirbhísí sa dá chás.

<django.contrib.auth.models.User.username>:attr: `Abstractuser.username ```max_length ``méadaithe go 150Link to this heading

Tá imirce le haghaidh: attr: django.contrib.auth.models.user.userName 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.

We considered an increase to 254 characters to more easily allow the use of email addresses (which are limited to 254 characters) as usernames but rejected it due to a MySQL limitation. When using the utf8mb4 encoding (recommended for proper Unicode support), MySQL can only create unique indexes with 191 characters by default. Therefore, if you need a longer length, please use a custom user model.

Más mian leat an teorainn 30 carachtar d'ainmneacha úsáideora a chaomhnú, bain úsáid as foirm saincheaptha agus úsáideoir á chruthú agat nó agus ainmneacha úsáideora á athrú agat:

Code
from django.contrib.auth.forms import UserCreationForm


class MyUserCreationForm(UserCreationForm):
    username = forms.CharField(
        max_length=30,
        help_text="Required. 30 characters or fewer. Letters, digits and @/./+/-/_ only.",
    )

Más mian leat an srian seo a choinneáil sa riarachán, socraigh ``UserAdmin.Add_Form ``chun an fhoirm seo a úsáid:

Code
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
from django.contrib.auth.models import User


class UserAdmin(BaseUserAdmin):
    add_form = MyUserCreationForm


admin.site.unregister(User)
admin.site.register(User, UserAdmin)

Tacaíocht titim do PostgreSQL 9.1Link to this heading

Críochnaíonn tacaíocht suas srutha do PostgreSQL 9.1 i Meán Fómhair 2016. Mar thoradh air sin, leagann Django 1.10 PostgreSQL 9.2 mar an leagan íosta a thacaíonn sé go hoifigiúil.

Téann aschur ``runserver ``trí logáilLink to this heading

Seoltar láimhseáil iarratais agus freagartha an ordaithe runserver chuig an logger:ref: django-server-logger in ionad chuig sys.stderr`. Má dhíchumraíonn tú cumraíocht logála Django nó má dhíchumraíonn tú é le do chuid féin, beidh ort an chumraíocht logála cuí a chur leis más mian leat an t-aschur sin a fheiceáil:

Code
LOGGING = {
    # ...
    "formatters": {
        "django.server": {
            "()": "django.utils.log.ServerFormatter",
            "format": "[%(server_time)s] %(message)s",
        }
    },
    "handlers": {
        "django.server": {
            "level": "INFO",
            "class": "logging.StreamHandler",
            "formatter": "django.server",
        },
    },
    "loggers": {
        "django.server": {
            "handlers": ["django.server"],
            "level": "INFO",
            "propagate": False,
        }
    },
}

Baineadh samhlacha tástála Auth.CustomUser` agus Auth.ExtensionUserLink to this heading

Ó tugadh isteach imirce do na feidhmchláir contrib i Django 1.8, níor cruthaíodh táblaí na samhlacha tástála úsáideora saincheaptha seo a thuilleadh rud a fhágann go bhfuil siad neamhúsáidte i gcomhthéacs tástála.

Ní dhéantar clárlann apps go huathoibríoch a thuilleadh nuair a dhíphictear samhlacha lasmuighLink to this heading

Níl clárlann na n-aipeanna daonra go huathoibríoch a thuilleadh agus samhlacha á Cuireadh é seo leis i Django 1.7.2 mar iarracht samhlacha neamhphicilte a cheadú lasmuigh de Django, mar shampla in oibrí RQ, gan glaoch ar ``django.setup () , ach cruthaíonn sé an fhéidearthacht go mbeadh caoileadh ann. Chun do chód a oiriúnú i gcás RQ, is féidir leat `scriptúr oibrí féin a sholáthar `_ a ghlaonn ``django.setup (< https://python-rq.org/docs/workers/>) `.

Seiceáil sannadh neall bainte le haghaidh príomhréimsí eachtracha neamh-Link to this heading

I leaganacha níos sine, a shannadh None do ForeignKey` neamh-neamh-neamhrialaithe nó OneTooneField ardaithe ``ValueError ('Ní féidir Aon a shannadh: ní cheadaíonn “model.field” luachanna null. ') ``. Le haghaidh comhsheasmhachta le réimsí samhlacha eile nach bhfuil seiceáil den chineál céanna acu, baintear an seiceáil seo.

Bainte hashers pasfhocal lag ón socrú réamhshocraithe PASSWORD_HASHERSLink to this heading

Stóráilte pasfhocail Django 0.90 mar MD5 neamh-shailte. Chuir Django 0.91 tacaíocht le haghaidh SHA1 saillte le pasfhocail a uasghrádú uathoibríoch nuair a logálann úsáideoir isteach. Chuir Django 1.4 PBKDF2 leis mar an hasher pasfhocal réamhshocraithe.

If you have an old Django project with MD5 or SHA1 (even salted) encoded passwords, be aware that these can be cracked fairly easily with today's hardware. To make Django users acknowledge continued use of weak hashers, the following hashers are removed from the default PASSWORD_HASHERS setting:

  • "django.contrib.auth.hashers.SHA1PasswordHasher"

  • "django.contrib.auth.hashers.MD5PasswordHasher"

  • "django.contrib.auth.hashers.UnsaltedSHA1PasswordHasher"

  • "django.contrib.auth.hashers.UnsaltedMD5PasswordHasher"

  • "django.contrib.auth.hashers.CryptPasswordHasher"

Smaoinigh ar a:ref: phasfhocal fillte hasher <wrapping-password-hashers>`a úsáid chun na hashes i do bhunachar sonraí a neartú. Mura bhfuil sé sin indéanta, cuir an socrú:setting: `PASSWORD_HASHERS le do thionscadal agus cuir aon hashers a theastaíonn uait ar ais.

Is féidir leat a sheiceáil an bhfuil aon cheann de na hashers bainte mar seo ag do bhunachar sonraí:

Code
from django.contrib.auth import get_user_model

User = get_user_model()

# Unsalted MD5/SHA1:
User.objects.filter(password__startswith="md5$$")
User.objects.filter(password__startswith="sha1$$")
# Salted MD5/SHA1:
User.objects.filter(password__startswith="md5$").exclude(password__startswith="md5$$")
User.objects.filter(password__startswith="sha1$").exclude(password__startswith="sha1$$")
# Crypt hasher:
User.objects.filter(password__startswith="crypt$$")

from django.db.models import CharField
from django.db.models.functions import Length

CharField.register_lookup(Length)
# Unsalted MD5 passwords might not have an 'md5$$' prefix:
User.objects.filter(password__length=32)

Baintear modhanna Field.get_prep_lookup () ``agus ``Field.get_db_prep_lookup ()Link to this heading

Má tá réimse saincheaptha agat a chuireann ceachtar de na modhanna seo i bhfeidhm, cláraigh cuardach saincheaptha dó. Mar shampla:

Code
from django.db.models import Field
from django.db.models.lookups import Exact


class MyField(Field): ...


class MyFieldExact(Exact):
    def get_prep_lookup(self):
        # do_custom_stuff_for_myfield
        ...


MyField.register_lookup(MyFieldExact)

django.contrib.gisLink to this heading

  • Titear tacaíocht do SpatiaLite <3.0 agus GEOS <3.3.

  • Baintear an ailias comhoiriúnachta add_postgis_srs () ``ar chúl do `django.contrib.gis.utils.add_srs_entry ().

  • Ar Oracle/GIS, filleann an fheidhm chomhiomlán:: class: ~django.contrib.gis.db.Models.Functions.Area float anois in ionad Decimal.Decimal. (Tá sé fós fillte i dtomhas méadar cearnach.)

  • Déantar an ionadaíocht réamhshocraithe: class: ~django.contrib.gis.geos.geosgeometry (aschur WKT) a ghearradh de réir réamhshocraithe. Is é sin, in ionad POINT (23.0000000000000000 5.5000000000000000) ``, gheobhaidh ``POINT (23 5.5).

Tá uasmhéid comhlachta iarratais agus líon na bparaiméadair GET/POST teorantaLink to this heading

Cuidíonn dhá shocrú nua le hionsaithe diúltaithe seirbhíse a mhaolú trí iarratais mhóra:

Seans go mbeidh ar iarratais a fhaigheann postanna foirmeacha neamhghnácha móra na socruithe seo a choigeartú.

IlghnéitheachLink to this heading

  • <QuerySet >Tá an repr () ``de `QuerySet` fillte i`` ``chun é a dhíbhriú ó liosta simplí agus é á dífhabhtú.

  • ``utils.version.get_version () filleadh: pep: leaganacha iarrthóirí scaoilte comhlíontacha `440 (m.sh. '1.10rc1' in ionad '1.10c1').

  • Ceanglaítear anois gur teaghráin de 64 alfa-uimhriúla iad luachanna dearbháin CSRF; cuirtear teaghráin de 64 carachtar in ionad luachanna 32 alfa-uimhriúla, mar atá socraithe ag leaganacha níos sine de Django de réir réamhshocraithe. Meastar luachanna eile a bheith neamhbhailí. Níor cheart go ndéanfadh sé seo difear ach d’fhorbróirí nó d’úsáideoirí a athsholáthróidh na comharthaí seo.

  • Baintear an socrú LOGOUT_URL` toisc nár bhain Django úsáid as ó roimh 1.0. úsáideann é i do thionscadal, is féidir leat é a chur le socruithe do thionscadail. Ba é an luach réamhshocraithe ``'/cuntais/logáil/'.

  • Tá rudaí le modh close () ``mar chomhaid agus gineadóirí a chuirtear chuig: class: `~django.http.httpResponse` dúnta anois láithreach in ionad nuair a ghlaonn an freastalaí WSGI ``close () ar an bhfreagra.

  • Baintear glao iomarcach transaction.atomic () ``i `QuerySet.Update_or_create (). D'fhéadfadh sé seo dul i bhfeidhm ar chomhaireamh ceisteanna a ndearnadh tástáil ag ``TransactionTestCase.assertNumQueries () ``.

  • Baintear tacaíocht do skip_validation` i BaseCommand.execute (**roghanna) ``. Úsáid ``skip_checks (cuireadh i Django 1.7) ina ionad.

  • : djadmin: Ardaíonn loaddata CommandError anois in ionad rabhadh a thaispeáint nuair nach bhfaightear an comhad daingneáin sonraithe.

  • In ionad rochtain a fháil go díreach ar an tréith Logentry.change_message, is fearr anois glaoch ar an modh ``Logentry.get_change_message () ``a sholáthróidh an teachtaireacht sa teanga reatha.

  • Ardaíonn na tuairimí earráide réamhshocraithe TemplateDoesNotExist anois má shonraítear template_name nach bhfuil ann.

  • Baintear an argóint eochairfhocal roghnaí` neamhúsáidte den mhodh ``Relect agus SelectMultiple render () ``giuirléidí ``Render ()`. Baintear an argóint roghna den mhodh render_options () ``freisin, rud a fhágann go bhfuil `roghnaí_roghnaithe an chéad argóint.

  • Déanfaidh tástálacha a sháraíonn srianta bunachar sonraí in-iarchurtha earráid anois nuair a reáchtáiltear iad ar bhunachar sonraí a thacaíonn le srianta in-iarchurtha.

  • Úsáideann orduithe bainistíochta ionsuite anois innéacsú eochracha i “roghanna”, m.sh. options ['verbosity'] ``, in ionad ``options.get () agus ní dhéanann siad aon chineál comhéigeantach a thuilleadh. D'fhéadfadh sé seo a bheith ina fhadhb má tá tú ag glaoch orduithe ag baint úsáide as Command.execute () ``(a sheachnaíonn an parser argóint a leagann luach réamhshocraithe) in ionad:func: `~django.core.management.call_command`. In ionad glaoch ar ``Command.execute () ``, pas an réad ordaithe mar an chéad argóint chuig ``call_command ().

  • Diúltaíonn: ~django.contrib.auth.backends.modelBackend agus:class: ~django.contrib.auth.backends.remoteUserBackend úsáideoirí neamhghníomhacha anois. Ciallaíonn sé seo nach féidir le húsáideoirí neamhghníomhacha logáil isteach agus logálfar amach iad má aistrítear iad ó is_active=true go False. Má theastaíonn an t-iompar roimhe seo uait, bain úsáid as an nua:class: ~django.contrib.auth.backends.allowAllUsersModelBackend nó:class: ~django.contrib.auth.backends.allowAllUsersRemoteUserBackend in:setting: AUTHENTICATION_BACKENDS ina ionad.

  • In light of the previous change, the test client's login() method no longer always rejects inactive users but instead delegates this decision to the authentication backend. force_login() also delegates the decision to the authentication backend, so if you're using the default backends, you need to use an active user.

  • django.views.i18n.set_language() may now return a 204 status code for AJAX requests.

  • The base_field attribute of RangeField is now a type of field, not an instance of a field. If you have created a custom subclass of RangeField, you should change the base_field attribute.

  • Cuirtear ranganna Middleware a thionscnamh anois nuair a thosaíonn an freastalaí seachas le linn na chéad iarratais.

  • <user-is-auth-anon-deprecation>Má sháraitheann tú is_autentifikated () ``nó ``is_anonymné () i samhail úsáideora saincheaptha, ní mór duit iad a thiontú go tréithe nó airíonna mar a thuairiscítear in:ref: `an nóta dímheasa `.

  • Nuair a úsáidtear: attr: ModelAdmin.save_ <django.contrib.admin.ModelAdmin.save_as>as = True `, atreoraíonn an cnaipe “Sábháil mar nua” anois chuig an radharc athraithe don réad nua in ionad chuig liosta athraithe an tsamhail. <django.contrib.admin.ModelAdmin.save_as_continue>Má theastaíonn an t-iompar roimhe seo uait, socraigh an tréith nua:attr: `ModelAdmin.save_as_continue `do `False`.

  • Tá an tréith HTML “riachtanach” ag réimsí foirme riachtanacha anois. <django.forms.Form.use_required_attribute>Socraigh an tréith: attr: Form.USE_Required_Attribute `le `False` chun é a dhíchumasú. D'fhéadfá an tréith novalidate a chur le ```` mura dteastaíonn bailíochtú brabhsála <form>í uait. <django.forms.Widget.use_required_attribute>Chun an tréith riachtan a dhíchumasú ar ghuirléidí saincheaptha, athsháraigh an modh:meth: `Widget.USE_REQUIRED_ATTRIBUTE () `.

  • Ní bhaineann an láimhseálaí WSGI ábhar na bhfreagraí a thuilleadh ó iarratais nó freagraí HEAD` le ``status_code de 100-199, 204, nó 304. Cuireann an chuid is mó de na freastalaithe gréasáin an t-iompar seo Leanann na “socruithe freagartha” seo i bhfeidhm ag freagraí a aisghabhadh ag úsáid cliant tástála Django.

  • Samhail. Faigheann __init__ () ```Django.db.Models.Deferred anois mar luach na réimsí iarchurtha.

  • An Samhail. Baintear tréith _athraingthe ``mar aicmí samhail dinimiciúla nuair a úsáidtear ``querySet.Defer () agus ``only () ``baintear.

  • Storage.save() no longer replaces '\' with '/'. This behavior is moved to FileSystemStorage since this is a storage specific implementation detail. Any Windows user with a custom storage implementation that relies on this behavior will need to implement it in the custom storage's save() method.

  • Príobháideach:Class: ~django.db.models.filefield ní thuilleadh ar mhodhanna get_directory_name () ``agus `get_filename () a thuilleadh (agus tá siad curtha anois) ar athrú neamh-chomhoiriúnach é d'úsáideoirí a sháraíonn na modhanna sin ar réimsí saincheaptha. <django.core.files.storage.Storage.generate_filename>Chun an cód den sórt sin a oiriúnú, déan filefield.generate_filename () ```nó: meth: `Storage.generate_filename () ina ionad. B'fhéidir go mbeadh sé indéanta a úsáid:attr: ~django.db.models.filefield.upload_to freisin.

  • Ní ghearrtar ábhar an phoist a sheolann AdminEmailHandler ag 989 carachtar a thuilleadh. Má bhí tú ag brath ar fad teoranta, déan an t-ábhar a ghearradh ort féin.

  • Baintear abairtí príobháideacha Django.db.Models.Expressions.Date agus DateTime`. Soláthraíonn na nathanna nua:class: ~django.db.models.functions.trunc an fheidhmiúlacht chéanna.

  • Baintear na tréithe _base_manager agus _default_manager ó chásanna samhail. Tá siad inrochtana ar an rang samhail.

  • Ag rochtain a fháil ar réimse scriosta ar shampla samhail, m.sh. tar éis del obj.field, luach an réimse a athluchtú in ionad AttributeError a ardú.

  • Má dhéanann tú fo-aicme AbstractBaseUser agus má sháraíonn tú clean () ``, cinnte go nglacann ``super (). :meth: Glaítear .AbstractBaseUser.Normalize_UserName i modh nua:meth: .AbstractBaseUser.clean.

  • Tugann API príobháideach django.forms.models.model_to_dict () ``tacar fiosrúcháin seachas liosta de na príomheochracha do ``ManyTomanyFields.

  • Má tá django.contrib.staticfiles` suiteáilte, úsáideann an clib teimpléad:ttag: static an stóráil staticfiles chun an URL a thógáil seachas an luach a cheangal le STATIC_ROOT`. Ionchódaíonn an cur chuige nua an URL, a d'fhéadfadh a bheith comhoiriúnach ar chúl i gcásanna amhail blúire a áireamh i gcosán, m.sh. {% static 'img.svg #fragment'%} `, ós rud é go bhfuil an `# ionchódaithe mar %23`. Chun oiriúnú, bog an blúire lasmuigh den chlib teimpléad: {% static 'img.svg'%} #fragment.

  • Nuair a bhíonn USE_L10N True, cuirtear logánú i bhfeidhm anois ar na scagairí:tfilter: dáta agus:tfilter: time nuair nach sonraítear aon teaghrán formáide. Úsáidtear na sonraitheoirí DATE_FORMAT agus TIME_FORMAT ón áitear gníomhach in ionad na socruithe den ainm céanna.

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

Sannadh díreach le heochair eachtrach droim nó gaol go leorLink to this heading

In ionad rudaí gaolmhara a shannadh ag úsáid sannadh díreach:

Python console
>>> new_list = [obj1, obj2, obj3]
>>> e.related_set = new_list

Úsáid an modh: meth: ~django.db.models.fields.related.relatedManager.set curtha leis i Django 1.9:

Python console
>>> e.related_set.set([obj1, obj2, obj3])

Cuireann sé seo cosc ar mhearbhall faoi shannadh mar thoradh ar shábháil intuigthe.

Neamh-Time-Area: Class: ~django.core.files.storage.storage APILink to this heading

Tá na sean-mhodhanna, neamh-eolach ar chrios ama accsed_time () ``, `created_time (), agus modified_time () `, modhnaithe () ``a dhíchur i bhfabhar na modhanna nua ``get_*_time ()`.

Ba chóir go gcuirfeadh cúltaca stórála tríú páirtí na modhanna nua a chur i bhfeidhm agus na seancinn a mharcáil Go dtí sin, déanann na modhanna nua get_*_time () ``ar an mbon:class: `~django.core.files.storage` a thiontú ``datetimes ó na sean-mhodhanna de réir mar is gá agus scaoileann siad rabhadh dipraiticiúcháin de réir mar a dhéanann siad amhlaidh.

Féadfaidh cúltaca stórála tríú páirtí na sean-mhodhanna a choinneáil chomh fada agus is mian leo tacú le leaganacha níos luaithe de Django.

django.contrib.gisLink to this heading

  • Tá na modhanna get_srid () ``agus `set_srid () de:class: ~django.contrib.gis.geos.geosgeometry i bhfabhar na maoine: attr: ~django.contrib.gis.geos.geosgeometry.srid.

  • Tá na modhanna get_x () ``, `set_x (), get_y () `, set_y ()`, get_z () `, agus set_z () modhanna de:class: ~django.contrib.gis.geos.point i bhfabhar an x' Airíonna ``, ``y, agus z.

  • Tá na modhanna get_coords () ``agus `set_coords () de:class: ~django.contrib.gis.geos.point i bhfabhar na maoine tuple.

  • Tá an maoin cascaded_union` de:class: ~django.contrib.gis.geos.multipolygon a dhíchur i bhfabhar na maoine: attr: ~django.contrib.gis.geos.geosgeometry.unary_union.

  • Tá an fheidhm ``django.contrib.gis.utils.precision_wkt () díluaite i bhfabhr:class: `~django.contrib.gis.geos.wktWriter.

Réimse samhail CommaseParatedIntegerFieldLink to this heading

CommaseParatedIntegerField díscoite i bhfabhr:class: ~django.db.models.charfield leis an bailíochtaí:func: ~django.core.validators.validate_comma_separated_integer_list bailíochtaithe:

Code
from django.core.validators import validate_comma_separated_integer_list
from django.db import models


class MyModel(models.Model):
    numbers = models.CharField(..., validators=[validate_comma_separated_integer_list])

Má tá Oracle á úsáid agat, úsáideann Charfield cineál réimse bunachar sonraí difriúil (NVARCHAR2) ná CommaseParatedIntegerField (VARCHAR2). Ag brath ar do shocruithe bunachar sonraí, d'fhéadfadh sé seo ionchódú difriúil a thabhairt le tuiscint, agus dá bhrí sin fad difriúil (i mbetaí) don ábhar céanna. Má tá do luachanna stóráilte níos faide ná an teorainn 4000 beit de NVARCHAR2, ba chóir duit Textfield (NCLOB`) a úsáid ina ionad. Sa chás seo, má tá aon cheisteanna agat a ghrúpaíonn de réir an réimse (m.sh. anótáil a dhéanamh ar an tsamhail le comhiomlánú nó ag baint úsáide as `difriúil () `) beidh ort iad a athrú (chun an réimse a chur siar).

Cuardach ceisteanna __searchLink to this heading

Tá an cuardach chuardach, a thacaíonn le MySQL amháin agus atá thar a bheith teoranta i ngnéithe, míshuanta. Cuardach saincheaptha in ionad é:

Code
from django.db import models


class Search(models.Lookup):
    lookup_name = "search"

    def as_mysql(self, compiler, connection):
        lhs, lhs_params = self.process_lhs(compiler, connection)
        rhs, rhs_params = self.process_rhs(compiler, connection)
        params = lhs_params + rhs_params
        return "MATCH (%s) AGAINST (%s IN BOOLEAN MODE)" % (lhs, rhs), params


models.CharField.register_lookup(Search)
models.TextField.register_lookup(Search)

Ag baint úsáide as User.is_Authenticated () ``agus ``User.is_Anonymous () mar mhodhannaLink to this heading

Is airíonna anois iad na modhanna is_autenticated () ``agus ``is_anonymus () de:class: ~django.contrib.auth.models.abstractBaseUser agus:class: ~django.contrib.auth.models.anonymousUser aicmí anois. Oibreoidh siad fós mar mhodhanna go dtí Django 2.0, ach úsáideann gach úsáid i Django rochtain tréithe anois.

Mar shampla, má úsáideann tú: class: ~django.contrib.auth.middleware.AuthenticationMiddleware agus má theastaíonn uait a fháil amach an bhfuil an t-úsáideoir logáilte isteach faoi láthair bheadh úsáid as:

Code
if request.user.is_authenticated:
    ...  # Do something for logged-in users.
else:
    ...  # Do something for anonymous users.

in ionad ``request.user.is_autenticated () ``.

Seachnaíonn an t-athrú seo sceitheadh faisnéise de thaisme má dhéanann tú dearmad glaoch ar an modh, m.sh.:

Code
if request.user.is_authenticated:
    return sensitive_information

Má sháraíonn tú na modhanna seo i samhail úsáideora saincheaptha, ní mór duit iad a athrú go hairíonna nó tréithe.

Úsáideann Django réad CallableBool chun ligean do na tréithe seo oibriú mar mhaoin agus mar mhodh araon. Dá bhrí sin, go dtí go gcríochnaíonn an tréimhse díghabhála, ní féidir leat na hairíonna seo a chur i gcomparáid ag baint úsáide as an oibreoir Is é sin, ní oibreoidh an méid seo a leanas:

Code
if request.user.is_authenticated is True:
    ...

An leath “éalaithe” de django.utils.safestring`Link to this heading

Tá an fheidhm mark_for_escaping () ``agus na haicmí a úsáideann sé: ``EscapeData, EscapeBytes`, EscapeText`, EscapeString`, agus EscapeUnicode dímheasta.

Mar thoradh air sin, tá iompar “leisciúil” an scagaire ``éalaithe ``(áit a chuirfí i bhfeidhm é i gcónaí mar an scagaire deireanach is cuma cá raibh sé le feiceáil sa slabhra scagaire) a dhíchur. Athróidh an scagaire chun cur i bhfeidhm láithreach:func: ~django.utils.html.conditional_escape i Django 2.0.

IlghnéitheachLink to this heading

  • Tá an rogha makemigrations --exit a dhíchur i bhfabhar an rogha: makemigrations --check.

  • ``django.utils.functional.allow_lazy () ``díluaite i bhfabhar an fheidhm nua:func: ~django.utils.functional.keep_lazy is féidir a úsáid le comhréir maisiúcháin níos nádúrtha.

  • Tá an rogha shell --plain ``a dhíchur i bhfabhar ``-i python--interface python.

  • Tá allmhairiú ón modúl django.core.urlresolvers a dhíchur i bhfabhar a shuíomh nua, :mod: django.urls.

  • Tá an modh teimpléad Context.has_key () ``a dhíchur i bhfabhar ``in.

  • An tréith phríobháideach virtual_fields de Samhail. Tá _meta` a dhíchur i bhfabhar príobháideach_fields.

  • Na hargóintí eochairfhocal príobháideacha virtual_only i field.contribute_to_class () ``agus ``virtual` i Samhail. Tá _meta.add_field () ``a dhíchur i bhfabhar ``príobháideach_only` agus ``príobháideach`, faoi seach.

  • Tá na tuairimí javascript_catalog () ``agus ``json_catalog ()` a dhíchur i bhfabhar radhairc ranga-bhunaithe: class: ~django.views.i18n.javascriptCatalog agus:class: ~django.views.i18n.jsonCatalog.

  • In oidhreacht il-tábla, cuirtear cur chun cinn intuigthe OneToonefield go parent_link` a chur chun cinn intuigthe. Cuir parent_link=True le réimsí den sórt sin.

  • An API príobháideach ``Giuirléid. Déantar _format_value () ``a phoiblí agus athainmnítear u:meth: ~django.forms.widget.format_value. Oibreoidh an sean-ainm trí thréimhse díghabhála.

  • Private FileField methods get_directory_name() and get_filename() are deprecated in favor of performing this work in Storage.generate_filename().

  • Tá meán-earraí sean-stíl a úsáideann Settings.middleware_classes a dhíchur. :ref: Cuir sean-mheánearraí saincheaptha in oiriúint `agus ba <upgrading-middleware>in úsáid as an socrú nua:setting: `MIDDLEWARE.

Gnéithe bainte i 1.10Link to this heading

Tá na gnéithe seo tar éis deireadh a dtimthriall díscrúdaithe bainte amach agus baintear iad i Django 1.10. Féach: Ref: deprecated-features-1.8 le haghaidh sonraí, lena n-áirítear conas úsáid na ngnéithe seo a bhaint.

  • Baintear tacaíocht chun glaoch ar SQLCompiler go díreach mar ainm chun a mhodh quote_name_unless_alias a ghlaoch.

  • Baintear na clibeanna teimpléad timthriall` agus ``firstof ón leabharlann clibeanna teimpléad todhcha.

  • Baintear ``django.conf.urls.patterns () ``.

  • Baintear tacaíocht don argóint prefix chuig ``django.conf.urls.i18n.i18n_patterns () ``.

  • Baintear SimpletestCase.urls.

  • Ardaíonn comhaireamh mícheart luachanna neamhphacáilte sa chlib teimpléad for eisceacht seachas teip go ciúin.

  • Baintear an cumas:func: ~django.urls.reverse URLanna ag baint úsáide as cosán poncaí Python.

  • Baintear an cumas cosán poncaigh Python a úsáid do na socruithe LOGIN_URL agus LOGIN_REDIRECT_URL.

  • Titeann tacaíocht do optparse` le haghaidh orduithe bainistíochta saincheaptha.

  • Baintear an rang Django.Core.Management.NoArgsCommand.

  • Baintear modúl django.core.context_processors.

  • Baintear modúl django.db.models.sql.aggregates.

  • Baintear modúl django.contrib.gis.db.models.sql.aggregates.

  • Baintear na modhanna agus na hairíonna seo a leanas de Django.db.sql.query.query`:

    • Airíonna: aggregates agus aggregate_select

    • Modhanna: add_aggregate, set_aggregate_mask`, agus append_aggregate_mask.

  • Baintear django.template.resolve_variable.

  • Baintear na APIs príobháideacha seo a leanas ó:class: Django.db.Models.Options.Options (Model. _meta):

    • ``get_field_by_ainm () `

    • ``faigh_all_field_ainmneacha () `

    • ``faigh_fields_with_model () ``

    • ``faigh_réimsí coincréite_with_model () `

    • ``get_m2m_with_model () `

    • ``faigh_all_earra_bhainteach_() `

    • ``Faigh_rudaí gaolmhaithe_le_samhail () `

    • ``faigh_all_bhainteach_go leor le go leor rudaí () `

    • ``faigh_all_gaol_m2m_rudaí_le_samhail () `

  • Baintear an argóint error_message de django.forms.regexfield`.

  • Ní thacaíonn an scagaire unordered_list le seanliostaí stíl a thuilleadh.

  • Baintear tacaíocht d'argóintí teaghrán view chuig url () `.

  • An shim comhoiriúnach ar chúl chun Django.Forms.form a athainmniú. Baintear _has_modified () ``go ``has_changes ().

  • Baintear an scagaire teimpléad ``removetags ``.

  • Baintear na feidhmeanna remove_tags () ``agus `strip_entity () i django.utils.html`.

  • Baintear an argóint is_admin_site le ``django.contrib.auth.views.password_reset () ``.

  • Baintear django.db.models.field.subclassing.subfieldbase.

  • Baintear django.utils.checksums.

  • Baintear an tréith original_content_type_id ar Django.contrib.admin.helpers.inlineAdminForm`.

  • Baintear an shim comhoiriúnachta ar ais chun ligean do formMixin.get_form () ``a shainiú gan aon luach réamhshocraithe argóint ``form_class.

  • Baintear na socruithe seo a leanas, agus ní mór duit uasghrádú a dhéanamh chuig an socrú:setting: TEMPLATES:

    • CEADÁIL_INCLUDE_FRÉAMH

    • PRÓISEÁLAITHE COMHTHÉACS TEIMPLÉAD

    • TEMPLATE_DEBUG

    • TEIMPLÉAD_DIRS

    • TEIMPLÉ_LOADERS

    • TEIMPLÉAD_STRING_IFE_NEAMHBHAILÍ

  • Baintear an alias comhoiriúnachta ar chúl Django.Template.Loader.

  • Django template objects returned by get_template() and select_template() no longer accept a Context in their render() method.

  • Template response APIs enforce the use of dict and backend-dependent template objects instead of Context and Template respectively.

  • Baintear an paraiméadar current_app don fheidhm agus na ranganna seo a leanas:

    • ``django.shortcuts.render () ``

    • ``Django.Template.context () ``

    • ``Django.Template.requestContext () ``

    • ``Django.Template.Response.TemplateResponse () ``

  • Baintear na paraiméadair foclóire agus context_instance do na feidhmeanna seo a leanas:

    • ``django.shortcuts.render () ``

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

    • ``django.template.loader.render_to_string () ``

  • Baintear an paraiméadar dirs` do na feidhmeanna seo a leanas:

    • ``django.template.loader.get_template () ``

    • ``django.template.loader.select_template () ``

    • ``django.shortcuts.render () ``

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

  • Cumasaítear fíorú seisiúin beag beann cibé an bhfuil DJANGO.contrib.auth.middleware.SessionAuthenticationMiddleware'` i `MIDDLEWARE_CLASSES nó nach bhfuil. Níl aon chuspóir ag SessionAuthenticationMiddleware` a thuilleadh agus is féidir é a bhaint as MIDDLEWARE_CLASSES. Coinnítear é mar stub go dtí Django 2.0 mar chúirtéis d'úsáideoirí nach léann an nóta seo.

  • Baintear tréith príobháideach Django.db.Models.Field.Related.

  • Baintear an rogha --list den ordú bainistíochta imirce.

  • Baintear an chlib teimpléad ssi.

  • Baintear tacaíocht don oibreoir comparáide = sa chlib teimpléad ``if ``.

  • Baintear na cinn comhoiriúnachta ar chúl chun ligean Storage.get_available_name () ``agus ``Storage.save () a shainiú gan argóint max_long.

  • Baintear tacaíocht don chomhréir oidhreachta % (<foo>) s i ModelFormMixin.Success_URL`.

  • Baintear modhanna comhiomlána GeoquerySet ``bailiú () ``, `méid (), extent3d () `, make_line (), agus unionagg () `.

  • Baintear an cumas ContentType.Name a shonrú agus sampla cineál ábhair á chruthú.

  • Baintear tacaíocht do sheanshíniú allow_migrate.

  • Baintear tacaíocht do chomhréir {% cycle%} a úsáideann argóintí scartha le camóg.

  • Is é an rabhadh go n-eisíodh: class: ~django.core.signing.signer nuair a thugtar deighilteoir neamhbhailí ina ValueError anois.