Nótaí scaoilte Django 1.9Link to this heading
1 Nollaig, 2015
Fáilte go dtí Django 1.9!
Clúdaíonn na nótaí scaoilte seo na:ref: gnéithe nua <whats-new-1.9>, chomh maith le roinnt athruithe: ref: athruithe neamh-chomhoiriúnacha ar ais<backwards-incompatible-1.9> beidh tú ag iarraidh a bheith ar an eolas fúthu agus tú ag uasghrádú ó Django 1.8 nó leaganacha níos sine. <deprecated-features-1.9>Chuireamar: Ref: thit roinnt <removed-features-1.9>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
Éilíonn Django 1.9 Python 2.7, 3.4, nó 3.5. 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.8 an ceann deireanach a thacaíonn le Python 3.2 agus 3.3.
Cad atá nua i Django 1.9Link to this heading
Gníomhartha a dhéanamh tar éis idirbheart a dhéanamhLink to this heading
Ceadaíonn an crúca nua:func: `~django.db.transaction.on_commit gníomhartha a dhéanamh tar éis idirbheart bunachar sonraí a dhéanamh go rathúil. Tá sé seo úsáideach le haghaidh tascanna mar ríomhphoist fógra a sheoladh, tascanna scuaine a chruthú, nó táscáin a chur ar bhailí.
Tá an fheidhmiúlacht seo ón bpacáiste: pypi: django-transaction-hooks comhtháite i Django.
Bailíochtú pasfhocalLink to this heading
Cuireann Django bailíochtú pasfhocal ar fáil anois chun cabhrú le húsáid pasfhocail laga ag úsáideoirí a chosc. Tá an bailíochtú comhtháite sna foirmeacha athraithe agus athshocraithe pasfhocal san áireamh agus tá sé simplí a chomhtháthú in aon chód eile. Déanann bailíochtaithe amháin nó níos mó bailíochtú, cumraithe sa shocrú nua:setting: AUTH_PASSWORD_VALIDATORS.
Tá ceithre bhailíochtóir san áireamh i Django, ar féidir leo fad íosta a fhorfheidhmiú, an pasfhocal a chur i gcomparáid le tréithe an úsáideora cosúil lena n-ainm, a chinntiú nach bhfuil pasfhocail uimhriúla go hiomlán, nó seiceáil i gcoinne liosta pasfhocail choitianta. Is féidir leat ilbhailíochtóirí a chur le chéile, agus tá roghanna cumraíochta saincheaptha ag roinnt bailíochtóirí. Mar shampla, is féidir leat a roghnú liosta saincheaptha de phasfhocail choitianta a sholáthar. Soláthraíonn gach bailíochtóir téacs cabhrach chun a riachtanais a mhíniú don úsáideoir.
De réir réamhshocraithe, ní dhéantar aon bhailíochtú agus glactar leis na pasfhocail go léir, mar sin mura socraíonn tú: setting: AUTH_PASSWORD_VALIDATORS, ní fheicfidh tú aon athrú. I dtionscadail nua a cruthaíodh leis an teimpléad réamhshocraithe: djadmin: startproject, cumasaítear tacar simplí bailíochtóirí. Chun bailíochtú bunúsach a chumasú sna foirmeacha auth san áireamh do do thionscadal, d'fhéadfá a shocrú, mar shampla:
AUTH_PASSWORD_VALIDATORS = [
{
"NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator",
},
{
"NAME": "django.contrib.auth.password_validation.MinimumLengthValidator",
},
{
"NAME": "django.contrib.auth.password_validation.CommonPasswordValidator",
},
{
"NAME": "django.contrib.auth.password_validation.NumericPasswordValidator",
},
]
Féach:ref: bailíochtú pasfhocal le haghaidh tuilleadh sonraí.
Meascáin ceadúnais le haghaidh tuairimí rang-bhunaitheLink to this heading
Seolann Django anois leis na meascáin: class: ~django.contrib.auth.mixins.accessMixin, :class: ~django.contrib.auth.mixins.loginrequiredMixin, :class: ~django.contrib.auth.mixins.permissionrequiredMixin, agus:class: ~django.contrib.contrib.Mixins.userPassestestMixin chun feidhmiúlacht an ``django.contrib.auth.decorators ``a sholáthar le haghaidh tuairimí rang-bhunaithe. Tógadh na meascáin seo ón tionscadal django-braces, nó spreagtar iad ar a laghad.
Tá cúpla difríocht idir cur i bhfeidhm Django agus ``django-braces ``', áfach:
Ní féidir an tréith: Attr: ~django.contrib.auth.mixins.accessMixin.raise_exception a bheith ach
TruenóFalse. Ní thacaítear le heisceachtaí saincheaptha nó glaonna.Ní ghlacann an modh:Meth: ~django.contrib.auth.mixins.accessMixin.handle_no_permission argóint
iarraidh`. Tá an t-iarratas reatha ar fáil in ``self.request.Ní ghlacann an saincheaptha
test_func () ``o:class: `~django.contrib.auth.mixins.userPassestestMixin` argóint ``úsáideora. Tá an t-úsáideoir reatha ar fáil inself.request.user.Tacaíonn an tréith: attr: `permission_required <django.contrib.auth.mixins.PermissionRequiredMixin>`le sreang (cead amháin a shainmhíníonn) nó le liosta/tiúpla teaghráin (ceadanna iolracha a shainiú) nach mór a chomhlíonadh chun rochtain a dheonú.
Ceadaíonn an tréith nua:attr: ~django.contrib.auth.mixins.accessmixin.permission_denied_message teachtaireacht a chur chuig an eisceacht
PermissionDenied.
Stíl nua do contrib.adminLink to this heading
Spóirt an riarthóir dearadh nua-aimseartha, cothrom le deilbhíní SVG nua a bhreathnaíonn foirfe ar scáileáin HiDPI. Soláthraíonn sé eispéireas lánfheidhmeach fós do bhrabhsálaithe YUI A-grád. D’fhéadfadh leibhéil éagsúla díghrádaithe a bheith ag brabhsálaithe níos sine.
Tástálacha reatha go comhthreomharLink to this heading
Tacaíonn an t-ordú: DjaDmin: tástála anois le rogha a: `--comhthreomhar `chun tástálacha tionscadail a reáchtáil i bpró <test --parallel>isis iolracha go comhthreomhar.
Faigheann gach próiseas a bhunachar sonraí féin. Ní mór duit a chinntiú nach bhfuil rochtain ag cásanna tástála éagsúla ar na hacmhainní céanna Mar shampla, ba cheart do chásanna tástála a théann i dteagmháil leis an gcóras comhaid eolaire sealadach a chruthú lena n-úsáid féin.
Tá an rogha seo cumasaithe de réir réamhshocraithe do shraith tástála Django féin ar fáil:
tacaíonn an OS leis (gach ceann ach Windows)
tacaíonn cúltaca an bhunachar sonraí leis (na cúltaca ionsuite go léir ach Oracle)
MionghnéitheLink to this heading
django.contrib.adminLink to this heading
Tá tréithe
model_admin ``nó ``admin_siteag tuairimí riaracháin anois.<app><model><pk>Athraíodh URL an radharc athraithe riaracháin (bhí sé ag
/admin//<app>//de réir réamh <model><pk>shocraithe agus tá sé anois ag ``/admin///change/ ``). Níor cheart go ndéanfadh sé seo difear d'iarratas mura bhfuil URLanna riaracháin crua-chódaithe agat. <admin-reverse-urls>Sa chás sin, cuir na naisc sin in ionad: ref: `URLanna riaracháin a aisiompú `ina ionad sin. Tabhair faoi deara go n-atreoraíonn an sean-URL go dtí an ceann nua fós le haghaidh comhoiriúnacht ar ais, ach féadfar é a bhaint i leagan amach anseo.ModelAdmin.get_list_select_related()was added to allow changing theselect_related()values used in the admin's changelist query based on the request.<django.contrib.admin.AdminSite.each_context>Cuireadh an t-athróg comhthéacs available_apps`, a liostaíonn na feidhmchláir atá ar fáil don úsáideoir reatha, leis an modh: meth: `adminsite.each_context () `.
<django.contrib.admin.ModelAdmin.empty_value_display>:attr: Adminsite.empty_value_display `agus:attr: <django.contrib.admin.AdminSite.empty_value_display>`ModelAdmin.empty_value_display cuireadh leis chun taispeáint luachanna folmha i liosta athruithe riaracháin a shárú. Is féidir leat an luach do gach réimse a shaincheapadh freisin.
Cuireadh imeachtaí jQuery leis: ref: `nuair a chuirtear foirm inlíne leis nó baintear <admin-javascript-inline-form-events>`ar an leathanach foirm athraithe.
Cuimsíonn an giuirléid roghnaithe ama rogha '6 p.m' chun comhsheasmhainneacht roghanna réamhshainithe a bheith agat gach 6 uair an chloig.
Tacaíonn giniúint slug JavaScript anois le carachtair na Rómáine.
django.contrib.admindocsLink to this heading
Déanann an chuid samhail den admindocs cur síos anois ar mhodhanna a thógann argóintí, seachas neamhaird a dhéanamh orthu.
django.contrib.authLink to this heading
Méadaíodh 20% 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.pbkdf2PasswordHasherchun an luach réamhshocraithe a athrú.Déanfaidh an BCryptsha256PasswordHasher` pasfhocail a nuashonrú anois má athraítear a thréith ``rounds`.
Bogadh
AbstractBaseUseragusBaseUserManagerchuig modúl nuadjango.contrib.auth.base_userionas gur féidir iad a allmhairiú gandjango.contrib.autha chur san áireamh in:setting: INSTALLED_APPS (ag déanamh amhlaidh rabhadh i leaganacha níos sine agus ní thacaíonn sé i Django 1.9).The permission argument of
permission_required()accepts all kinds of iterables, not only list and tuples.De bharr nua:class: ~django.contrib.auth.middleware.persistentRemoteUserMiddleware is féidir
REMOTE_USERa úsáid le haghaidh socruithe nach bhfuil an ceannteideal ach ar leathanaigh logála isteach in ionad gach iarratas sa seisiún.Glacann an radharc
django.contrib.auth.views.password_reset () ``le paraiméadar ``extra_email_context.
django.contrib.contenttypesLink to this heading
Is féidir anois: attr: ~django.db.models.options.ORDER_with_RESPECT_TO a úsáid le
GenericForeignKey.
django.contrib.gisLink to this heading
Tá gach modh
GeoquerySeta dhíscríobh agus cuireadh: doc: `feidhmeanna bunachar sonraí coibhéiseach 'ina ionad. </ref/contrib/gis/functions> Chomh luath agus a cuirtear na modhanna oidhreachta in ionad i do chód, ba cheart go mbeadh tú in ann an “Geomanager” speisialta a bhaint as do ranganna cumasaithe GIS fiú.<raster-data-source-objects>Tacaíonn an comhéadan GDAL anois le comhadbhunaithe agus in-chuimhne:ref: `rudaí GDAlraster `ó shonraí amh. Cuireadh socraithe le haghaidh airíonna raster cosúil le luachanna teilgean nó picteilín.
<creating-and-saving-raster-models>Maidir le húsáideoirí PostGIS, ceadaíonn an nua:class: ~django.contrib.gis.db.models.rasterfield: ref: `rudaí GDAlraster a stóráil `. Tacaíonn sé le cruthú innéacs spásúil uathoibríoch agus athléiriú nuair a shábháil Ní thacaíonn sé le fiosrúchán spásúil fós.
Ligeann an <django.contrib.gis.gdal.GDALRaster.warp>modh nua:meth: `gdalraster.warp () `raster a chreamú trí airíonna raster sprioc-raster a shonrú mar bhunús, leithead, airde nó méid picteilín (i measc eile).
Ligeann an modh nua:meth: gdalraster.transformer () <django.contrib.gis.gdal.GDALRaster.transform>`raster a athrú go córas tagartha spásúil difriúil trí sprioc ``srid` a shonrú.
Ceadaíonn an rang nua:class: ~django.contrib.gis.geoip2.geoip2 bunachair sonraí GeoLite2 MaxMind a úsáid a chuimsíonn tacaíocht do sheoltaí IPv6.
Nuashonraíodh an leagan réamhshocraithe leabharlainne OpenLayers atá san áireamh i giuirléidí ó 2.13 go 2.13.1.
django.contrib.postgresLink to this heading
Tacaíocht bhreise don chuardach: lookup: rangefield.contained_by do roinnt réimsí tógtha i réimsí a fhreagraíonn do na réimsí raon.
Cuireadh
django.contrib.postgres.fields.jsonfieldleis.Cuireadh leis: doc: /ref/contrib/postgres/aggregates.
Cuireadh feidhm bunachar sonraí: class: ~django.contrib.postgres.functions.TransactionNow leis.
django.contrib.sessionsLink to this heading
Athraítear an tsamhail seisiúin agus na ranganna
SessionStoredo na cúltacadbagus cached_db` chun ligean cúltaca seisiúin bunachar sonraí saincheaptha tógáil orthu. Féach: Ref: extending-database-backed-seision-inneallaire le haghaidh tuilleadh sonraí.
django.contrib.sitesLink to this heading
get_current_site()now handles the case whererequest.get_host()returnsdomain:port, e.g.example.com:80. If the lookup fails because the host does not match a record in the database and the host has a port, the port is stripped and the lookup is retried with the domain part only.
CacheLink to this heading
Tá modh
get_or_set () ``anois ag `django.core.cache.backends.base.baseCache.django.views.decorators.cache.never_cache()now sends more persuasive headers (addedno-cache, no-store, must-revalidatetoCache-Control) to better prevent caching. This was also added in Django 1.8.8.
CSRFLink to this heading
Is féidir ainm ceanntásc an iarratais a úsáidtear le haghaidh fíordheimhniú CSRF a shaincheapadh la:setting: CSRF_HEADER_NAME.
Tá ceanntásc tagairtí CSRF bailíochtaithe anois i gcoinne an socruithe:: CSRF_COOKIE_DOMAIN má tá sé socraithe. Féach: ref: how csrf-works le haghaidh sonraí.
Soláthraíonn an socrú nua:setting: CSRF_TRUSTED_ORIGINS bealach chun iarratais neamhshábháilte tras-bhunús (m.sh. POST `) a cheadú thar HTTPS.
Cúltaca bunachar sonraíLink to this heading
Tá an cúltaca PostgreSQL (
django.db.backends.postgresql_psycopg2) ar fáil freisin mardjango.db.backends.postgresql. Leanfaidh an sean-ainm ar fáil le haghaidh comhoiriúnacht ar ais.
Stóráil ComhadLink to this heading
Storage.get_valid_name()is now called when theupload_tois a callable.Filenow has theseekable()method when using Python 3.
FoirmeachaLink to this heading
ModelFormaccepts the newMetaoptionfield_classesto customize the type of the fields. See Sárú ar na réimsí réamhshocraithe for details.Is féidir leat anois an t-ord ina ndéantar réimsí foirme a shonrú leis an tréith: attr: ~django.forms.form.field_order, an t-argóint tógálaí
field_order, nó an modh:meth: ~django.forms.form.ORDER_fields.Is féidir réimír foirme a shonrú taobh istigh de rang foirme, ní amháin nuair a bhíonn foirm á chur i bhfeidhm. Féach: ref: form-prefix le haghaidh sonraí.
Is féidir leat anois:ref: `argóintí eochairfhocal a shonrú <custom-formset-form-kwargs>`a theastaíonn uait a chur chuig tógálaí foirmeacha i bhfoirmeach.
SlugFieldnow accepts anallow_unicodeargument to allow Unicode characters in slugs.CharFieldnow accepts astripargument to strip input data of leading and trailing whitespace. As this defaults toTruethis is different behavior from previous releases.Tacaíonn réimsí foirme anois leis an argóint: attr: ~django.forms.field.disabled, rud a ligeann an giuirléid réimse a thaispeáint faoi dhíchumasú ag brabhsálaithe.
It's now possible to customize bound fields by overriding a field's
get_bound_field()method.
Tuairimí cineálachaLink to this heading
Tá tréithe
view_classagus view_initkwargs` anois ag tuairimí rang-bhunaithe a ghintear ag baint úsáide as ``as_view () ``.method_decorator()can now be used with a list or tuple of decorators. It can also be used to decorate classes instead of methods.
IdirnáisiúnúLink to this heading
<url-internationalization>Atreoraíonn an amharc:func: django.views.i18n.set_language i gceart anois chuig:ref: `URLanna aistrithe `, nuair atá ar fáil.
Oibríonn an radharc ``django.views.i18n.javascript_catalog () ``i gceart anois má úsáidtear é arís agus arís eile le cumraíochtaí éagsúla ar an leathanach céanna.
Fuair an fheidhm:func: django.utils.timezone.make_aware argóint
is_dstchun cabhrú le hamanna débhríochta a réiteach le linn aistrithe DST.Is féidir leat leaganacha áitiúla a úsáid anois le tacaíocht ó gettext. Úsáidtear iad seo de ghnáth le haghaidh teangacha is féidir iad a scríobh i scripteanna éagsúla, mar shampla Laidin agus Cirillic (m.sh. be @latin `).
Cuireadh an dearcadh ``django.views.i18n.json_catalog () `leis chun cabhrú le leabharlann saincheaptha i18n ar thaobh an chliaint a thógáil ar aistriúcháin Django. Tugann sé réad JSON ar ais ina bhfuil catalóg aistriúcháin, socruithe formáidithe, agus riail iolra.
Cuireadh an tréith
name_translatedleis an réad ar ais ag an gclib teimpléad:ttag: get_language_info. Chuir scagaire teimpléad comhfhreagrach leis freisin: :tfilter: language_name_translated.Is féidir leat anois: djadmin: compilemessages a rith ó eolaire fréimhe do thionscadail agus gheobhaidh sé na comhaid teachtaireachta aip go léir a chruthaigh: djadmin: makemessages.
makemessagesnow callsxgettextonce per locale directory rather than once per translatable file. This speeds up localization builds.blocktranssupports assigning its output to a variable usingasvar.Tá dhá theanga nua ar fáil: Spáinnis na Colóime agus Gaeilge na hAlban.
Orduithe BainistíochtaLink to this heading
Ligeann an t-ordú nua:djadmin: sendtestemail duit ríomhphost tástála a sheoladh chun a dhearbhú go héasca go bhfuil seoladh ríomhphoist trí Django ag obair.
Chun inléiteacht an chóid SQL a ghineann: djadmin: sqlmigrate a mhéadú, cuirtear tuairisc na hoibríochta roimh an gcód SQL a ghintear do gach oibríocht imirce.
Tá an t-aschur ordaithe: DJAdmin: dumpdata ordaithe go cinntiúil anois. Thairis sin, nuair a shonraítear an rogha ``--aschur ``, taispeánann sé barra dul chun cinn sa chríochfort freisin.
Tá bratach
--dry-runanois ag an ordú: DjaDmin: createcachetable chun an SQL a phriontáil amach seachas é a fhorghníomhú.Cruthaíonn an t-ordú:djaDmin: startapp comhad
apps.py. Ós rud é nach n-úsáideann sédefault_app_config(:ref: a dhíspreagtha API `<configuring-applications-ref>), ní mór duit cosán cumraíocht an aip a shonrú, m.sh. ``Polls.apps.pollsconfig', in:setting: INSTALLED_APPS chun é a úsáid (in ionadpolls'amháin).Agus cúltaca PostgreSQL á úsáid agat, is féidir leis an ordú:djadmin: dbshell nascadh leis an mbunachar sonraí ag baint úsáide as an bhfocal faire ó do chomhad socruithe (in ionad a cheangal go ndéanfar é a iontráil de láimh).
Is féidir an pacáiste
djangoa reáchtáil mar script, iepython -m django, a iompraíonn mar an gcéanna ledjango-admin.Glacann orduithe bainistíochta a bhfuil an rogha
--noinputacu anois--no-inputmar ainm don rogha sin.
ImirceLink to this heading
Tá imirce tosaigh marcáilte anois le tréith <django.db.migrations.Migration.initial>aicme: attr: inicial = True `a cheadaíonn: rogha: `migrar --fake-initial chun imirce tosaigh a bhrath níos éasca.
Tacaíocht bhreise le haghaidh sraitheadh cásanna
functools.partialagusLazyObject.Agus “None” á sholáthar agat mar luach in:setting: MIGRATION_MODULES, measfaidh Django an aip mar aip gan imirce.
Agus imirce á chur i bhfeidhm, ní ríomhaíonn an chéim “Stáit samhail rindreála” a thaispeántar agus imirce á reáchtáil le verbosity 2 nó níos airde anois ach na stáit do na himirce a cuireadh i bhfeidhm cheana féin. Gintear na stáit samhail maidir le himirce atá á chur i bhfeidhm ar éileamh, ag laghdú go suntasach an méid cuimhne riachtanach.
Mar sin féin, níl an feabhas seo ar fáil nuair nach gcuirtear i bhfeidhm imirce agus mar sin tá gá fós le réamh-ríomh agus stóráil na stáit imirce idirmheánacha.
Éilíonn an feabhsú seo freisin nach dtacaíonn Django le pleananna imirce measctha a thuilleadh. Is éard atá i bpleananna measctha liosta aistrithe a bhfuil cuid acu á gcur i bhfeidhm agus cinn eile nach bhfuil á gcur i bhfeidhm. Níor tugadh tacaíocht oifigiúil riamh dó seo agus ní raibh API poiblí ann riamh a thacaíonn leis an iompar seo.
Tacaíonn an t-ordú: Djadmin: squashmigrations anois leis an imirce tosaigh a shonrú óna ndéanfar imirce a scriosadh.
SamhlaLink to this heading
<django.db.models.query.QuerySet.bulk_create>: meth: `QuerySet.bulk_create () `oibríonn anois ar mhúnlaí seachfhreastalaí.
Fuair cumraíocht bunachar sonraí a: leagan: TIME_ZONE <DATABASE-TIME_ZONE>`rogha chun idirghníomhú le bunachair sonraí a stóráilíonn amanna dáta in am áitiúil agus nach dtacaíonn le criosanna ama nuai:socrú: `USE_TZ
True.Chuir an modh: meth: RelatedManager.set () leis na bainisteoirí gaolmhara a chruthaigh ``ForeignKey`, GenericForeignKey`, <django.db.models.fields.related.RelatedManager.set () > agus
ManyTomanyField.Tá paraiméadar
bulkag an modh: Meth: ~Django.DB.Models.Fields.Related.RelatedManager.Add ar eochair eachtrach droim ar ais anois chun ceist amháin a fhorghníomhú beag beann ar líon na rudaí atá á chur leis seachas ceist amháin in aghaidh an rud.Cuireadh an paraiméadar
keep_parentschuig: meth: `Model.delete () <django.db.models.Model.delete>`chun sonraí linbh a scriosadh amháin i samhail a úsáideann oidhreacht il-tábla.<django.db.models.query.QuerySet.delete>:meth: Model.delete () `agus:meth: <django.db.models.Model.delete>`QuerySet.delete () cuir ar ais líon na rudaí a scriosadh.
Cuireadh seiceáil córais leis chun cosc a chur ar
Meta.Orderingagusorder_with_respect_toaraon a shainiú ar an tsamhail chéanna.Date and timelookups can be chained with other lookups (such asexact,gt,lt, etc.). For example:Entry.objects.filter(pub_date__month__gt=6).Tacaíonn le cuardaigh ama (uair an chloig, nóiméad, dara) anois ó:class: ~django.db.models.timefield do gach cúltaca bunachar sonraí. Cuireadh tacaíocht do chúltaca seachas SQLite leis ach gan doiciméadú i Django 1.7.
Is féidir leat an paraiméadar
output_fieldden chomhiomlán: class: ~django.db.models.avg a shonrú d'fhonn comhiomlán a chomhiomlánú thar cholúin neamh-uimhriúla, mar shamplaDurationField.Cuireadh an cuardach: lookup: dáta chuig:: class: ~django.db.models.DateTimeField chun cead a dhéanamh ar an réimse a fhiosrú faoin gcuid dáta amháin.
Cuireadh feidhmeanna bunachar sonraí:: class: ~django.db.models.functions.greatest agus:class: ~django.db.models.functions.least leis.
Cuireadh feidhm bunachar sonraí: class: ~django.db.models.functions.now leis, a thugann an dáta agus an t-am reatha ar ais.
Transformis now a subclass of Func() which allowsTransforms to be used on the right hand side of an expression, just like regularFuncs. This allows registering some database functions likeLength,Lower, andUpperas transforms.SlugFieldnow accepts anallow_unicodeargument to allow Unicode characters in slugs.Tacaíocht bhreise chun anótaí a thagairt i ``QuerySet.Distinct () ``.
Taispeánann
connection.queriesceisteanna le paraiméadair ionadaithe ar SQLite.Query expressions can now be used when creating new model instances using
save(),create(), andbulk_create().
Iarrataí agus FreagraíLink to this heading
<django.http.HttpResponse.status_code>Unless:attr: Tá HttpResponse.Reason_frase <django.http.HttpResponse.reason_phrase>`socraithe go sainráite, socraítear é anois ag an luach reatha de:attr: `HttpResponse.STATUS_CODE. Athrófar luach
status_codelasmuigh den tógálaí luachréasúna_frasefreisin.Taispeánann an dearcadh dífhabhtaithe sonraí faoi eisceachtaí slabhraithe ar Python 3 anois.
Glacann na tuairimí earráide réamhshocraithe 40x leis an dara paraiméadar suímh anois, an eisceacht a spreag an radharc.
Tacaíonn láimhseálaithe earráide féach anois:class: ~django.template.response.templateResponse, a úsáidtear go coitianta le tuairimí rang-bhunaithe.
Cuirtear eisceachtaí a ardaítear leis an modh
render () ``anois chuig modh ``process_exception ()de gach middleware.Is féidir iarratas a dhéanamh anois:attr: HttpRequest.urlconf <django.http.HttpRequest.urlconf>`go ``None` chun aon athruithe a rinne middleware roimhe seo a chur ar ais agus filleadh ar an: setting: ROOT_URLCONF a úsáid.
Ardaíonn an seiceála:SETTING: DISALLOWED_USER_AGENTS eisceacht in:class: ~django.middleware.commonMiddleware anois: a:class: ~django.core.exceptions.permissiondenied seachas filleadh ara:class: ~django.http.http.httpresponsedden ionas ionas go ndéan:data: ~django.conf.forbid.conf.Iarraítear ar .urls.handler403.
<django.http.HttpRequest.get_port>Cuireadh leis: Meth: `HttpRequest.get_port () `chun calafort tionscnaimh an iarratais a fháil.
Cuireadh an paraiméadar
json_dumps_paramschuig: class: ~django.http.jsonResponse chun argóintí eochairfhocal a chur chuig an nglao ``json.dumps () ``a úsáidtear chun an freagra a ghiniúint.Déanann an
BrokenLinkEmailsMiddlewareneamhaird anois ar 404anna nuair a bhíonn an moltóir cothrom leis an URL iarrtha. Chun dul timpeall ar an tseiceáil atreoraithe folamh a cuireadh i bhfeidhm cheana féin, shocraigh roinnt róbónna gréasáin an tagróir chuig an URL iarrtha.
TeimpléidLink to this heading
Is féidir le clibeanna teimpléad a cruthaíodh leis an gcúntóir: meth: ~django.template.library.simple_tag torthaí a stóráil anois in athróg teimpléad tríd an argóint ``as ``a úsáid.
<django.template.Context.setdefault>Cuireadh: meth leis: `Context.setDefault () `modh.
Cuireadh <django-template-logger>logger:ref: `django.template `leis agus tá na teachtaireachtaí seo a leanas ann:
Teachtaireacht leibhéal ``DEBUG` le haghaidh athróga comhthéacs atá in easnamh.
Teachtaireacht leibhéal RABHADH ``d'eisceachtaí gan ghabháil a ardaíodh le linn rindreáil` {% include%}
nuair a bhíonn modh dífhabhtaithe as (cabhrach ós rud é go gcuireann{% include%} ``an eisceacht a thostaíonn agus cuireann sé sreang folamh ar ais).
Tacaíonn an chlib teimpléad: ttag: firstof leis an aschur a stóráil in athróg ag baint úsáide as 'as'.
Context.update()can now be used as a context manager.Is féidir le lódóirí teimpléid Django teimpléid a shíneadh go hathchúrsach anois.
Cuimsíonn an teimpléad leathanaigh dífhabhtaithe post mortem anois aschur ó gach inneall atá suiteáilte.
Debug page integration for custom template engines was added.
<TEMPLATES-OPTIONS>Fuair an cúltaca: Class: ~django.template.backends.django.djangoTemplates an cumas leabharlanna agus tógáin a chlárú go sainráite tríd an teimpléad:setting: `OPTIONS `.
Feabhsaíodh na scagairí
timesinceagustimeuntilchun déileáil le blianta léim nuair a thugtar spaitheanna móra ama.Déanann an chlib `san áireamh ``rudaí teimpléid pháirseáilte anois le linn rindreála teimpléid, ag luasú athúsáide in áiteanna mar lúb.
TástálachaLink to this heading
Cuireadh an modh: meth: `json () <django.test.Response.json>`leis chun freagraí cliant a thástáil chun rochtain a thabhairt ar an gcomhlacht freagartha mar JSON.
Added the
force_login()method to the test client. Use this method to simulate the effect of a user logging into the site while skipping the authentication and verification steps oflogin().
URLannaLink to this heading
Ceadaítear dearbhú rialta breatharound abairt anois i bpatrúin URL.
Is féidir spás ainmneacha an fheidhmchláir a shocrú anois ag baint úsáide as tréith
app_namear an modúl nó an réad san áireamh. Is féidir é a shocrú freisin trí dhá thúpla de (<list of patterns>,<application namespace>) a rith mar an chéad argóint chun ``include () ``.Cuireadh seiceálacha córais le haghaidh botúin patrún URL coitianta.
BailíochtóiríLink to this heading
Cuireadh leis: func: django.core.validators.int_list_validator chun bailíochtóirí teaghráin a ghiniúint ina bhfuil sláimhreacha scartha le carachtar saincheaptha.
EmailValidatornow limits the length of domain name labels to 63 characters per RFC 1034.Cuireadh leis: func: ~django.core.validators.validate_unicode_slug chun slugs a bhféadfadh carachtair Unicode a bheith ina mbailíochtú.
Athruithe neamh-chomhoiriúnacha ar ais i 1.9Link to this heading
API cúltaca bunachar sonraíLink to this heading
Braitheann cúpla tástáil nua ar chumas an chúltaca réamhshocruithe colún a ionchur (an toradh a thabhairt ar ais mar Field.default'). Is féidir leat an ghné bunachar sonraí ``can_introspect_default` a shocrú go
Falsemura gcuireann do chúltaca seo i bhfeidhm. B'fhéidir gur mhaith leat athbhreithniú a dhéanamh ar an gcur chun feidhme ar na cúltaca a chuimsíonn Django le haghaidh tagartha (:ticket: `24245 `).Cuirtear cuibheoir nó tiontaire domhanda a chlárú ag leibhéal an mhodúil DB-API chun faisnéis chrios ama a láimhseáil de:class: ~datetime.datetime luachanna a rith mar pharaiméadair cheisteanna nó a chuirtear ar ais mar thorthaí fiosrúcháin ar bhunachar sonraí nach dtacaíonn le criosanna ama. Féadann sé coinbhleacht le leabharlanna eile.
Is é an bealach a mholtar chun crios ama a chur chuig:class: ~datetime.datetime luachanna a fhaightear ón mbunachar sonraí ná tiontaire a chlárú do DateTimeField` i DatabaseOperations.get_DB_Converters () `.
Baineadh an ghné bunachar sonraí needs_datetime_string_cast`. Caithfidh cúltaca bunachar sonraí a leagann sé tiontaire a chlárú ina ionad sin, mar a mhínítear thuas.
<type><type>Athainmníodh na modhanna
databaseOperations.value_to_db_ <type>() ``go ``adapt_ field_value ()chun na modhanna ``convert_ field_value () ``a scáthú.Chun an cuardach nua
dáta ``a úsáid, b'fhéidir go mbeidh ar chúltaca bunachar sonraí tríú páirtí an modhDatabaseOperations.DateTime_Cast_Date_SQL () ``a chur i bhfeidhm.Cuireadh an modh
DatabaseOperations.TIME_EXTRACT_SQL ()leis. Glaonn sé an modh ``date_extract_sql () atá ann cheana. Cuireann an cúltaca SQLite ar an modh seo chun cuardaigh ama (uair an chloig, nóiméad, dara) a chur chuig: class: `~Django.db.Models.TimeField, agus d'fhéadfadh go mbeadh gá le cúltaca bunachar sonraí tríú páirtí uaidh.Tá an modh
DatabaseOperations.DateTime_Cast_SQL () `(gan a mheascadh leDatabaseOperations.DateTime_Cast_Date_SQL ()` luaitear thuas) baineadh. D'fhreastail an modh seo chun dátaí a fhormáidiú ar Oracle i bhfad roimh 1.0, ach níor sháraigh aon chúltaca croí é le blianta agus níor ghlaoigh sé áit ar bith i gcód nó i dtástálacha Django.D'fhonn tacú le comhthreomhaíocht tástála, ní mór duit an
DatabaseCreation a chur i bhfeidhm. Modh _clone_test_db () ``agus socraigh ``databaseFeatures.can_Clone_Databases = True. B'fhéidir go mbeidh ortDatabasecreation.get_test_db_clone_settings ()a choigeartú.
Is liostaí anois iad socruithe réamhshocraithe a bhí ina tuplesLink to this heading
Ba iad na socruithe réamhshocraithe i django.conf.global_settings` meascán de liostaí agus tuples. Is liostaí anois iad na socruithe go léir a bhí tuples roimhe seo.
Baintear tréith is_usable ar luchtaitheoirí teimpléadLink to this heading
D'éilíodh luchtóirí teimpléad Django roimhe seo tréith is_usable a shainiú. Dá mbeadh lódóir cumraithe i socruithe na teimpléid agus dá mbeadh an tréith seo False`, déanfaí neamhaird ar an lódóir go ciúin. Go praiticiúil, níor úsáid an lódóir uibheacha é seo ach chun a bhrath an raibh “setuptools” suiteáilte. Baintear an tréith is_usable anois agus ina ionad sin teipeann ar an lódóir uibheacha ag am rith mura bhfuil setuptools suiteáilte.
Glacann lódálaithe teimpléad bunaithe ar chóras comhaid eisceachtaí níos sonrachaLink to this heading
Agus luchtóirí teimpléad:class: FileSystem.loader <django.template.loaders.filesystem.Loader>`nó:class: `App_Directories.Loader á úsáid<django.template.loaders.app_directories.Loader>, d'ardaigh leaganacha níos luaithe de Django earráid a:exc: ~django.template.templateDoesNotExist má bhí foinse teimpléad ann ach nach raibh sé inléite. D'fhéadfadh sé seo tarlú faoi go leor imthosca, mar shampla mura raibh ceadanna ag Django chun an comhad a oscailt, nó más eolaire é foinse an teimpléid. Anois, ní thostaíonn Django ach an eisceacht mura bhfuil an fhoinse teimpléid ann. Mar thoradh ar gach cás eile go n-ardaítear an ``Ioerror` bunaidh.
Ní chuirtear iallach ar atreoruithe HTTP a thuilleadh chuig URIannaLink to this heading
Ní thiontaítear atreoruithe coibhneasta go URIs iomlána a thuilleadh. :rfc: D'éilíonn 2616 go mbeadh an ceannteideal Suíomh ``i bhfreagraí atreoraithe ina URI iomlán, ach cuireadh in ionad aith:rfc: `7231` a cheadaíonn URIs coibhneasta i ``Suíomh, ag aithint cleachtas iarbhír gníomhairí úsáideora, a thacaíonn beagnach gach ceann acu leo.
Dá bhrí sin, níor cheart go ginearálta go n-áireofaí sna URLanna ionchais a cuireadh ar aghaidh chuig asertRedirects an scéim agus an chuid fearainn de na URLanna a thuilleadh. Mar shampla, ba cheart `` self.assertRedirects(response, '/ some-url/')`` (mura rud é bhí URL iomlán go sonrach san atreorú).
Sa chás annamh go dteastaíonn an sean-iompar uait (a aimsíodh le leagan ársa de Apache le mod_scgi` a léirmhíníonn atreorú coibhneasta mar “atreorú inmheánach”), is féidir leat é a chur ar ais trí mheán saincheaptha a scríobh:
class LocationHeaderFix(object):
def process_response(self, request, response):
if "Location" in response:
response["Location"] = request.build_absolute_uri(response["Location"])
return response
Tacaíocht titim do PostgreSQL 9.0Link to this heading
Tháinig deireadh le tacaíocht suas srutha do PostgreSQL 9.0 i Meán Fómhair 2015. Mar thoradh air sin, socraíonn Django 1.9 9.1 mar an leagan íosta PostgreSQL a thacaíonn sé go hoifigiúil.
Tacaíocht titim do Oracle 11.1Link to this heading
Tháinig deireadh le tacaíocht suas srutha do Oracle 11.1 i mí Lúnasa 2015. Mar thoradh air sin, socraíonn Django 1.9 11.2 mar an leagan íosta Oracle a thacaíonn sé go hoifigiúil.
Baintear teimpléad LoaderOrigin agus StringOriginLink to this heading
I leaganacha roimhe seo de Django, nuair a cuireadh inneall teimpléad a thionscnamh le dífhabhtú mar True, socraíodh sampla de Django.Template.Loader.LoaderOrigin nó Django.Template.Base.StringOrigin mar an tréith bunús ar an réad teimpléid. Cuireadh na ranganna seo le chéile la:class: ~django.template.base.origin agus tá sé socraithe anois i gcónaí beag beann ar an socrú dífhabhtaithe innill. Le haghaidh leibhéal íosta comhoiriúnachta ar ais, coimeádfar na sean-ainmneacha ranga mar ainmneacha don rang nua ``Origin` go dtí Django 2.0.
Athruithe ar an chumraíocht logála réamhshocraitheLink to this heading
Chun go mbeidh sé níos éasca cumraíochtaí logála saincheaptha a scríobh, ní shainmhíníonn cumraíocht logála réamhshocraithe Django logálaithe django.request agus django.security a thuilleadh. Ina áit sin, sainmhíníonn sé logálaí django ``amháin, a scagtar ag an leibhéal ``INFO`, le dhá láimhseálaí:
console: scagtha ag an leibhéalINFO ``agus níomhach ach amháin má tá `debug = True.mail_admins: scagtha ag an leibhéalERRORagus níomhach ach amháin má tá debug = false`.
Mura bhfuil tú ag dul i bhfeidhm ar logáil réamhshocraithe Django, ba cheart go bhfeicfeá íosta athruithe ar iompar, ach b'fhéidir go bhfeicfidh tú roinnt logáil nua chuig an gconsól ``runserver`, mar shampla.
Má tá tú ag cur i bhfeidhm ar logáil réamhshocraithe Django, ba chóir duit seiceáil chun a fheiceáil conas a chumraíonn do chumraíocht leis na réamhshocruithe nua.
Sonraí `HttpRequest ``i dtuairisciú earráideLink to this heading
Bhí sé iomarcach na sonraí iomlána fao:class: ~django.http.httpRequest a thaispeáint gach uair a bhí sé le feiceáil mar athróg fráma cruach sa leagan HTML den leathanach dífhabhtaithe agus ríomhphost earráide. Dá bhrí sin, taispeánfaidh an t-iarratas HTTP an léiriú caighdeánach céanna anois le hathróga eile (repr (iarratas) ``). Mar thoradh air sin, baineadh an modh ``ExceptionReporterFilter.get_request_repr () ``agus an fheidhm ``django.http.build_request_repr () neamhdhoiciméadaithe.
Athraíodh ábhar leagan téacs an ríomhphoist chun rianú den struchtúr céanna a sholáthar agus i gcás iarratais AJAX. Déantar na sonraí rianaithe a léiriú ag an modh ``ExceptionReporter.get_TraceBack_Text () ``.
Cuibheoirí agus tiontairí domhanda atá ar an eolas ar chrios ama a bhaint d'amanna dátaLink to this heading
Ní chláraíonn Django oiriúntóirí agus tiontairí domhanda a thuilleadh chun faisnéis crios ama a bhainistiú ar:rang: ~ datetime.datetime luachanna a chuirtear chuig an mbunachar sonraí mar pharaiméadair fiosrúcháin nó a léitear ón mbunachar sonraí i dtorthaí fiosrúcháin. Bíonn tionchar ag an athrú seo ar thionscadail a chomhlíonann na coinníollacha seo a leanas go léir:
Is é an socrú: USE_TZ
True.Is é an bunachar sonraí SQLite, MySQL, Oracle, nó bunachar sonraí tríú páirtí nach dtacaíonn le criosanna ama. Ar amhras, is féidir leat luach
connection.features.supports_timezonesa sheiceáil.Fiosraíonn an cód an bunachar sonraí lasmuigh den ORM, de ghnáth le ``cursor.execute (sql, params) ``.
Má tá tú ag dul paraiméadair aware:class: ~datetime.datetime chuig ceisteanna den sórt sin, ba cheart duit iad a iompú ina dáta naif i UTC:
from django.utils import timezone
param = timezone.make_naive(param, timezone.utc)
Má theipeann ort é sin a dhéanamh, déanfar an tiontú mar a bhí i leaganacha níos luaithe (le rabhadh díghníomhaíochta) suas go dtí Django 1.11. Ní dhéanfaidh Django 2.0 aon chomhshó, rud a d'fhéadfadh éilliú sonraí a bheith mar thoradh air.
Má tá tú ag léamh luachanna: class: ~datetime.datetime ó na torthaí, beidh siad naif in ionad a bheith ar an eolas. Is féidir leat cúiteamh mar seo a leanas:
from django.utils import timezone
value = timezone.make_aware(value, timezone.utc)
<django.db.models.query.QuerySet.raw>Ní theastaíonn aon cheann de seo uait má tá tú ag fiosrú ar an mbunachar sonraí tríd an ORM, fiú má tá ceisteanna: meth: `raw () `á úsáid agat. Tugann an ORM aire d'fhaisnéis crios ama a bhainistiú.
Allmhairítear modúil clibeanna teimpléid nuair a dhéantar teimplLink to this heading
Déanann an cúltaca: Class: ~django.template.backends.django.djangoTemplates fionnachtain anois ar mhodúil clibeanna teimpléad suiteáilte nuair a dhéantar iad a thionscnamh. <TEMPLATES-OPTIONS>Cuireann an nuashonrú seo ar chumas leabharlanna a sholáthar go sainráite tríd an eochair ``'libraries'` de:setting: OPTIONS nuair a shainmhínítear a:class: ~django.template.backends.django.djangoTemplates cúltaca. Teipeann ar earráidí allmhairithe nó comhréireachta i modúil clibeanna teimpléid go luath anois ag am tionscnaíochta seachas nuair a dhéantar teimpléad le clib a:ttag: {% load%}<load> a thiomsú ar dtús.
``django.template.base.add_to_builtins () ``baintearLink to this heading
<load>Cé gur API príobháideach a bhí ann, d'úsáid tionscadail go coitianta ``add_to_builtins () ``chun clibeanna teimpléad agus scagairí a chur ar fáil gan an clibe:ttag: {% load%} a úsáid. Tá an API seo foirmithe. <TEMPLATES-OPTIONS>Ba chóir do thionscadail leabharlanna ionsuite a shainmhíniú anois tríd an eochair ``builtins' de:setting: OPTIONS agus iad ag sainmhíniú a:class: ~django.template.backends.django.djangoTemplates cúltaca.
Fillteann simple_tag ``aschur clibeanna anois i `conditional_escapeLink to this heading
<tags-auto-escaping>Go ginearálta, ní dhéanann clibeanna teimpléad a n-ábhar go huathoibríoch, agus is é an t-iompar seo: ref: doiciméadaithe `. Maidir le clibeanna cosúil:class: `~django.template.library.inclusion_tag, ní fadhb í seo toisc go ndéanfaidh an teimpléad san áireamh autoescaping. Maidir le ``assignment_tag () ``, éalófar an t-aschur nuair a úsáidtear é mar athróg sa teimpléad.
Maidir leis na cásanna úsáide atá beartaithe de:class: ~django.template.library.simple_tag, áfach, tá sé an-éasca deireadh a chur le HTML mícheart agus b'fhéidir saothrú XSS. Mar shampla:
@register.simple_tag(takes_context=True)
def greeting(context):
return "Hello {0}!".format(context["request"].user.first_name)
I leaganacha níos sine de Django, is saincheist XSS é seo toisc nach n-éaltar user.first_name.
I Django 1.9, socraítear é seo: má tá autoescape=True` socraithe ag comhthéacs an teimpléid (an réamhshocraithe), ansin fillfidh ``simple_tag ``aschur na feidhme clibeanna le:func: ~django.utils.html.conditional_escape.
Chun do simple_tag`s a shocrú, is fearr na cleachtais seo a leanas a chur i bhfeidhm:
Ba chóir d'aon chód a ghineann HTML an córas teimpléad nó: func: ~django.utils.html.format_html a úsáid.
Má theastaíonn aschur
simple_tagéalú, bain úsáid as: func: ~django.utils.html.escape nó:func: ~django.utils.html.conditional_escape.Má tá tú cinnte go bhfuil tú ag cur HTML ó fhoinse iontaofa (m.sh. réimse CMS a stóráilíonn HTML a chuireann riarthóirí isteach), is féidir leat é a mharcáil mar sin ag baint úsáid:func: ~django.utils.safestring.mark_safe.
Beidh clibeanna a leanann na rialacha seo ceart agus sábháilte cibé an bhfuil siad á reáchtáil ar Django 1.9+ nó níos luaithe.
Paginator.Page_RangeLink to this heading
Paginator.page_range is
now an iterator instead of a list.
I leaganacha de Django roimhe seo go 1.8, chuir Paginator.Page_Range` liost ar ais i Python 2 agus ``raon ``i Python 3. Chuir Django 1.8 liosta ar ais go comhsheasmhach, ach tá iterator níos éifeachtaí.
Is féidir an cód atá ann cheana atá ag brath ar ghnéithe sonracha liosta`, mar shampla innéacsú, a iompar tríd an iterator a thiontú go `liosta ag baint úsáide as ``liosta () ``.
Cuardach intuigthe `QuerySet `__in bainteLink to this heading
I leaganacha níos luaithe, ceisteanna mar:
Model.objects.filter(related_id=RelatedModel.objects.all())
thiontódh sé go hinchinneach go:
Model.objects.filter(related_id__in=RelatedModel.objects.all())
mar thoradh air SQL mar "related_id IN (SELECT id FROM...) ".
Ní tharlaíonn an __in intuigthe seo a thuilleadh mar sin is é an “IN” SQL anois “=”, agus má fhilleann an fo-cheist torthaí iolracha, caitheoidh roinnt bunachair sonraí ar a laghad earráid.
Tacaíocht brabhsálaí contrib.adminLink to this heading
Ní thacaíonn an riarachán le Internet Explorer 8 agus thíos a thuilleadh, mar tá deireadh saoil bainte amach ag na brabhsálaithe seo.
Baineadh CSS agus íomhánna chun tacú le Internet Explorer 6 agus 7. Cuireadh deilbhíní SVG in ionad deilbhíní PNG agus GIF, nach dtacaíonn Internet Explorer 8 agus níos luaithe leo.
Rinneadh uasghrádú ar an leabharlann jQuery atá leabaithe sa riarachán ó leagan 1.11.2 go 2.1.4. Tá an API céanna ag jQuery 2.x le jQuery 1.x, ach ní thacaíonn sé le Internet Explorer 6, 7, nó 8, rud a cheadaíonn feidhmíocht níos fearr agus méid comhaid níos lú. Más gá duit tacú le IE8 agus más gá duit an leagan is déanaí de Django a úsáid freisin, is féidir leat cóip an riaracháin de jQuery a shárú le do chuid féin trí fheidhmchlár Django a chruthú leis an struchtúr seo:
app/static/admin/js/vendor/
jquery.js
jquery.min.js
SyntaxError agus Django á shuiteáil setuptools 5.5.xLink to this heading
Agus Django 1.9 nó 1.9.1 á shuiteáil agat le ``setuptools` 5.5.x, feicfidh tú:
Compiling django/conf/app_template/apps.py ...
File "django/conf/app_template/apps.py", line 4
class {{ camel_case_app_name }}Config(AppConfig):
^
SyntaxError: invalid syntax
Compiling django/conf/app_template/models.py ...
File "django/conf/app_template/models.py", line 1
{{ unicode_literals }}from django.db import models
^
SyntaxError: invalid syntax
Tá sé sábháilte neamhaird a dhéanamh ar na hearráidí seo (suiteálfaidh Django go breá fós), ach is féidir leat iad a sheachaint trí “setuptools” a uasghrádú go leagan níos déanaí. Má tá píopa á úsáid agat, is féidir leat píopa a uasghrádú ag baint úsáide as python -m pip install -U pip a dhéanfaidh uasghrádú freisin ``setuptools`. Réitear é seo i leaganacha níos déanaí de Django mar a thuairiscítear in:doc: /releases/1.9.2.
IlghnéitheachLink to this heading
Tá na comhaid statacha jQuery i contrib.admin ``aistríodh isteach i bhfo-eolaire ``díolachóir/jquery`.
Tá an téacs a thaispeántar le haghaidh colúin null sa chealla athraithe riaracháin
list_displaytar éis athrú ó(Níl aon)(nó a choibhéis aistrithe) go-(sraith).Baineadh
Django.http.Responses.Reason_PhrasesagusDjango.Core.Handlers.wsgi.status_code_text. Úsáid Leabharlann Caighdeánach Python ina ionad sin: :data: http.client.responses do Python 3 agus httplib.responses do Python 2.Baineadh
ValueSquerySetagusValuesListQuerySet.Ní leagann an teimpléad admin/base.html fuinneog a thuilleadh. __admin_media_prefix__` nó
fuinneog. __admin_utc_offset__. Bogadh tagairtí íomhá i JavaScript a d'úsáid an luach sin chun URLanna iomlána a thógáil chuig CSS le haghaidh saincheaptha níos éasca. Stóráiltear an fhritháireamh UTC ar thréith sonraí den chlib <body>```.Tá bailíochtú
CommaseParatedIntegerFieldscagtha chun luachanna cosúil le', ',`,1', agus`1, ,2'a thoirmeasc.<django.views.generic.edit.FormMixin.get_context_data>Bogadh tionscnamh foirme ón modh: meth: ProcessFormView.get () `go dtí an <django.views.generic.edit.ProcessFormView.get>modh nua:meth: `formMixin.get_context_data (). D'fhéadfadh sé seo a bheith neamhchomhoiriúnach ar ais má tá an modh get_context_data () ``tar éis an modh ``get_context_data () `a shárú gan glaoch ar ``super ()`.
Tá tacaíocht do PostGIS 1.5 titim.
Athraíodh an réimse
django.contrib.sites.models.site.domaingo mbe:attr: ~django.db.models.field.unique.D'fhonn aonrú tástála a fhorfheidhmiú, ní cheadaítear ceisteanna bunachar sonraí de réir réamhshocraithe i dtástálacha: class: ~django.test.simpletestCase níos mó. Is féidir leat an t-iompar seo a dhíchumasú tríd an tréith aicme allow_database_queries` a shocrú go
Truear do rang tástála.Athraíodh
ResolverMatch.App_Namechun an cosán iomlán spás ainmneacha a bheith ann i gcás spás ainmneacha neadaithe. Le haghaidh comhsheasmhachta le ResolverMatch.Namespace`, is teaghrán folamh é an luach folamh anois in ionadNone.Chun slándáil a chruasú, caithfidh 8 gcarachtar ar a laghad a bheith sna heochracha seisiúin.
Baineadh feidhm phríobháideach ``django.utils.functional.total_orders () ``. Bhí réiteach ann le haghaidh fabht ``functools.total_orders () ``i leaganacha Python níos sine ná 2.7.3.
Sraitheadh XML (cibé acu trí:djadmin: dumpdata nó an creat sindiciúcháin) a úsáidtear chun aon charachtair a fuair sé a aschur. Anois má tá aon charachtair rialaithe nach gceadaítear sa chaighdeán XML 1.0 san ábhar atá le sraitheadh, teipeann ar an sraitheadh le a:exc: ValueError.
: class: ~django.forms.charfield anois stiallann ionchur de spás bán tosaigh agus rianaithe de réir réamhshocraithe. Is féidir é seo a dhíchumasú tríd an argóint nua:attr: ~django.forms.charfield.strip a shocrú go
False.D'fhéadfadh go mbeadh msgid` nua ag téacs teimpléad a aistrítear agus a úsáideann dhá chomhartha faoin gcéad as a chéile nó níos mó, m.sh.
%%"`, tar éis `makemessagesa reáchtáil (is dóichí go mbeidh an t-aistriúchán doiléir). Marcálfar anmsgidnua`#, formáid python-".<django.template.Context>Mura leagtar sí:attr: request.current_app <django.http.HttpRequest.current_app>`nor:class: `context.current_app socraithe, úsáidfidh an clib teimpléad:ttag: url `spás ainmneacha an iarratais reatha anois. Socraigh ``request.current_app` go
Nonemura dteastaíonn uait leid spás ainmneacha a úsáid.Déanann an socrú: SETTING: SILENCED_SYSTEM_CHECKS teachtaireachtaí de gach leibhéal a thostú anois. Roimhe seo, clóiteadh teachtaireachtaí de leibhéal ``ERROR` nó níos airde chuig an gconsól.
Baintear an réimse
flatpage.enable_commentsónFlatPageAdmintoisc nach bhfuil sé in úsáid ag an bhfeidhmchlár. Má úsáideann do thionscadal nó aip tríú páirtí é, :ref: `cruthaigh ModelAdmin saincheapaithe <flatpages-admin>`chun é a chur ar ais.Athraíodh luach tuairisceáin de:meth: ~Django.Test.Runner.DiscoverRunner.Setup_Databases agus an chéad argóint de:meth: ~Django.Test.Runner.DiscoverRunner.TEARDOWN_Databases. Ba ghnách iad a bhí siad ina “(sean_ainmneacha, scátháin)
tiúplaí. Anois níl siad ach an chéad mhír, ``old_names.De réir réamhshocraithe: class: ~django.test.liveservertestcase iarracht calafort atá ar fáil sa raon 8081-8179 a aimsiú in ionad triail a bhaint as calafort 8081.
Seiceálann an córas le haghaidh: class: ~django.contrib.admin.modelAdmin cásanna anois seachas ranganna.
Tá an API príobháideach chun pleananna imirce measctha a chur i bhfeidhm ar chúiseanna feidhmíochta Is éard atá i bpleananna measctha liosta imirce ina bhfuil cuid acu á chur i bhfeidhm agus nach bhfuil cuid eile á chur i bhfeidhm.
Bogtar na ranganna tuairiscithe réad samhail gaolmhara i
django.db.models.fields.related(API príobháideach) ón modúl related` go related_descriptors` agus athainmnítear mar seo a leanas:Is é
ReversesingleRelateDObjectDescriptorForwardmanyTooneDescriptorIs é
SingleRelateDObjectDescriptorReverseOneTooneDescriptorIs é
ForeignRelateDObjectsDescriptorReverseManyToOneDescriptorIs é
ManyRelateDObjectsDescriptorManyTomanyDescriptor
Má chuireann tú amharc saincheap:data: ~django.conf.urls.handler404 i bhfeidhm, caithfidh sé freagra a thabhairt ar ais le cód stádais HTTP 404. Úsáid: aicme: ~django.http.httpResponseNotFound nó pas
status = 404chuig an: aicme: ~django.http.httpResponse. Seachas sin, :setting: ní oibreoidh APPEND_SLASH i gceart ledebug=false.
Gnéithe atá díscríofa i 1.9Link to this heading
``tascanna_assignment_tag () ``Link to this heading
Chuir Django 1.4 an cúntóir assignment_tag ``le cruthú clibeanna teimpléad a stóráilíonn athróg teimpléad torthaí a mhaolú. Tá an cumas céanna seo faighte ag an gcúntóir: Meth: `~django.template.library.simple_tag`, rud a fhágann go bhfuil an ``assignment_tag ``as feidhm. Ba chóir clibeanna a úsáideann ``assignment_tag a nuashonrú chun simple_tag a úsáid.
{% timthriall%} comhréiteach le hargóintí scartha le camógLink to this heading
Tacaíonn an clibe:ttag: timthriall le sean-chomhréir níos ísle ó leaganacha Django roimhe seo:
{% cycle row1,row2,row3 %}
Ba chúis lena pháirsíú fabhtanna leis an gcomhréireacht reatha, mar sin bainfear tacaíocht don sean-chomhréireacht i Django 1.10 tar éis díscrúdú luathaithe.
Argóint ForeignKey agus OneToonefield on_deleteLink to this heading
D'fhonn feasacht a mhéadú faoi scriosadh samhail cascading, beidh an argóint on_delete` de ForeignKey` agus OneToonefield ag teastáil i Django 2.0.
Nuashonraigh samhlacha agus imirce reatha chun an argóint a shocrú go sainráite. Ós rud é gurb é Models.cascade` an réamhshocraithe, cuir on_delete=Models.cascade le gach ForeignKey agus OneToOneField nach n-úsáideann rogha difriúil. Is féidir leat é a chur ar aghaidh mar an dara argóint seasaimh mura bhfuil cúram ort faoi chomhoiriúnacht le leaganacha níos sine de Django.
Athruithe Field.relLink to this heading
Field.rel agus tá a modhanna agus tréithe athraithe chun API na réimsí gaolmhara a mheaitseáil. Athainmnítear an tréith Field.rel go remote_field` agus athraítear nó athainmnítear go leor dá modhanna agus tréithe.
Is é aidhm na hathruithe seo API doiciméadaithe a sholáthar do réimsí caidrimh.
Modhanna saincheaptha Geomanager agus ``GeoQuerySet ``Link to this heading
Cuireadh nathanna geografacha coibhéiseach in anótaí in ionad gach modh saincheaptha GeoquerySet ``( limistéar () , fad () , gml () ,...). Dá bhrí sin tá an gá saincheaptha ``Geomanager a shocrú do mhúnlaí cumasaithe GIS as feidhm anois. Chomh luath agus nach nglaonn do chód ar aon cheann de na modhanna dlite, is féidir leat na línte ``objects = GeoManager () `a bhaint as do mhúnlaí.
Athraigh APIs lódóra teimpléidLink to this heading
Nuashonraíodh lódóirí teimpléad Django chun teimpléad athfhillteach a leathnú. Bhí API lódóir teimpléad nua ag teastáil leis an athrú seo. Tá na sean-mhodhanna load_template () ``agus ``load_template_sources () díluachtaithe anois. <custom-template-loaders>Is féidir sonraí faoin API nua a aimsiú:ref: `sa dhoiciméadú lódóirí teimpléad `.
Ag dul trí thúpla nó app_name chuig ``include () ``Link to this heading
Cuireadh an chuid spás ainmneacha a bhaineann le tuple a chur mar argóint chun include () ``a chur in ionad an argóint ``spás ainmneacha` a chur ar aghaidh chuig include () `. Mar shampla:
polls_patterns = [
url(...),
]
urlpatterns = [
url(r"^polls/", include((polls_patterns, "polls", "author-polls"))),
]
éiríonn sé:
polls_patterns = (
[
url(...),
],
"polls",
) # 'polls' is the app_name
urlpatterns = [
url(r"^polls/", include(polls_patterns, namespace="author-polls")),
]
Cuireadh an argóint app_name` chun include () ``a chur in ionad trí dhá tuple (mar thuas) a rith, nó réad nó modúl a rith le tréith ``app_name` (mar atá thíos). Má tá an app_name socraithe ar an mbealach nua seo, ní theastaíonn an argóint spás ainm a thuilleadh. Beidh sé réamhshocraithe go luach app_name. Mar shampla, athraítear na patrúin URL sa rang teagaisc ó:
mysite/urls.pyurlpatterns = [url(r"^polls/", include("polls.urls", namespace="polls")), ...]
chuig:
mysite/urls.pyurlpatterns = [
url(r"^polls/", include("polls.urls")), # 'namespace="polls"' removed
...,
]
polls/urls.pyapp_name = "polls" # added
urlpatterns = [...]
Ciallaíonn an t-athrú seo freisin go bhfuil an seanbhealach chun sampla Admin Site a áireamh as dul in iúl. Ina áit sin, pas admin.site.urls` go díreach chuig ``django.conf.urls.url () ``:
urls.pyfrom django.conf.urls import url
from django.contrib import admin
urlpatterns = [
url(r"^admin/", admin.site.urls),
]
Teastaíonn spás ainmneacha feidhmchláir URL má shocraíonn spás ainmneacha samplaLink to this heading
San am atá caite, bheadh spás ainmneacha sampla gan spás ainmneacha feidhmchláir ar an gcuspóir céanna le spás ainmneacha an fheidhmchláir, ach ní raibh sé dodhéanta na patrúin a aisiompú má bhí spás ainmneacha feidhmchláir leis an ainm céanna. Áirítear a shonraíonn spás ainmneacha sampla a éilíonn go socraíonn an URLConf san áireamh spás ainmneacha feidhmchláir.
Paraiméadar current_app chuig tuairimí contrib.authLink to this heading
Tá an struchtúr seo a leanas ag gach tuairim i django.contrib.auth.views:
def view(request, ..., current_app=None, ...):
...
if current_app is not None:
request.current_app = current_app
return TemplateResponse(request, template_name, context)
De réir Django 1.8, socraítear current_app ar an réad iarraidh`. Ar mhaithe le comhsheasmhacht, éilfidh na tuairimí seo ar an nglaoiteoir ``current_app a shocrú ar an iarraidh in ionad é a rith in argóint ar leithligh.
``django.contrib.gis.geoip ``Link to this heading
Cuireann an modúl:mod: django.contrib.gis.geoip2 in ionad django.contrib.gis.geoip. Soláthraíonn an modúl nua API den chineál céanna ach amháin nach soláthraíonn sé na modhanna comhoiriúnachta API GeoIP-Python oidhreachta.
IlghnéitheachLink to this heading
Tá an argóint
lagchuig ``django.Dispatch.Signals.Signal.Disconnect () ``a dhíchur mar níl aon éifeacht aige.Tá an modh
check_aggregate_support () ``de `Django.db.backends.base.baseDatabaseOperationsa dhíchur agus bainfear é i Django 2.0. Ba chóir an ``check_expression_support () ``níos ginearálta a úsáid ina ionad.Tá
django.forms.extrasimithe. Is féidir leat aimsi:class: ~django.forms.selectDateWidget idjango.forms.widgets(nódjango.forms) ina ionad sin.Tá API príobháideach ``django.db.models.fields.add_lazy_relations () ``díluachtaithe.
Tá an maisitheoir
django.contrib.auth.tests.utils.skipifCustomUser () ``díluaite. Leis na hathruithe fionnachtana tástála i Django 1.6, ní reáchtáiltear na tástálacha le haghaidh aipeanna `django.contrib ``a thuilleadh mar chuid de thionscadal an úsáideora. Dá bhrí sin, ní theastaíonn an maisitheoir ``@skipIfCustomUsera thuilleadh chun tástálacha a mhaisiú idjango.contrib.auth.Má shaincheapann tú roinnt: ref: láimhseálaithe earráide <error-views>, díchuirtear na sínithe amharc nach bhfuil ach paraiméadar iarratais amháin acu. Ba chóir go nglacfadh na tuairimí anois leis an dara paraiméadar suímh ```eisceacht'.
Tá na tréithe
django.utils.feedgenerator.atom1feed.mime_typeagusDjango.utils.feedgenerator.rssfeed.mime_typea dhíchur i bhfabharcontent_type.Signernow issues a warning if an invalid separator is used. This will become an exception in Django 1.10.Django.db.Models.Field. Tá _get_val_from_obj () ``díluaite i bhfabhar ``field.value_from_object ().Tá
Django.Template.Loaders.Eggs.Loadera dhíchur mar iarratais a dháileadh mar ní mholtar uibheacha.Tá an argóint eochairfhocal
callable_objchuig ``simpletestCase.assertRaisesMessage () ``a dhíchur. Rith an glaoch mar argóint seasmhach ina ionad sin.Tá an tréith allow_tags` ar mhodhanna
ModelAdmina dhíchur. Úsáid: func: ~django.utils.html.format_html, :func: ~django.utils.html.format_html_join, nó:func: ~django.utils.safestring.mark_safe agus luach tuairisceáin an mhodha á thógáil ina ionad sin.Tá an argóint eochairfhocal
enclosurechuig SyndicationFeed.add_item () ``díluachtaithe. Úsáid an argóint nua ``enclosures` a ghlacann le liosta de rudaíInclosurein ionad ceann amháin.Tá na hainmneacha Django.Template.Loader.LoaderOrigin` agus
Django.Template.Base.StringOrigindo Django.Template.Base.Origin` a dhíchur.
Gnéithe bainte i 1.9Link to this heading
Tá na gnéithe seo tar éis deireadh a dtimthriall díscrúdaithe bainte amach agus baintear iad i Django 1.9. Féach: Ref: deprecated-features-1.7 le haghaidh sonraí, lena n-áirítear conas úsáid na ngnéithe seo a bhaint.
Baintear
django.utils.dictconfig.Baintear
django.utils.importlib.Baintear
django.utils.tzinfo.Baintear
django.utils.unittest.Baintear an t-ordú
syncdb.Baintear
django.db.models.signals.pre_syncdbagusdjango.db.models.signals.post_syncdb.Baintear tacaíocht do allow_syncdb` ar ródairí bunachar sonraí.
Baintear sioncrónú uathoibríoch aipeanna gan imirce. Tá imirce éigeantach do gach aip mura rachaidh tú ar an roghna:option: migration --run-syncdb.
Baintear na horduithe bainistíochta SQL le haghaidh aipeanna gan imirce,
sql, sqlall`, sqlclear`, sqldropindexes`, agussqlindexes.Baintear tacaíocht do luchtú uathoibríoch daingneáin ``initial_data ``agus sonraí tosaigh SQL.
Caithfear gach samhail a shainiú taobh istigh d'fheidhmchlár suiteáilte nó sainmhíniú: attr: ~django.db.models.options.app_label a dhearbhú. Ina theannta sin, ní féidir iad a iompórtáil sula luchtaítear a n-iarratas. Go háirithe, ní féidir samhlacha a iompórtáil taobh istigh de phacáiste fréimhe feidhmchláir.
Baintear an tsamhail agus an fhoirm
Ipaddressfield. Tá réimse stub fós ann le haghaidh comhoiriúnachta le himirce stairiúla.Ní féidir
requestsiteagusget_current_site () ``a iompórtáil ó ``django.contrib.sites.modelsa thuilleadh.Baintear tacaíocht FastCGI tríd an ordú bainistíochta ``runfcgi`.
Baintear
Django.utils.DataStructures.Sorteddict.Baintear
ModelAdmin.Declared_FieldSets.Baintear na modúil
utila sholáthraíodh comhoiriúnacht ar ais:django.contrib.admin.utildjango.contrib.gis.db.backends.utildjango.db.backends.utildjango.forms.util
Baintear
ModelAdmin.get_FormSets.Tugadh isteach na shims comhoiriúnacha ar chúl chun an
BaseMemcachedCache a athainmniú. Baintear modh _get_memcache_timeout () ``chun ``get_backend_timeout ().Baintear na roghanna
--naturalagus-nle haghaidh: djadmin: dumpdata.Baintear an argóint
use_natural_keysdo serializers.serialize () `.Baintear API príobháideach ``django.forms.forms.get_declared_fields () ``.
Baintear an cumas
SplitDateTimeWidgetle DateTimeField` a úsáid.Baintear an maoin WSGIrequest.request`.
Baintear an rang
Django.utils.DataStructures.Mergedict.Baintear na cóid teanga zh-cn` agus zh-tw`.
Baintear an ``django.utils.functional.memoize () ``inmheánach.
Baintear
django.core.cache.get_cache.Baintear
django.db.models.loading.Ní féidir argóintí inghlaonta a chur chuig ceisteanna a thuilleadh.
Baintear
BaseCommand.requires_model_validationi bhfabharrequires_system_checks. Cuirtear seiceálacha riaracháin in ionad bailíochtóirí riaracháin.Baintear na tréithe
ModelAdmin.Validator_Classagusdefault_validator_class.Baintear
Django.db.backends.databaseValidation.validate_fieldi bhfabhar an modhcheck_field.Baintear an t-ordú bainistíochta bailíochta.
Baintear
django.utils.module_loading.import_by_pathi bhfabhardjango.utils.module_loading.import_string.Baintear clibeanna teimpléad
ssiagus url ``ón leabharlann clib teimpléad ``todhcha`.Ní thacaítear le socruithe tástála bunachar sonraí mar iontrálacha neamhspleácha i socruithe bunachar sonraí, réamhshocraithe ag
TEST_, a thuilleadh.Baintear an rogha
cache_choicesto:class: ~django.forms.ModelChoiceField agus:class: ~django.forms.ModelMultipleChoiceField.Tá luach réamhshocraithe den tréith: attr: RedirectView.permanent <django.views.generic.base.RedirectView.permanent>`athraithe ó ``True` go
False.Baintear
Django.Contrib.SiteMaps.FlatPageSitemapi bhfabharDjango.Contrib.FlatPages.Sitemaps.FlatPageSitemap.Baintear API príobháideach
Django.Test.utils.TestTemplateLoader.Baintear an modúl
django.contrib.contenttypes.generic.