Nótaí scaoilte Django 1.7Link to this heading
Meán Fómhair 2, 2014
Fáilte go dtí Django 1.7!
Clúdaíonn na nótaí scaoilte seo na:ref: gnéithe nua <whats-new-1.7>, chomh maith le roinnt athruithe: ref: athruithe neamh-chomhoiriúnacha ar chúl<backwards-incompatible-1.7> a mbeidh tú ag iarraidh a bheith ar an eolas fúthu agus tú ag uasghrádú ó Django 1.6 nó leaganacha níos sine. <removed-features-1.7>Thosaigh muid: Ref: an próiseas díghabhála do roinnt <deprecated-features-1.7>gnéithe `, agus tá roinnt gnéithe tar éis deireadh a bpróiseas díscrúdaithe agus:ref: `baineadh.
Comhoiriúnacht PythonLink to this heading
Éilíonn Django 1.7 Python 2.7, 3.2, 3.3, nó 3.4. 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.6 an ceann deireanach a thacaíonn le Python 2.6. Is é Django 1.7 an chéad eisiúint chun tacú le Python 3.4.
Níor cheart go mbíonn tionchar ag an athrú seo ach ar líon beag úsáideoirí Django, mar tá formhór na ndíoltóirí córais oibriúcháin inniu ag seoladh Python 2.7 nó níos nuaí mar a leagan réamhshoc Má tá Python 2.6 á úsáid agat fós, áfach, beidh ort cloí le Django 1.6 go dtí gur féidir leat do leagan Python a uasghrádú. Per:doc: `ár mbeartas tacaíochta ', leanfaidh </internals/release-process> Django 1.6 ag fáil tacaíochta slándála go dtí go scaoilfear Django 1.8.
Cad atá nua i Django 1.7Link to this heading
Imirce scéimeLink to this heading
Tá tacaíocht ionsuite ag Django anois d'imirce scéime. Ligeann sé samhlacha a nuashonrú, a athrú agus a scriosadh trí chomhaid imirce a chruthú a léiríonn na hathruithe samhail agus ar féidir iad a reáchtáil ar aon bhunachar sonraí forbartha, stáitsithe nó táirgeachta.
Tá imirce clúdaithe in:doc: a gcuid doiciméadaithe féin, ach is iad seo a leanas cu@@</topics/migrations> id de na príomhghnéithe:
Tá syncdb` díluaite agus tá
imirceina ionad. Ná bíodh imní ort - oibreoidh glaonna chuig syncdb` fós mar a bhí roimhe seo.Soláthraíonn ordú nua ``makemigrations` bealach éasca chun athruithe ar do mhúnlaí a bhrath uathoibríoch agus imirce a dhéanamh dóibh.
Rinneadh
django.db.models.signals.pre_syncdbagusdjango.db.models.signals.post_syncdba chur in ionad:: ~django.db.models.signals.pre_migrate agus:data: ~django.db.models.signals.post_migrate faoi seach. Tá argóintí beag difriúil ag na comharthaí nua seo. Seiceáil an doiciméadú le haghaidh sonraí.Tugtar allow_migrate` anois ar an modh allow_syncdb` ar ródairí bunachar sonraí, ach comhlíonann sé an fheidhm chéanna fós. Oibreoidh ródairí le modhanna allow_syncdb` fós, ach tá an t-ainm modh sin díscoite agus ba chóir duit é a athrú a luaithe is féidir (ní gá aon rud níos mó ná athainmniú).
Ní chuirtear daingneáin initial_data ``luchtaithe a thuilleadh le haghaidh aipeanna le himirce; más mian leat sonraí tosaigh a luchtú d'aip, molaimid duit imirce a chruthú do d'iarratas agus a: class: `~django.db.migrations.operations.runpython nó:class: ~django.db.migrations.operations.runsql a shainiú sa operations`operations`operations` “roinn den imirce.
<test-case-serialized-rollback>Tá iompar aistrithe tástála difriúil d'aipeanna le himirce; go háirithe, ní dhéanfaidh Django aithris ar ais a thuilleadh ar bhunachair sonraí neamh-idirbheartaíochta nó taobh istigh de TransactionTestCase`: ref: `mura n-iarrtar go sonrach `.
Ní mholtar aipeanna gan imirce a bheith ag brath ar (a: class: ~django.db.models.foreignKey nó: class: ~django.db.models.manyToManyField go) aipeanna le himirce.
Athbhreithneoir luchtaithe aipLink to this heading
Go stairiúil, bhí feidhmchláir Django nasctha go docht le samhlacha. Dhéileáil aonair ar a dtugtar “taisce an aip” le feidhmchláir agus samhlacha suiteáilte araon. Úsáideadh an modúl samhlacha mar aitheantóir d'iarratais i go leor APIs.
De réir mar a tháinig coincheap de:doc: Feidhmchláir Django aibí, léirigh an cód seo roinnt easna</ref/applications> imh. Athraíodh é i “chlárlann aipeanna” áit nach bhfuil ról lárnach ag modúil samhlacha a thuilleadh agus áit ar féidir sonraí cumraíochta a cheangal le feidhmchláir.
I measc feabhsuithe go dtí seo tá:
Is féidir le feidhmchláir cód a reáchtáil ag tosú, sula ndéanann Django aon rud eile, leis an modh: meth: ~django.apps.appconfig.ready dá gcumraíocht.
Sanntar lipéid iarratais i gceart do mhúnlaí fiú nuair a shainmhínítear iad lasmuigh de models.py. Ní gá duit: attr: ~django.db.models.options.app_label a shocrú go sainráite níos mó.
Is féidir
models.pya fhágáil go hiomlán mura bhfuil aon mhúnlaí ag feidhmchlár.Is féidir iarratais a athlipéadú leis an tréith: attr: ~django.apps.appconfig.label de chumraíochtaí feidhmchláir, chun oibriú timpeall coimhlintí lipéad.
Is féidir ainm na bhfeidhmchlár a shaincheapadh sa riarachán len:attr: ~django.apps.appconfig.verbose_name cumraíochtaí feidhmchláir.
Glaonn an riarachán go huathoibríoch: func: `~django.contrib.admin.autoDiscovery () `nuair a thosaíonn Django. Dá bhrí sin is féidir leat an líne seo a bhaint as do URLConf.
Allmhairíonn Django gach cumraíocht agus múnla feidhmchláir a luaithe a thosaíonn sé, trí phróiseas cinntitheach agus simplí. Ba cheart go n-éascódh sé sin saincheisteanna allmhairithe a dhiagnóiseadh mar lúba allmhairithe.
Modh nua ar fho-aicmí AllamuighLink to this heading
Chun cabhrú le himirce scéime a chumhachtú agus chun eochracha ilchodacha a chur leis níos éasca in eisiúintí Django amach anseo, tá modh nua riachtanach anois ag an API: class: ~Django.db.Models.Field: ``deconstruct () `.
Ní ghlacann an modh seo aon argóintí, agus tugann sé tuple de cheithre mhír ar ais:
ainm: Ainm tréith an réimse ar a mhúmhúnla, nó ``None ``mura bhfuil sé mar chuid de mhúnlapath: Conair poncanach, Python chuig rang an réimse seo, lena n-áirítear ainm an ranga.args: Argóintí seasaimh, mar liostakwargs: Argóintí eochairfhocal, mar ordacht
Ligeann na ceithre luach seo aon réimse a shraitheadh i gcomhad, chomh maith le ligean an réimse a chóipeáil go sábháilte, an dá chuid riachtanach de na gnéithe nua seo.
Níor chóir go gcuirfeadh an t-athrú seo difear ort mura scríobhann tú fo-aicmí Réimse saincheaptha; má dhéanann tú, b'fhéidir go mbeidh ort an modh deconstruct () `a athchur i bhfeidhm má athraíonn do fho-aicme síniú modh ``__init__ ar bhealach ar bith. Mura n-oidhreann do réimse ach ó réimse ionsuite Django agus mura n-athraíonn sé __init__, níl aon athruithe riachtanach.
Más gá duit deconstruct () ``a shárú, áit mhaith le tosú ná na réimsí Django ionsuite (``django/db/models/fields/__init__.py) mar roinnt réimsí, lena n-áirítear Decimalfield agus Datefield`, é a shárú agus taispeáin conas an modh a ghlaoch ar an sárrang agus ach breise a chur nó a bhaint argóintí.
<migration-serializing>Ciallaíonn sé seo freisin go gcaithfidh gach argóint a bhaineann le réimsí a bheith inshraitheach; chun a fheiceáil cad a mheasaimid inseriálaithe, agus chun a fháil amach conas do ranganna féin a dhéanamh inshraitheach, léigh an:ref: `doiciméadú sraitheoireachta imirce `.
Ag glaoch ar mhodhanna saincheaptha QuerySet ``ón `BainisteLink to this heading
Go stairiúil, ba é an bealach a mholtar chun ceisteanna samhail in-athúsáidte a dhéanamh ná modhanna a chruthú ar rang saincheaptha Bainiste. Ba í an fhadhb leis an gcur chuige seo ná go bhfaighfeá sampla QuerySet ar ais tar éis an chéad ghlao modh agus nach bhféadfá modhanna bainisteora saincheaptha breise a ghlaoch.
Cé nach raibh sé doiciméadaithe, bhí sé coitianta oibriú timpeall ar an gceist seo trí “QuerySet” saincheaptha a chruthú ionas go bhféadfaí modhanna saincheaptha a shlánú; ach bhí roinnt míbhuntáistí ag an réiteach:
Cailleadh an saincheaptha
QuerySet` agus a mhodhanna saincheaptha tar éis an chéad ghlao chuig ``values () ``nó `values_list ().Bhí gá fós ag scríobh saincheaptha
Bainistechun an rang saincheapthaQuerySeta thabhairt ar ais agus b'éigean gach modh a bhí ag teastáil ar anBainistea sheoladh chuig an QuerySet`. Chuaigh an próiseas iomlán i gcoinne prionsabal DRY.
<create-manager-with-queryset-methods>Is féidir leis an modh ranga:Meth: QuerySet.as_Manager () <django.db.models.query.QuerySet.as_manager>`anois go díreach anois:ref: `Bainisteoir a chruthú le modhanna QuerySet:
class FoodQuerySet(models.QuerySet):
def pizzas(self):
return self.filter(kind="pizza")
def vegetarian(self):
return self.filter(vegetarian=True)
class Food(models.Model):
kind = models.CharField(max_length=50)
vegetarian = models.BooleanField(default=False)
objects = FoodQuerySet.as_manager()
Food.objects.pizzas().vegetarian()
Bainisteoir saincheaptha a úsáid agus caidreamh droim ar aisLink to this heading
Is féidir anois:ref: `bainisteoir saincheaptha a shonrú <using-custom-reverse-manager>`agus caidreamh droim ar ais:
class Blog(models.Model):
pass
class Entry(models.Model):
blog = models.ForeignKey(Blog)
objects = models.Manager() # Default Manager
entries = EntryManager() # Custom Manager
b = Blog.objects.get(id=1)
b.entry_set(manager="entries").all()
Creat seiceála córais nuaLink to this heading
Chuireamar nua:doc: Creat seiceála córas chun fadhbanna coitianta a bhrath (cosú</ref/checks> il le samhlacha neamhbhailí) agus leideanna a sholáthar chun na fadhbanna sin a réiteach. Tá an creat inleathnaithe ionas gur féidir leat do sheiceálacha féin a chur le haghaidh d'aipeanna agus leabharlanna féin.
Chun seiceálacha córais a dhéanamh, úsáideann tú an t-ordú bainistíochta: djadmin: check. Cuireann an t-ordú seo in ionad an t-ordú bainistíochta bailíochta níos sine.
Tacaíonn aicearraí riaracháin le criosanna amaLink to this heading
<default-current-time-zone>Tá na aicearraí “inniu” agus “anois” in aice le giuirléidí ionchuir dáta agus ama sa riarachán ag feidhmiú anois in:ref: `crios ama reatha `. Roimhe seo, d'úsáid siad crios ama an bhrabhsálaí, rud a d'fhéadfadh an luach mícheart a shábháil nuair nach raibh sé ag teacht leis an gcrios ama reatha ar an bhfreastalaí.
Ina theannta sin, taispeánann na giuirléidí teachtaireacht cabhrach anois nuair a bhíonn crios ama an bhrabhsálaí agus an fhreastalaí difriúil, chun a shoiléiriú conas a léirmhíneofar an luach a cuireadh isteach sa réimse.
Ag baint úsáide as cursóirí bunachar sonraí mar bhainisteLink to this heading
Roimh Python 2.7, d'fhéadfaí cúrsóirí bunachar sonraí a úsáid mar bhainisteoir comhthéacs. Sainmhínigh cúrsóir an chúltaca sonrach iompar an bhainisteora comhthéacs. Athraíodh iompar cuardaigh modh draíochta le Python 2.7 agus ní raibh cúrsóirí inúsáidte a thuilleadh mar bhainisteoirí comhthéacs.
Ligeann Django 1.7 cúrsóir a úsáid mar bhainisteoir comhthéacs. Is é sin, is féidir an méid seo a leanas a úsáid:
with connection.cursor() as c:
c.execute(...)
in ionad:
c = connection.cursor()
try:
c.execute(...)
finally:
c.close()
Cuardaigh saincheapthaLink to this heading
Is féidir anois cuardaigh agus claochruithe saincheaptha a scríobh don ORM. Oibríonn cuardaigh saincheaptha díreach cosúil le cuardaigh ionsuite Django (m.sh. lte, icontains) agus is coincheap nua iad claochluithe.
Soláthraíonn an rang:class: Django.db.Models.lookup bealach chun oibreoirí cuardaigh a chur le haghaidh réimsí samhail. Mar shampla is féidir oibreoir day_lte a chur le haghaidh Datefields.
Ceadaíonn an rang:class: Django.DB.Models.Transform claochlú luachanna bunachar sonraí roimh an gcuardach deiridh. Mar shampla, is féidir claochlú bliain ``a scríobh a bhaineann bliain ó luach an réimse. Ceadaíonn claochruithe slabhraithe. Tar éis an claochlú ``bliain ``a chur le ``Datefield is féidir scagadh a dhéanamh ar an luach claochlaithe, mar shampla qs.filter (author__birthdate__year__lte=1981).
Le haghaidh tuilleadh faisnéise faoi chuardach saincheaptha agus claochruithe araon féach ar an doiciméad:doc: custom lookups </howto/custom-lookups>.
Feabhsuithe ar láimhseáil earráide FoirmeLink to this heading
``Form.add_Error () ``Link to this heading
Roimhe seo bhí dhá phríomhphatrún ann chun earráidí i bhfoirmeacha a láimhseáil:
<fieldname>Ag ardú a:exc: ~django.core.exceptions.validationError ó laistigh de fheidhmeanna áirithe (m.sh. Field.clean () `, Form.clean_ ()`, nó ``Form.clean () ``le haghaidh earráidí neamh-réimse.)
Ag glacadh le
Foirm. _earráidí ``agus tú ag díriú ar réimse ar leith i `Form.clean ()nó earráidí a chur leis ó lasmuigh de mhodh “glan” (m.sh. go díreach ó radharc).
Bhí sé simplí an chéad phatrún a úsáid ós rud é gur féidir leis an bhfoirm a thuairim ón gcomhthéacs (ie cén modh a d'ardaigh an eisceacht) cá mbaineann na hearráidí agus iad a phróiseáil Is é seo an bealach canónach chun earráidí a chur leis nuair is féidir. Mar sin féin, bhí an dara ceann díreach agus seans ó earráidí, ós rud é gur thit an t-ualach a bhaineann le cásanna imeall a láimhseáil ar an úsáideoir.
Ligeann an modh nua:meth: ~django.forms.form.add_error () `earráidí a chur le réimsí foirme ar leith ó áit ar bith gan a bheith buartha faoi na sonraí mar shampla cásanna de `Django.Forms.utils.errorList` a chruthú nó déileáil le Form.Cleaned_Data. Cuireann an API nua seo in ionad ionramháil ``Foirm. _earráidí ``atá anois ina API príobháideach.
Féach:ref: validating-fields-with-clean mar shampla ag baint úsáide as ``form.add_error () ``.
Meiteashonraí earráLink to this heading
<django.forms.Form.errors>Glacann an tógálaí:EXC: ~Django.Core.Exceptions.ValidationError le meiteashonraí mar earráid code nó params` atá ar fáil ansin le hidirphóireacht isteach sa teachtaireacht earráide (féach: raising-validation-error le haghaidh tuilleadh sonraí); áfach, roimh Django 1.7 cuireadh na meiteashonraí sin a luaithe a cuireadh na hearráidí la:attr: `Form.Earráidí `.
<django.forms.Form.errors.as_data () >:attr: Form.error agus <django.forms.Form.errors>Django.Forms.Utils.ErrorList a stóráil anois na cásanna ValidationError ionas gur féidir na meiteashonraí seo a aisghabháil ag am ar bith tríd an modh nua:meth: Form.errors.as_data.
Is féidir na cásanna ValidationError a aisghabháil ansin a aithint a bhuíochas dá n-earráid ```cód ``a chuireann ar chumas rudaí cosúil le teachtaireacht an earráide a athscríobh nó loighic saincheaptha a scríobh i radharc nuair a bhíonn earráid ar leith i láthair. Is féidir é a úsáid freisin chun na hearráidí a shraitheadh i bhformáid saincheaptha mar XML.
Is modh áisiúlachta é an modh nua:meth: Form.errors.as_json () a thugann teachtaireachtaí earráide ar ais mar aon le <django.forms.Form.errors.as_json () > cóid earráide a shraitheann mar JSON. Úsáideann ``as_json () ```as_data ()` agus tugann sé tuairim faoin gcaoi a bhféadfaí an córas nua a leathnú.
Coimeádáin earráide agus comhoiriúLink to this heading
Bhí gá le hathruithe troma ar na coimeádáin earráide éagsúla chun tacú leis na gnéithe thuas, go sonraí:attr: Form.Errors `, `Django.Forms.Utils.ErrorList`, agus na stórálaí inmheánacha de:exc: ~Django.Core.Exceptions.Vali <django.forms.Form.errors>dationError. Stórálann na coimeádáin seo a d'úsáid teaghráin earráide cásanna ValidationError anois agus tá APIs poiblí oiriúnaithe chun é seo a dhéanamh chomh trédhearcach agus is féidir, ach má bhí APIs príobháideacha á úsáid agat, tá cuid de na hathruithe ag teacht ar ais; féach:ref: validation-error-constructor-and-internal-storage le haghaidh tuilleadh sonraí.
MionghnéitheLink to this heading
django.contrib.adminLink to this heading
Is féidir leat a chur i bhfeidhm anois:attr: ~django.contrib.admin.admin.adminsite.header, :attr: ~django.contrib.admin.admin.admin.title, agus: attr: ~django.contrib.admin.admin.adminsite.index_title tréithe saincheapa:class: ~django.contrib.admin.site in ord chun teideal leathanaigh agus téacs ceanntásc an láithreáin riaracháin a athrú go héasca. Níl gá níos mó teimpléid a shárú!
Úsáideann cnaipí in:mod: django.contrib.admin an maoin CSS border-radius` anois le haghaidh coirnéil cruinn seachas íomhánna cúlra GIF.
Tá ranganna
app- ``agus<app_name>model-ag roinnt teimpléid riaracháin ina gclib<model_name> ``chun an CSS a shaincheapadh in aghaidh an aip nó in aghaidh an t <body>samhail a cheadú.Tá rang
field-<field_name>sa HTML anois ag na cealla athraithe riaracháin chun saincheaptha stíl a chumasú.Is féidir réimsí cuardaigh an riaracháin a shaincheapadh anois in aghaidh iarratais a bhuíochas leis an modh nua: meth: django.contrib.admin.modeladmin.get_search_fields.
<django.contrib.admin.ModelAdmin.fields>Féadfar an modh: Meth: ModelAdmin.get_fields () <django.contrib.admin.ModelAdmin.get_fields>`a athshealbhú chun luach: attr: `ModelAdmin.fields a shaincheapadh.
Chomh maith leis an gcomhréir admin.site.register` atá ann cheana, is féidir leat an maisitheoir nua:func: ~django.contrib.admin.register a úsáid chun a:class: ~django.contrib.admin.modelAdmin a chlárú.
Féadfaidh tú a shonró:meth: ModelAdmin.list_display_links ``= None <django.contrib.admin.ModelAdmin.list_display_links>`chun naisc ar an eangach leathanaigh liosta athraithe a dhíchumasú.
Féadfaidh tú anois: attr: `ModelAdmin.view_on_site <django.contrib.admin.ModelAdmin.view_on_site>`a shonrú chun rialú a dhéanamh ar an nasc “Amharc ar an láithreán” a thaispeáint nó nach bhfuil.
Is féidir leat ordú íslitheach a shonrú do luach a: attr: ModelAdmin.list_display <django.contrib.admin.ModelAdmin.list_display>`tríd an luach `admin_order_field a réamhshocrú le hiphen.
<django.contrib.admin.ModelAdmin.get_changeform_initial_data>Féadfar an modh: Meth: `ModelAdmin.get_ChangeForm_Initial_Data () `a athshealbhú chun iompar saincheaptha a shainiú chun sonraí foirme athraithe tosaigh a shocrú.
django.contrib.authLink to this heading
Any
**kwargspassed toemail_user()are passed to the underlyingsend_mail()call.Is féidir leis an maisitheoir: Func: ~django.contrib.auth.decorators.permission_required liosta ceadanna a ghlacadh chomh maith le cead amháin.
<django.contrib.auth.forms.AuthenticationForm.confirm_login_allowed>Is féidir leat an modh nua:meth: `AuthenticationForm.confirm_login_allow () `a shárú chun an beartas logála isteach a shaincheapadh níos éasca.
Glacann
django.contrib.auth.views.password_reset () ``paraiméadar roghnach ``html_email_template_namea úsáidtear chun ríomhphost HTML ilpháirteach a sheoladh le haghaidh athshocraithe pasfhocal.Cuireadh an modh: Meth: AbstractBaseUser.get_session_auth_hash () <django.contrib.auth.models.AbstractBaseUser.get_session_auth_hash>`leis agus má tá do: setting: `AUTH_USER_MODEL oidhreacht ó:class: ~django.contrib.auth.models.abstractBaseUser, athraíonn pasfhocal úsáideora anois sean-seisiúin má tá an `Django.Contrib.Authentic.leware.session.session.Tá “MiddleWare” cumasaithe. Féach: Ref: `seision-invalidation-on-pasfho-athraithe' le haghaidh tuilleadh sonraí.
django.contrib.formtoolsLink to this heading
Cuimsíonn glaonna chuig WizardView.done () ``anois ``form_dict` chun rochtain níos éasca a cheadú ar fhoirmeacha de réir a n-ainm céim.
django.contrib.gisLink to this heading
django.contrib.messagesLink to this heading
Leanfaidh na cúltaca le haghaidh: mod: django.contrib.messages a úsáideann fianáin, anois socruithe: :setting: SESSION_COOKIE_SECURE agus:setting: SESSION_COOKIE_HTTPONLY.
Cuireann an:ref: próiseálaí comhthéacs teachtaireachtaí <message-displaying>`foclóir leibhéil réamhshocraithe anois faoin ainm ``DEFAULT_MESSAGE_LEVELS`.
Messageobjects now have alevel_tagattribute that contains the string representation of the message level.
django.contrib.redirectsLink to this heading
RedirectFallbackMiddlewarehas two new attributes (response_gone_classandresponse_redirect_class) that specify the types ofHttpResponseinstances the middleware returns.
django.contrib.sessionsLink to this heading
Tá cúltaca seisiúin
"django.contrib.sessions.backends.cached_db"meas anois:setting: SESSION_CACHE_ALIAS. I leaganacha roimhe seo, d'úsáid sé an taisce ``default` i gcónaí.
django.contrib.sitemapsLink to this heading
Úsáideann an creat:MOD: mapa láithreáin <django.contrib.sitemaps>`anois ó:attr: `~django.contrib.siteMaps.SiteMap.LastMod chun ceannteideal
`Last-Modified` a shocrú sa fhreagra. De bharr seo is féidir leis na:class: `~django.middleware.http.ConditionalGetMiddleware` iarratais choinníollacha ``GETa láimhseáil ar léarscáileanna láithreáin a shocraíonnlastmod.
django.contrib.sitesLink to this heading
Ceadaíonn an nua:class: django.contrib.sites.middleware.currentsiteMiddleware an suíomh reatha a shocrú ar gach iarratas.
django.contrib.staticfilesLink to this heading
Féad <staticfiles-storages>far ranganna stórála comhaid statacha: Ref: a fho-aicmiú chun na ceadanna a bhailíodh comhaid statacha agus eolairí a fhaigheann a shárú trí:attr: ~django.core.files.storage.filesystemstorage.fileSystemStorage.file_permissions_mode agus:attr: ~django.core.files.storage.directory_permissions_mode paraiméadair. Féach: DjaDmin: collectstatic mar shampla úsáid.
Faigheann an cúltaca
CachedStaticFilesStoragerang deartháireacha ar a dtugtar: ~django.contrib.staticfiles.storage.manifestStaticFilesStorage nach n-úsáideann an córas taisce ar chor ar bith ach ina ionad sin comhad JSON ar a dtugtarstaticfiles.jsonchun an mapáil a stóráil idir ainm an chomhaid bunaidh (m.sh. css/styles.c ss``) agus ainm an chomhaid hashed (m.sh.css/styles.55e7cbb9ba48.css). Cruthaítear an comhadstaticfiles.jsonagus an t-ordú bainistíochta: djadmin: collectstatic á reáchtáil agus ba chóir go mbeadh sé ina rogha eile níos saoire do stórálaí iargúlta mar Amazon S3.Féach na docs:class: ~django.contrib.staticFiles.Storage.ManifestStaticFilesStorage docs le haghaidh tuilleadh faisnéise.
: djadmin: Glacann findstatic anois le leibhéal bratach verbosity 2, rud a chiallaíonn go dtaispeánfaidh sé cosáin choibhneasta na n-eolairí a chuardaigh sé. Féach: djaDmin: findstatic mar aschur mar shampla.
CacheLink to this heading
Tá rochtain ar chaches cumraithe in:setting: CACHES ar fáil anois trí:data: django.core.cache.caches. Soláthraíonn an réad cosúil le dict seo sampla difriúil in aghaidh an snáithe. Cuireann sé in ionad ``django.core.cache.get_cache () ``atá díluachtaithe anois.
Má chuireann tú cúltaca taisce isteach go díreach, bí ar an eolas nach bhfuil siad sábháilte ó shnáithe níos mó, mar: data: django.core.cache.caches tagann cásanna difriúla in aghaidh an snáithe anois.
Ag sainmhí <CACHES-TIMEOUT>niú argóint:setting: TIMEOUT `den socrú: `CACHES mar
Nonesocraítear na heochracha taisce mar “neamh-éag” de réir réamhshocraithe. Roimhe seo, ní raibh sé indéanta achtimeout = nonea chur chuig modh ``set () ``cúltaca taisce.
Falsaíocht Iarratas Tras-LáithreáinLink to this heading
Éascaíonn an socrú: SETTING: CSRF_COOKIE_AGE úsáid fianáin CSRF bunaithe ar sheisiún.
RíomhphostLink to this heading
send_mail()now accepts anhtml_messageparameter for sending a multipart text/plain and text/html email.Glacann an SMTP: Class: ~django.core.mail.backends.smtp.emailBackend le paraiméadar
timeoutanois.
Stóráil ComhadLink to this heading
Bhí glasáil comhad ar Windows ag brath roimhe seo ar an bpacáiste PyWin32; mura raibh sé suiteáilte, theip ar ghlasáil comhaid go ciúin. Tá an spleáchas sin bainte, agus cuirtear glasáil comhad i bhfeidhm go dúchasach anois ar Windows agus Unix araon.
Uaslódálacha ComhadLink to this heading
Tá paraiméadair bhreise sa tréith nua:attr: uploadedfile.content_type_extra <django.core.files.uploadedfile.UploadedFile.content_type_extra>`a chuirtear chuig an gceannteideal ``content-type` ar uaslódáil comhad.
Rialaíonn an socrú nua:setting: FILE_UPLOAD_DIRECTORY_PERMISSIONS ceadanna córais chomhaid eolairí a cruthaíodh le linn uaslódála comhaid, cosúil:setting: FILE_UPLOAD_PERMISSIONS a dhéanann do na comhaid féin.
<django.db.models.FileField.upload_to>Tá an tréith: Attr: `FileField.upload_to `roghnach anois. Má fhágann nó má thugtar ``None ``nó teaghrán folamh é, ní úsáidfear fo-eolaire chun na comhaid uaslódáilte a stóráil.
Dúntar comhaid uaslódáilte go sainráite anois sula seachadtar an freagra don chliant. Dúntar comhaid uaslódáilte go páirteach chomh fada agus a ainmnítear “comhad” orthu sa láimhseálaí uaslódála.
Storage.get_available_name()now appends an underscore plus a random 7 character alphanumeric string (e.g."_x3a1gho"), rather than iterating through an underscore followed by a number (e.g."_1","_2", etc.) to prevent a denial-of-service attack. This change was also made in the 1.6.6, 1.5.9, and 1.4.14 security releases.
FoirmeachaLink to this heading
Cuimsíonn na clibeanna
<label>agus ```` a rinneadh ag: class: <input>~django.forms.RadioSelect agus:class: ~django.forms.checkboxSelectMultiple agus iad ag lúbsáil thar na cnaipí raidió nó na boscaí seiceála anois tréitheforagus id`, faoi seach. Cuimsíonn gach cnaipe raidió nó bosca seiceála tréithid_for_labelchun aitheantas an eilimint a aschur.Cuimsíonn na clibeanna <textarea>```a rinneadh ag:class: ~django.forms.textarea tréith
maxlengthanois má tá réimse samhail ``max_`long` ag an réimse samhail: :class: ~django.db.Models.textField.Field.choicesnow allows you to customize the "empty choice" label by including a tuple with an empty string orNonefor the key and the custom label as the value. The default blank option"----------"will be omitted in this case.MultiValueFieldallows optional subfields by setting therequire_all_fieldsargument toFalse. Therequiredattribute for each individual field will be respected, and a newincompletevalidation error will be raised when any required fields are empty.Ní gá don modh: Meth: ~django.forms.form.clean ar fhoirm
self.cleaned_dataa thabhairt ar ais a thuilleadh. Má thugann sé foclóir athraithe ar ais ansin úsáidfear é fós.Tar éis aischéimniú sealadach i Django 1.6, is féidir anois: class: ~django.forms.TypedChoiceField
coercemodh luach treallach a thabhairt ar ais.SelectDateWidget.monthscan be used to customize the wording of the months displayed in the select widget.Cuireadh na paraiméadair
min_numagusvalidate_minla:func: ~django.forms.formsets.formset_factory chun líon íosta foirmeacha curtha isteach a bhailíochtú.Rinneadh na meiteachlasanna a úsáideann
Formagus ModelForm ``athoibriú chun tacú le níos mó cásanna oidhreachta. Baineadh an teorannú roimhe seo a chuir cosc ar oidhreacht ó ``Form` agus ModelForm` araon ag an am céanna chomh fada agus a fheictearModelFormar dtús sa MRO.Is féidir anois réimse a bhaint as
Foirm ``agus tú ag fo-aicmiú tríd an ainm a shocrú go ``None.Is féidir anois na teachtaireachtaí earráide a shaincheapadh le haghaidh srianta
`unique, unique_for_date`, agus`unique_together ``ModelForm. D'fhonn tacú leunique_togethernó aonNON_FIELD_ERROReile, féachannModelformanois an eochairNON_FIELD_ERRORsa fhoclóirerror_messagesde rang Meta` istighModelForm. <considerations-regarding-model-errormessages>Féach:ref: `breithnithe maidir le earr_messages an tsamhail `le haghaidh tuilleadh sonraí.
IdirnáisiúnúLink to this heading
Ceadaíonn an tréith: Attr: Django.middleware.locale.localeMiddleware.RESPONSE_REDIRECT_CLASS duit na hathreoruithe arna eisiúint ag an middleware a shaincheapadh.
Stórálann an:class: ~django.middleware.locale.localeMiddleware teanga roghnaithe an úsáideora anois leis an eochair seisiúin
_language. Níor cheart rochtain a fháil air seo ach ag baint úsáide as an tairiseachLANGUAGE_SESSION_KEY. Roimhe seo stóráilíodh é leis an eochair django_language` agus ní raibh an tairiseachLANGUAGE_SESSION_KEYann, ach ba chóir go dtosódh eochracha atá curtha in áirithe do Django le béim. Maidir le comhoiriúnacht ar chúl léiteardjango_languagefós ó in 1.7. Aimirfear na seisiúin chuig an eochair nua de réir mar a bheidh siad scríofa.Tacaíonn an clibe:ttag: blocktrans anois le rogha
trimmed`. Bainfidh an rogha seo carachtair líne nua ó thús agus deireadh ábhair an chlib ``{% blocktrans%} `, cuirfidh sé in ionad aon spás bán ag tús agus deireadh líne agus cumasc na líne go léir i gceann amháin ag baint úsáide as carachtar spáis chun iad a scaradh. Tá sé seo úsáideach go leor chun ábhar chlib ``{% blocktrans%}a iontráil gan na carachtair iontrála a bheith ag críochnú san iontráil chomhfhreagrach sa chomhad .po`, rud a fhágann go bhfuil an próiseas aistriúcháin níos éasca.Nuair a rith tú: djadmin: makemessages ó eolaire fréimhe do thionscadail, dáilfear aon teaghráin bainte go huathoibríoch anois chuig an aip ceart nó ar chomhad teachtaireachta tionscadail. Féach: Ref: `conas-chomhaid teanga a chruthaithe' le haghaidh sonraí.
Cuireann an t-ordú: DjaDmin: makemessages anois an bhratach líne ordaithe
--roimhe ``i gcónaí leis an ordú ``msgmerge, ag coinneáil teaghráin aistrithe roimhe seo i gcomhaid.pole haghaidh teaghráin doiléir.Tugadh isteach na socruithe seo a leanas chun na roghanna fianán teanga a choigeartú: :setting: LANGUAGE_COOKIE_AGE, :setting: LANGUAGE_COOKIE_DOMAIN agus:setting: LANGUAGE_COOKIE_PATH.
Cuireadh leis: doc: /topics/i18n/foirmiúcháin don Esperanto.
Orduithe BainistíochtaLink to this heading
Déanann an rogha nua:rogha: --no-color le haghaidh ``django-admin ``dathú aschur ordaithe bainistíochta a dhíchumasú.
Ceadaíonn na roghanna nua:option: dumpdata --natural-foreign agus:option: dumpdata --natural-primary, agus na hargóintí nua
use_natural_foreign_keysagus use_natural_primary_keys` le haghaidh serializers.serialize () `, eochracha príomhúil nádúrtha a úsáid agus iad ag sraith.Ní gá a thuilleadh ainm an tábla taisce nó an rogha ``--database` a sholáthar don ordú:djadmin: createcachetable. Tógann Django an fhaisnéis seo ó do chomhad socruithe. Má tá iliomad caches nó bunachair sonraí iolracha cumraithe agat, cruthaítear gach tábla taisce.
Fuair an t-ordú: Djadmin: runserver roinnt feabhsúcháin:
Ar chórais Linux, má tá pyinotify suiteáilte, athlódálfar an freastalaí forbartha láithreach nuair a athraítear comhad. Roimhe seo, rinne sé vótaíocht ar an gcóras comhad le haghaidh athruithe gach soicind. Ba chúis leis sin moill bheag roimh athlódáil agus saol ceallraí laghdaithe ar ríomhairí glúine.
Ina theannta sin, athlódálann an freastalaí forbartha go huathoibríoch nuair a dhéantar comhad aistriúcháin a nuashonrú, i.e. tar éis rith: djadmin: compilemessages.
Tá gach iarratas HTTP logáilte chuig an gconsól, lena n-áirítear iarratais ar chomhaid statacha nó “favicon.ico” a bhíodh scagadh amach.
Is féidir le horduithe bainistíochta aschur daite comhréire a tháirgeadh anois faoi Windows má tá uirlis tríú páirtí ANSICON suiteáilte agus gníomhach.
collectstaticcommand with symlink option is now supported on Windows NT 6 (Windows Vista and newer).Oibríonn sonraí tosaigh SQL anois má tá leabharlann Python: pypi: sqlparse suiteáilte.
Tabhair faoi deara go bhfuil sé dlús i bhfabhar oibriú imirce:class: ~django.db.migrations.operations.runsql, a bhaineann leas as an iompar feabhsaithe.
SamhlaLink to this heading
<django.db.models.query.QuerySet.update_or_create>Cuireadh an modh: Meth: `QuerySet.UPDATE_OR_CREATE () `leis.
Ligeann an rogha múnla nua:attr: ~django.db.models.options.default_permissions Meta` duit cruthú na ceadanna réamhshocraithe a chur leis, a athrú agus a scriosadh a shaincheapadh (nó a dhíchumasú).
Faightear Explicit:class: ~django.db.models.onetoonefield for:ref: multi-table-heritance anois i ranganna teibí.
Is féidir anois caidreamh cúil a chruthú do:class: ~django.db.models.onetoonefield a sheachaint trí:attr: ~django.db.models.foreignkey.related_name a shocrú go
'+'nó é a chríochnú le'+'.F expressionssupport the power operator (**).Glacann modhanna
remove () ``agus `clear ()na mbainisteoirí gaolmhara a chruthaighForeignKeyagusGenericForeignKeyanois leis an argóint eochairfhocalbulkchun rialú a dhéanamh cibé acu oibríochtaí a dhéanamh ar an mórchóir (ie ag baint úsáide asQuerySet.Update () `). Réamhshocraithe go ``True.Is féidir anois
Nonea úsáid mar luach fiosrúcháin don chuardach:lookup: iexact.Is féidir anois glaoch a chur ar aghaidh mar luach don tréith: attr: ~Django.db.Models.ForeignKey.LIMIT_CHOICES_TO agus
ForeignKeynóManyTomanyFieldá shainiú.Ardaíonn glaoch: Meth: only () <django.db.models.query.QuerySet.only>`agus:meth: `defer () <django.db.models.query.QuerySet.defer>ar thoradh: meth: `QuerySet.Values () `earráid anois (roimh sin, bheadh earráid bunachar sonraí <django.db.models.query.QuerySet.values>nó sonraí míchearta mar thoradh air).
Is féidir leat liosta amháin a úsáid le haghaidh `index_together ``(seachas liosta liostaí) agus sraith amháin réimsí á shonrú agat.
<django.db.models.ManyToManyField.through_fields>Ceadaítear samhlacha idirmheánacha saincheaptha a bhfuil níos mó ná eochair eachtrach amháin acu d'aon cheann de na samhlacha atá rannpháirteach i gcaidreamh go leor anois, ar choinníoll go sonraíonn tú go sainráite cé na heochracha eachtracha ba chóir a úsáid tríd an argóint nua:attr: `ManyTomanyField.through_fields `a shocrú.
Déanfar earráid anois a shannadh samhail samhail a shannadh do réimse neamhghaolmhar. Roimhe seo bhí sé seo ag obair má ghlac an réimse le sláimhreacha mar ionchur mar a ghlac sé an príomh-eochair.
<django.db.models.Field.get_internal_type>Tá réimsí sláireach bailíochtaithe anois i gcoinne luachanna min agus uasta sonracha cúltaca bunachar sonraí bunaithe ar a gcuid: meth: `internal_type `. Níor chuir bailíochtú réimse samhail roimhe seo cosc ar luachanna as a raon cineálacha sonraí colún gaolmhar a shábháil mar thoradh ar earráid sláine.
Is féidir anois réimse gaolmhar
_ida chur in iúl go soiléirí:meth: ~django.db.models.query.queryset.order_by trí a ainm tréithe a úsáid.
ComharthaíLink to this heading
Cuireadh an argóint enter ``leis an gcomhartha: data: `~django.test.signals.setting_changed.
Is féidir na comharthaí samhail a nascadh anois le
strden fhoirm ``App_Label.ModelName'` a úsáid - díreach cosúil le réimsí gaolmhara - chun tagairt a thabhairt dá gcuid seoltóirí go leisciúil.
TeimpléidLink to this heading
<django.template.Context.pop>Tugann an modh: Meth: Context.push () <django.template.Context.push>`bainisteoir comhthéacs ar ais anois a ghlaonn: meth: `pop () go huathoibríoch nuair a fhágann sé an ráiteas
with`. Ina theann <django.template.Context.push>ta sin, glacann: meth: `push () `anois le paraiméadair a chuirtear chuig an tógálaí ``dicta úsáidtear chun an leibhéal comhthéacs nua a thógáil.Tugann an modh nua:meth: Context.flatten () <django.template.Context.flatten>`cruach ``Context` ar ais mar fhoclóir comhréidh amháin.
Is féidir rudaí Context` a chur i gcomparáid anois le haghaidh comhionannais (go hinmheánach, úsáideann sé seo: meth: Context.flatten () <django.template.Context.flatten>`mar sin ní cuma struchtúr inmheánach gach cruach ``Context` chomh fada agus a leagan comhréadaithe comhionann).
Glacann an chlib teimpléad: ttag: widthratio anois le paraiméadar
`as"chun an toradh a ghabháil in athróg.Glacfaidh an clib teimpléad:ttag: include anois le haon rud a bhfuil modh render () ``(mar shampla ``Teimpléad`) mar argóint. Breathnófar argóintí teaghráin ag baint úsáide as: func: ~django.template.loader.get_template mar i gcónaí.
Is féidir anois teimpléid: ttag: include athshlánach.
Tá tréith tionscnaimh socraithe ag rudaí teimpléad anois nuair is é
TEMPLATE_DEBUG` ``True. Ligeann sé seo bunús teimpléid a iniúchadh agus a logáil lasmuigh den bhonneagar django.template`.Ní dhéantar eisceachtaí TypeError a thostú a thuilleadh nuair a ardaítear iad le linn rindreáil teimpléad.
Glacann na feidhmeanna seo a leanas anois le paraiméadar
dirsatá ina liosta nó tuple chunTEMPLATE_DIRSa shárú:``django.shortcuts.render_to_response () ``
<naive_vs_aware_datetimes>Glacann an scagair:TFilter: time anois le sonraitheoirí ama a bhaineann le crios ama:ref: formáid ```````,```````,
`````agus ``Z <date-and-time-formatting-specifiers>'``agus tá sé in ann cásanna a dhíleá:ref: `time-chrione-aware` `datetimecásanna a bhfuil súil leis.Déanfaidh an clibe:ttag: cache iarracht anois an taisce ar a dtugtar “template_fragments” a úsáid má tá sé ann agus tiocfaidh sé ar ais chun an taisce réamhshocraithe a úsáid ar mhalairt eile. Glacann sé anois le argóint eochairfhocal roghnach ``úsáid ``chun rialú a dhéanamh ar an taisce a úsáideann sé.
Cuireann an scagaire nua:tfilter: truncatechars_html teaghrán a bhaint amach nach bhfuil níos faide ná an líon sonraithe carachtair, ag cur HTML san áireamh.
Iarrataí agus FreagraíLink to this heading
Sonraíonn an tréith nua:attr: HttpRequest.scheme <django.http.HttpRequest.scheme>`scéim an iarratais (``http` nó
httpsde ghnáth).Tacaíonn an gearrgearrth:func: `redirect () <django.shortcuts.redirect>`anois le URLanna coibhneasta.
Cuidíonn an fo-aicme nua:class: ~django.http.JSONResponse de:class: ~Django.http.HttpResponse le freagraí ionchódaithe JSON a chruthú go héasca.
TástálachaLink to this heading
DiscoverRunnerhas two new attributes,test_suiteandtest_runner, which facilitate overriding the way tests are collected and run.Cuireadh an argóint
fetch_redirect_responsela:meth: ~django.test.simpletestcase.assertDirects. Ós rud é nach féidir leis an gcliant tástála URLanna seachtracha a fháil, tugann sé seo deis duit ``AssertreDirects` a úsáid le hathreoruithe nach bhfuil mar chuid de d'aip Django.Láimhseáil cheart na scéime agus comparáidí á dhéanamh in:meth: ~django.test.simpletestCase.assertDirects.
Cuireadh an argóint secure` leis na modhanna iarratais uile de:class: ~django.test.client. Má tá “Fíor”, déanfar an t-iarratas trí HTTPS.
assertNumQueries()now prints out the list of executed queries if the assertion fails.Tá an cás
WSGIrequesta ghineann an láimhseálaí tástála ceangailte anois leis an tréith: attr: Django.Test.Response.wsgi_request.<DATABASE-TEST>Bailíodh na socruithe bunachar sonraí le haghaidh tástála isteach i bhfoclóir darb ainmne:setting: `TEST `.
FóntaisLink to this heading
Feabhsaithe:func: ~django.utils.html.strip_tags cruinneas (ach ní féidir leis toradh sábháilte HTML a ráthú fós, mar a luaitear sa doiciméadú).
BailíochtóiríLink to this heading
RegexValidatornow accepts the optionalflagsand Booleaninverse_matcharguments. Theinverse_matchattribute determines if theValidationErrorshould be raised when the regular expression pattern matches (True) or does not match (False, by default) the providedvalue. Theflagsattribute sets the flags used when compiling a regular expression string.URLValidatornow accepts an optionalschemesargument which allows customization of the accepted URI schemes (instead of the defaultshttp(s)andftp(s)).validate_email()now accepts addresses with IPv6 literals, likeexample@[2001:db8::1], as specified in RFC 5321.
Athruithe neamh-chomhoiriúnacha ar ais i 1.7Link to this heading
allow_syncdb/allow_migrateLink to this heading
Cé go bhféachfaidh Django fós ar mhodhanna allow_syncdb` cé gur chóir iad a athainmniú go allow_migrate`, tá difríocht caolchúiseach ann inar chuirtear samhlacha chuig na modhanna seo.
Maidir le feidhmchláir le himirce, gheobhaidh allow_migrate` pas anois:ref: samhlacha stairiúla `, ar samhlacha leaganacha speisialta iad gan tréithe<historical-models>, modhanna nó bainisteoirí saincheaptha. Déan cinnte nach bhfuil do mhodhanna `allow_migrate` ag tagairt ach do réimsí nó do mhíreanna eile sa samhail. _meta`.
sonraí tosaighLink to this heading
Ní luchtálfaidh aipeanna le himirce daingneáin initial_data` nuair a bheidh imirce críochnaithe acu. Leanfaidh aipeanna gan imirce ag luchtú na daingneáin seo le linn na céime ``imirce a dhéanann aithris ar an sean-iompar ``syncdb`, ach ní bheidh an tacaíocht seo ag aon aipeanna nua.
Ina áit sin, moltar duit sonraí tosaigh a luchtú in imirce má theastaíonn uait (ag baint úsáide as an oibríocht RunPython agus do ranganna samhail); tá an buntáiste breise aige seo nach mbeidh gá le do shonraí tosaigh a nuashonrú gach uair a athraíonn tú an scéim.
Ina theannta sin, cosúil leis an gcuid eile de sheanchód syncdb Django, cuireadh tús le initial_data síos an chosáin díghabhála agus bainfear é i Django 1.9.
``dífhoirmiú () ``agus inshraitheachtLink to this heading
Éilíonn Django anois go mbeidh gach rang Allamuigh agus gach ceann dá n-argóintí tógálaí inshraitheach. <custom-field-deconstruct-method>Má mhodhnóidh tú síniú an tógálaí i do Réimse saincheaptha ar bhealach ar bith, beidh ort modh déconstrúchtacht () `a chur i bhfeidhm; tá an doiciméadú réimse saincheaptha leathnaithe againn le: ref: `treoracha maidir leis an modh seo a chur i bhfeidhm.
Ci <migration-serializing>allaíonn an riachtanas go mbeadh gach argóint allamui:ref: serializable `go gcaithfidh aon chásanna aicme saincheaptha a chuirtear chuig tógálaí Páirce - rudaí cosúil le fo-aicmí Stórála saincheaptha, mar shampla - a shainiú: `modh dífhoirmithe orthu chomh maith<custom-deconstruct-method>, cé go soláthraíonn Django maisitheoir aicme áisiúil a oibreoidh don chuid is mó de na feidhmchláir.
Athruithe luchtaithe aipLink to this heading
Seicheamh tosaitheLink to this heading
Luchtaíonn Django 1.7 cumraíochtaí agus samhlacha feidhmchláir a luaithe a thosaíonn sé. Cé go bhfuil an t-iompar seo níos simplí agus creidtear go bhfuil sé níos láidre, ní féidir aischéimnithe a chur in iúl. Féach: tagairt: `iarratais-fabhtcheartú 'le haghaidh réitigh ar roinnt fadhbanna a d'fhéadfadh a bheith agat.
Scripteanna neamhspleáchaLink to this heading
Má tá Django á úsáid agat i script Python simplí - seachas ordú bainistíochta - agus má tá tú ag brath ar an athróg comhshaoil: envvar: DJANGO_SETTINGS_MODULE, ní mór duit Django a thionscnamh go sainráite anois ag tús do script le:
>>> import django
>>> django.setup()
Seachas sin, buailfidh tú eisceacht ``AppregistryNotready`.
Scripteanna WSGILink to this heading
Go dtí Django 1.3, ba é an bealach a mholtar chun feidhmchlár WSGI a chruthú ná:
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
I Django 1.4, feabhsaíodh tacaíocht do WSGI agus athraíodh an API go:
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
Má tá tú fós ag úsáid an chéad stíl i do script WSGI, ní mór duit uasghrádú a dhéanamh go dtí an dara ceann, nó buailfidh tú eisceacht ``AppregistryNotready`.
Comhsheasmhacht clárlainne aipLink to this heading
Ní féidir feidhmchláir iolracha suiteáilte a bheith agat leis an lipéad céanna a thuilleadh. I leaganacha roimhe seo de Django, níor oibrigh sé seo i gceart i gcónaí, ach níor thimpiste go díreach ach an oiread.
Má tá dhá aip agat a bhfuil an lipéad céanna orthu, ba cheart duit AppConfig a chruthú le haghaidh ceann amháin acu agus a :rang:`~ django.apps.AppConfig.label` a shárú ann. Ba cheart duit do chód a choigeartú ansin cibé áit a ndéanann sé tagairt don fheidhmchlár seo nó dá mhúnlaí leis an seanlipéad.
Ní féidir an tsamhail chéanna a allmhairiú faoi dhó trí chosáin éagsúla a thuilleadh. Amhail Django 1.6, d'fhéadfadh sé seo tarlú ach amháin má tá tú ag cur eolaire agus fochomhadlann de láimh ar PYTHONPATH. Déan tagairt don rannán ar leagan amach nua an tionscadail sa 1.4 nótaí scaoilte le haghaidh treoracha imirce.
Ba chóir duit a chinntiú go bhfuil:
Sainmhínítear gach samhail in iarratais atá liostaithe in:setting: INSTALLED_APPS nó a bhfuil sainmhíniú acu: attr: ~django.db.models.options.app_label.
Ní dhéantar samhlacha a allmhairiú mar fho-iarmhairt dá bhfeidhmchlár a luchtú. Go sonrach, níor cheart duit samhlacha a iompórtáil i modúl fréimhe feidhmchláir ná sa mhodúl a shainmhíníonn a rang cumraíochta.
Déanfaidh Django na ceanglais seo a fhorfheidhmiú amhail leagan 1.9, tar éis tréimhse díscrúdaithe.
Fo-aicmiú AppCommandLink to this heading
Caithfidh fo-aicmí de:class: ~django.core.management.appCommand modh a:meth: ~django.core.management.appCommand.handle_app_config a chur i bhfeidhm anois in ionad ``handle_app () ``. Faigheann an modh seo sampla: class: ~django.apps.appconfig in ionad modúl samhlacha.
Feidhmchláir ionbhreathnúLink to this heading
Ós rud é go dtacaíonn: SETTING: INSTALLED_APPS le ranganna cumraíochta feidhmchláir anois i dteannta le modúil feidhmchláir, ba cheart duit athbhreithniú a dhéanamh ar an gcód a fhaigheann rochtain ar an socrú seo go díreach agus clárlann an aipeanna a úsáid (:attr: django.apps) ina ionad.
Chaomhnaigh clárlann an aip roinnt gnéithe den tsean-taisce aip. Cé gur API príobháideach a bhí i taisce an aip, bainfear modhanna agus argóintí atá as feidhm trí chosán caighdeánach díghníomhaíochta, seachas na hathruithe seo a leanas a théann i bhfeidhm láithreach:
Ardaíonn
get_model: exc: LookuPerror in ionadNonea thabhairt ar ais nuair nach bhfaightear aon mhúnla.Níl an argóint
only_installledde get_model` agusget_modelsann a thuilleadh, ná níl an argóint seed_cache` de get_model ``get_model`.
Orduithe bainistíochta agus ordú de:shocrú: INSTALLED_APPSLink to this heading
Nuair a sholáthraíonn roinnt feidhmchlár orduithe bainistíochta leis an ainm céanna, lódálann Django an t-ordú ón bhfeidhmchlár a thagann den chéad uair i : socrú: INSTALLED_APPS. Lódáil leaganacha roimhe seo an t-ordú ón bhfeidhmchlár a tháinig go deireanach.
Tugann sé seo fionnachtain ar orduithe bainistíochta i gcomhréir le codanna eile de Django atá ag brath ar an ord de:setting: INSTALLED_APPS, mar shampla comhaid statacha, teimpléid agus aistriúcháin.
Tógálaí agus stóráil inmheánach ValidationErrorLink to this heading
Tá athrú tagtha ar iompar an tógálaí ValidationError` nuair a fhaigheann sé coimeádán earráidí mar argóint (m.sh. liosta` nó Liosta Error``):
Athraíonn sé aon teaghráin a aimsíonn sé go cásanna de
ValidationErrorsula gcuireann sé iad lena stóráil inmheánach.Ní stóráilíonn sé an coimeádán ar leith ach cóipeálann sé a ábhar chuig a stóráil inmheánach féin; roimhe seo cuireadh an coimeádán féin leis an gcás “ValidationError” agus úsáideadh é mar stóráil inmheánach.
Ciallaíonn sé seo má rochtain agat ar na stórálaí inmheánacha ValidationError, mar shampla error_list; error_dict`; nó luach tuairisceáin update_error_dict () ``, d'fhéadfá cásanna ``validationError a fháil ina bhfaighidh tú teaghráin roimhe seo.
Chomh maith leis sin má shannaigh tú luach tuairisceáin update_error_dict () ``go díreach chuig ``Foirm. Féadfaidh tú cásanna ``liosta a chur leis go neamhthuiscint ina bhfuiltear ag súil le cásanna `ErrorList. Is fadhb í seo mar murab ionann agus liosta simplí, tá a fhios ag ErrorLiost conas cásanna de ValidationError a láimhseáil.
<django.forms.Form.add_error () >Tá an chuid is mó de na cásanna úsáide a thug ráthas úsáid na APIs príobháideacha seo clúdaithe anois leis an modh nua:meth: `Form.add_error ():
# Old pattern:
try:
...
except ValidationError as e:
self._errors = e.update_error_dict(self._errors)
# New pattern:
try:
...
except ValidationError as e:
self.add_error(None, e)
Má theastaíonn comhoiriúnacht Django <= 1.6 agus 1.7 uait <django.forms.Form.add_error () > ní féidir leat a úsáid:meth: Form.add_error (:D) ós rud é nach raibh sé ar fáil roimh Django 1.7, ach is féidir leat an réiteach seo a leanas a úsáid chun aon ``liosta ``a thiontú go ``Liosta Error`:
try:
...
except ValidationError as e:
self._errors = e.update_error_dict(self._errors)
# Additional code to ensure ``ErrorDict`` is exclusively
# composed of ``ErrorList`` instances.
for field, error_list in self._errors.items():
if not isinstance(error_list, self.error_class):
self._errors[field] = self.error_class(error_list)
Iompar Locmemcache maidir le hearráidí picéilLink to this heading
Bhí neamhréireacht ann i leaganacha roimhe seo de Django maidir leis an gcaoi a láimhseálann cúltaca taisce éagsúla earráidí picéar. D'úsáid django.core.cache.backends.locmem.locmemcache a theipeann go ciúin nuair a tharlaíonn earráid den sórt sin, rud atá míchomhsheasmhach le cúltaca eile agus mar thoradh air earráidí cache-shonracha. Socraíodh é seo i Django 1.7, féach: ticéad: 21200 le haghaidh tuilleadh sonraí.
Gintear eochracha taisce anois ó URL iomlán an iarrataisLink to this heading
Gin leaganacha roimhe seo d'eochracha taisce Django ag baint úsáide as cosán iarratais agus sreang ceisteanna ach ní an scéim nó an óstach. Dá mbeadh feidhmchlár Django ag freastal ar iolrchuid fofhearann nó fearainn, d'fhéadfadh eochracha taisce imbhualadh I Django 1.7, athraíonn eochracha taisce de réir URL iomlán na hiarratais lena n-áirítear scéim, óstach, cosán agus sreang fiosrúcháin. Mar shampla, gintear an chuid URL d'eochair taisce anois ó https://www.example.com/path/to/?key=val seachas ``/path/to/? eochair = val `. Beidh na heochracha taisce a ghineann Django 1.7 difriúil ó na heochracha a ghineann leaganacha níos sine de Django. Tar éis uasghrádú a dhéanamh go Django 1.7, is é an chéad iarratas ar aon URL a chóstáiltear roimhe seo ná cailleadh taisce.
Ag dul None chuig ``Manager.db_Manager () ``Link to this heading
I leaganacha roimhe seo de Django, bhí sé indéanta ``db_manager (Using = None) ``a úsáid ar shampla bainisteora samhail chun sampla bainisteora a fháil ag baint úsáide as iompar ródaithe réamhshocraithe, ag dul i bhfeidhm ar aon ródú bunachar sonraí sonraithe de láimh. I Django 1.7, táirgfidh luach ``None ``a chuirtear chuig db_manager ródaire a choinníon* aon ródú bunachar sonraí sannta de láimh - ní athshocrófar an bainisteoir*. Bhí sé seo riachtanach chun neamhréireacht a réiteach ar an mbealach a chuaigh faisnéis ródaithe thar chomhpháirtithe. Féach: ticéad: 13724 le haghaidh tuilleadh sonraí.
D'fhéadfadh go mbeadh gá le pytzLink to this heading
Má láimhseálann do thionscadal amanna dáta roimh 1970 nó tar éis 2037 agus má ardaíonn Django a:exc: ValueError agus tú ag teacht ar aghaidh orthu, beidh ort: pypi: pytz a shuiteáil. D'fhéadfadh go mbeadh tionchar ag an bhfadhb seo ort má úsáideann tú formáidí dáta a bhaineann le crios ama Django nó: mod: django.contrib.syndication.
Straitéis atreoraithe logála isteach riaracháinLink to this heading
Go stairiúil, chuir suíomh riaracháin Django an t-iarratas ó úsáideoir neamhúdaraithe nó neamhfhíordheimhnithe go díreach chuig an radharc logála isteach, gan atreorú HTTP. I Django 1.7, d'athraigh an t-iompar seo chun cloí le sreabhadh oibre níos traidisiúnta ina n-atreorófar aon iarratas neamhúdaraithe chuig leathanach riaracháin (trí chód stádais HTTP 302) chuig an leathanach logála isteach, leis an paraiméadar ```next ``socraithe chuig an gcosán tagartha. Déanfar an t-úsáideoir a atreorú ansin tar éis logáil isteach rathúil.
Tabhair faoi deara freisin go bhfuil an fhoirm logála isteach riaracháin nuashonraithe ionas nach bhfuil an réimse this_is_the_login_form (nach úsáidtear anois) agus go bhfuil an cód validationError socraithe go dtí an eochair invalid_login níos rialta.
Éilíonn ``select_for_update () ``idirbheartLink to this heading
Go stairiúil, d'fhéadfaí ceisteanna a úsáideann: meth: `~django.db.models.query.queryset.select_for_update () `a fhorghníomhú i mód autocommit, lasmuigh d'idirbheart. Roimh Django 1.6, cheadaigh modh idirbhearta uathoibríoch Django é seo a úsáid chun taifid a ghlasáil go dtí an chéad oibríocht scríbhneoireachta eile. Thug Django 1.6 isteach autocommit ar leibhéal bunachar sonraí; ó shin i leith, cuireann forghníomhú i gcomhthéacs den sórt sin éifeacht ``select_for_update () `i bhfolamh. Glactar leis, dá bhrí sin, gur earráid é anois agus ardaíonn sé eisceacht.
Rinneadh an t-athrú seo <DATABASE-ATOMIC_REQUESTS>toisc gur féidir earráidí den sórt sin a bheith mar thoradh ar aip a bhfuil súil le hidirbhearta domhanda a áireamh (m.sh.: setting: ATOMIC_REQUESTS `socraithe go `True`), nó sean-iompar uathoibrithe Django, i dtionscadal a ritheann gan iad; agus ina bhreis, féadfaidh earráidí den sórt sin a léiriú mar fhabhtanna éillithe sonraí. Rinneadh é freisin i Django 1.6.3.
Féadfaidh an t-athrú seo a bheith ina chúis le teipeanna tástála má úsáideann tú ``select_for_update () ``i rang tástála atá ina fho-aicme de:class: ~django.test.transactionTestCase seachas: ~django.test.testcase seachas: ~django.test.testcase.
Contrib middleware bainte ó réamhshocraithe MIDDLEWARE_CLASSESLink to this heading
Díscaoileadh an: Ref: app loading refactor <app-loading-refactor-17-release-note>`as samhlacha ó aipeanna nach cuid den socrú: setting: `INSTALLED_APPS. Nocht sé seo neamhoiriúnacht idir an réamhshocraithe:setting: INSTALLED_APPS agus MIDDLEWARE_CLASSES sna réamhshocraithe domhanda (django.conf.global_settings). Chun na socruithe seo a shioncronú agus rabhaidh dífhabhtaithe a chosc agus tú ag déanamh rudaí cosúil le feidhmchláir in-athúsáidte a thástáil le socruithe íosta, :class: ~django.contrib.auth.middleware.AuthenticationMiddleware, agus:class: ~django.contrib.messages.middleware Baineadh MessageMiddleware` ó na réamhshocruithe. Cuirfear na ranganna seo san áireamh fós sna socruithe réamhshocraithe a ghineann: djadmin: startproject. Ní bheidh tionchar ag an athrú seo ar chuid is mó de na tionscadail ach mura raibh tú ag dearbhú roimhe seo an MIDDLEWARE_CLASSES i do shuíomhanna tionscadail agus ag brath ar an réamhshocrú domhanda ba cheart duit a chinntiú go bhfuil na réamhshocruithe nua ag teacht le riachtanais do thionscadail. Ba chóir duit seiceáil freisin le haghaidh aon chód a fhaigheann rochtain ar Django.conf.GLOBAL_settings.middleware_classes go díreach.
IlghnéitheachLink to this heading
Tá paraiméadar breise
content_type_extraag an modh:Meth: django.core.files.uploadhandler.fileUploadHandler.new_file () `. Má tá saincheap:class: `~django.core.files.uploadhandler.fileUploadHandler agat a chuireann ``new_file () `i bhfeidhm, bí cinnte go nglacann sé leis an bparaiméadar nua seo.ModelFormSets no longer delete instances whensave(commit=False)is called. Seecan_deletefor instructions on how to manually delete objects from deleted forms.Astaíonn daingneáin folamh ag luchtú
RuntimeWarningseachas ardú: exc: ~Django.Core.Management.CommandError.django.contrib.staticfiles.views.serve()will now raise anHttp404exception instead ofImproperlyConfiguredwhenDEBUGisFalse. This change removes the need to conditionally add the view to your root URLconf, which in turn makes it safe to reverse by name. It also removes the ability for visitors to generate spurious HTTP 500 errors by requesting static files that don't exist or haven't been collected yet.Sainmhínítear an modh
django.db.models.Model.__eq__()anois ar bhealach ina mbreathnaítear ar chásanna de shamhail seachfhreastalaí agus a bhunsamhail nuair a mheaitseálann eochracha príomhúla. Roimhe seo níor measadh go raibh ach cásanna den aicme chéanna cruinn cothrom ar eochairmheaitseáil na bunscoile.An: Meth: Django.DB.Models.Model. Tá modh __eq__ athraithe ionas nach measfar dhá chás ``Samhail ``gan príomhluachanna comhionann (mura bhfuil siad an cás céanna).
An: Meth: Django.DB.Models.Model. Ardóidh modh __hash__ TypeError` anois nuair a ghlaonn sé ar chás gan príomhluach eochair. Déantar é seo chun luachanna
__hash__inathraithe i gcoimeádáin a sheachaint.AutoFieldcolumns in SQLite databases will now be created using theAUTOINCREMENToption, which guarantees monotonic increments. This will cause primary key numbering behavior to change on SQLite, becoming consistent with most other SQL databases. This will only apply to newly created tables. If you have a database created with an older version of Django, you will need to migrate it to take advantage of this feature. For example, you could do the following:Úsáid:djaDmin: dumpdata chun do chuid sonraí a shábháil.
Athainmnigh an comhad bunachar sonraí atá ann cheana (coinnigh mar chúltaca é).
Run:djaDmin: imirce chun an scéim nuashonraithe a chruthú.
Úsáid: DjaDmin: loaddata chun na daingneáin a onnmhairigh tú iontu iontu a iompórtáil (1).
Django.Contrib.Auth.Models.AbstractUserní shainmhíníonn a:meth a thuilleadh: ~django.db.models.model.get_absolute_url () `modh. D'fhill an sean-sainmhíniú `” /users/%s/”% urlquote (self.username)`` a bhí treallach ós rud é go bhféadfadh feidhmchláir url den sórt sin a shainiú in urlpatterns` nó nach bhféadfadh iarratais. Sainmhínigh modh ``get_absolute_url () ``ar do réad úsáideora saincheaptha féin nó úsáide:setting: ABSOLUTE_URL_OVERRIDES más mian leat URL d'úsáideoir.Tá feidhmiúlacht statach ag freastal sócmhainní an ranga:class: django.test.liveservertestcase simplithe: Anois níl sé in ann ach ábhar atá i láthair cheana féin a sheirbheáil in:setting: STATIC_ROOT nuair a reáchtáiltear tástálacha. Tá an cumas chun na sócmhainní statacha go léir a sheirbheáil go trédhearcach (cosú <DEBUG>il leis an méid a fhaigheann duine leis: socrú: DEBUG = True `ag am forbartha) chuig rang nua a chónaíonn san fheidhmchlár `staticfiles (an ceann atá i ndáiríre i gceannas ar an ngné den sórt sin): :class: django.contrib.staticfiles.testing.clistativeServertestcase. Is é sin le rá, tá ``Liveservertestcase ``féin chomh cumhachtach ach ag an am céanna tá níos lú draíochta aige.
Is é an réasúnaíocht atá taobh thiar de seo ná spleáchas ar chód neamh-contrib a bhaint ar iarratais contrib.
Ní thacaítear leis an sean-chomhréir URI taisce (m.sh.
"locmem: //") a thuilleadh. D'oibrigh sé fós, cé nár doiciméadaíodh nó nár thacaíodh leis go hoifigiúil. Má tá tú fós á úsáid agat, nuashonraigh an chomhréir reatha: setting: CACHES le do thoil.Tá athrú tagtha ar ordú réamhshocraithe réimsí
Foirmi gcás oidhreachta chun gnáth-MRO Python a leanúint. Aimsítear réimsí anois trí athrá tríd an MRO ar ais agus an rang is barr ag teacht go deireanach. Níl tionchar aige seo ort ach amháin má bhraith tú ar ordú réamhshocraithe an réimse agus réimsí sainmhínithe agat ar an aicme reatha* agus* araon ar thuismitheoir Foirm `.Baineadh an argóint
riachtande:class: ~django.forms.selectDateWidget. Déanann an giuirléid seo meas anois ar thréithis_requiredréimse an fhoirme cosúil le giuirléidí eile.Is maoin léite amháin é
Widget.is_Hiddenanois, ag fáil a luach trí input_type == 'hidden'` a fheiceáil ar láithreacht ``input_type == 'hidden'`.select_related()now chains in the same way as other similar calls likeprefetch_related. That is,select_related('foo', 'bar')is equivalent toselect_related('foo').select_related('bar'). Previously the latter would have been equivalent toselect_related('bar').Thit GeodJango tacaíocht do GEOS <3.1.
<DATABASE-AUTOCOMMIT>Cuirtear an modh init_connection_state` de chúlchúlachtaí bunachar sonraí i mód autocommit anois (mura socraíonn tú: AUTOCOMMIT `go `False`). Má choinníonn tú cúltaca bunachar sonraí saincheaptha, ba cheart duit an modh sin a sheiceáil.
Athainmníodh an tréith
Django.db.backends.basedatabaseFeatures.allows_primary_key_0goallows_auto_pk_0chun cur síos níos fearr air. Is “True” é do gach cúltaca bunachar sonraí atá san áireamh le Django seachas MySQL a cheadaíonn eochracha bunscoile le luach 0. Ní chuireann sé cosc ach eochracha príomhúla* autoincrement* le luach 0.Tá cosc curtha ar réimsí samhail a shainmhínítear i samhail tuismitheora toisc go gcruthaíonn sé seo débhríocht in iompar an tsamhail a Ina theannta sin, bíonn earráid seiceála córais mar thoradh ar réimsí comhraic san ordlathas oidhreachta samhail. Mar shampla, má úsáideann tú iloidhreacht, ní mór duit príomhréimsí saincheaptha bunscoile a shainiú ar mhúnlaí tuismitheoirí, ar shlí eile beidh na réimsí réamhshocraithe ``id ``ag teacht isteach. Féach:ref: model-multiple-oidhreance-topic le haghaidh sonraí.
Filleann ``django.utils.translation.parse_accept_lang_header () ``áiteanna litreacha beaga anois, in ionad an cás mar a cuireadh ar fáil é. Toisc gur chóir cóireáil le háiteanna neamh-íogair, tugann sé seo deis dúinn brath áitiúil a bhrostú.
django.utils.translation.get_language_from_path () ``agus ``django.utils.translation.trans_real.get_supported_language_variant ()anois níl argóint ``tacaithe ``a thuilleadh.Tacaíonn an radharc
shortcuti django.contrib.contenttypes.views` anois le URLanna coibhneasta le prótacail (m.sh.//example.com).GenericRelationnow supports an optionalrelated_query_nameargument. Settingrelated_query_nameadds a relation from the related object back to the content type for filtering, ordering and other query operations.Agus tástálacha á reáchtáil ar PostgreSQL, beidh rochtain léite ag teastáil uir:setting: USER ar an mbunachar sonraí postgres ionsuite. Tá sé seo in ionad an iompar roimhe seo maidir le nascadh leis an mbunachar sonraí neamh-thástála iarbhír.
Mar chuid den chreat seiceála córas:doc:
, :ref: `réim</ref/checks> sí, samhlacha agus bainisteoirí samhlacha `cuireann gach duine modh ``check <field-checking>()cláraithe leis an gcreat seiceála i bhfeidhm. Má tá modh ann cheana agat ar a dtugtar ``check () ``ar cheann de na rudaí seo, beidh ort é a athainmniú.Mar a luadh thuas sa chuid “Cache” de “Mionghnéithe”, ag sainmhíniú argóint: socrú: TIMEOUT `den socrú: <CACHES-TIMEOUT>CACHES` mar
Nonesocraítear na heochracha taisce mar “neamh-éag”. Roimhe seo, leis an gcúltaca memcache, socraíodh a: socrú: TIMEOUT <CACHES-TIMEOUT>`de `0` eochracha neamh-éag, ach bhí sé seo neamhréidh le hiompar socraithe agus éag (ie gan aon chaching)set (“key”, “value”, timeout = 0) ``. Más mian leat eochracha nach bhfuil in éag, nuashonraigh do shocruithe le do thoil chun ``None ``a úsáid in ionad ``0mar a ainmníonn an dara ceann anois socraithe agus éag sna socruithe freisin.Tá meas anois ag na horduithe bainistíochta sql*` an modh allow_migration () ``de:setting: `DATABASE_ROUTERS. Má tá samhlacha agat sioncronaithe le bunachair sonraí neamh-réamhshocraithe, bain úsáid as an bhratach ``--bunachar sonraí ``chun SQL a fháil do na samhlacha sin (roimhe seo bheadh siad san áireamh san aschur i gcónaí).
Titeann díchódú an teaghrán fiosrúcháin ó URLanna anois ar ais chuig an ionchódú ISO-8859-1 nuair nach bhfuil an t-ionchur bailí UTF-8.
Leis an django.contrib.auth.middleware.sessionAuthenticationMiddleware` a chur leis an teimpléad réamhshocraithe tionscadail (réamh-1.7.2 amháin), ní mór bunachar sonraí a chruthú sula bhfaightear rochtain ar leathanach ag baint úsáidea:djadmin: runserver.
Beidh an argóint
scéimeanna ``a chur le `URLValidatorle feiceáil mar athrú neamh-chomhoiriúnach le cúl má bhí tú ag úsáid abairt rialta saincheaptha roimhe seo chun scéimeanna a bhailíochtú. Teipfidh ar aon scéim nach bhfuil liostaithe i “scéimeanna” bailíochtú, fiú má mheaitseálann an abairt rialta leis an URL a thugtar.
Gnéithe atá díscríofa i 1.7Link to this heading
django.core.cache.get_cacheLink to this heading
Tá django.core.cache.get_cache curtha in ionad ag: data: django.core.cache.caches.
django.utils.dictconfig/django.utils.importlibLink to this heading
Ba chóipeanna iad django.utils.dictconfig agus django.utils.importlib cóipeanna de réir seach:mod: logging.config agus:mod: importlib a chuirtear ar fáil do leaganacha Python roimh 2.7. Tá siad díscríofa.
django.utils.module_loading.import_by_pathLink to this heading
Gabhann an fheidhm reatha django.utils.module_loading.import_by_path eisceachtaí AttributeError, ImportError`, agus ValueError, agus athardaíonn sé: exc: ~Django.Core.Exceptions.imProperlyConfigured. De bharr mascáil eisceachta den sórt sin tá sé deacair gan ghá fadhbanna iompórtála ciorclach a dhiagnóisiú, toisc go dtugann sé cuma go dtagann an fhadhb ón taobh Tá sé curtha i bhfabhar: meth: ~django.utils.module_loading.import_string.
django.utils.tzinfoLink to this heading
Chuir django.utils.tzinfo dhá fho-aicme: ~datetime.tzinfo ar fáil, LocalTimeZone agus FixedOffset. Tá siad curtha i bhfabhar roghanna níos cearta a sholáthraí:mod: django.utils.timezone, :func: django.utils.timezone.get_default_timezone agus:func: django.utils.timezone.get_fixed_timezone.
django.utils.unittestLink to this heading
Chuir django.utils.unittest rochtain aonfhoirmeach ar an leabharlann unittest2 ar gach leagan Python. Ós rud é gur tháinig unittest2` mar modúl caighdeánach leabharlainne: mod: unittest i Python 2.7, agus go dtiteann Django 1.7 tacaíocht do leaganacha Python níos sine, níl an modúl seo úsáideach níos mó. Tá sé díscríofa. Úsáid: MOD: unittest ina ionad.
Django.utils.DataStructures.SorteddictLink to this heading
Cuireadh ~Collections.OrderedDict as:Class: ~Collections.OrderedDict leis an leabharlann caighdeánach i Python 2.7, níl SortedDict ag teastáil a thuilleadh agus tá sé díscoite.
Baineadh an dá mhodh breise, dlús a sholáthraíonn Sorteddict (insert () ``agus ``value_for_index ()). Má bhí tú ag brath ar na modhanna seo chun struchtúir cosúil le réimsí foirme a athrú, ba cheart duit anois na `OrderedDict' seo a chóireáil mar rudaí do-athraithe agus iad a athrú chun a n-ábhar a athrú.
Mar shampla, b'fhéidir gur mhaith leat MyFormClass.base_Fields` a athrú (cé nach meastar gur API poiblí an tréith seo) chun ordú réimsí do gach cás MyFormClass a athrú; nó ar an gcaoi chéanna, d'fhéadfá self.fields a shárú ón taobh istigh de MyFormClass. __init__ () `, chun na réimsí a athrú le haghaidh foirm áirithe. Mar shampla (ó Django féin):
PasswordChangeForm.base_fields = OrderedDict(
(k, PasswordChangeForm.base_fields[k])
for k in ["old_password", "new_password1", "new_password2"]
)
Suíomh saincheaptha SQL do phacáiste samhlachaLink to this heading
Roimhe seo, dá mbeadh samhlacha eagraithe i bpacáiste (myapp/models/) seachas myapp/models.py, chuardódh Django sonraí tosaigh SQL i myapp/models/sql/. Socraíodh an fabht seo ionas go ndéanfaidh Django cuardach ar myapp/sql/ mar a dhoiciméadaithe. Tar éis an tsaincheist seo a shocrú, cuireadh imirce leis a dhíspreagann sonraí tosaigh SQL. Dá bhrí sin, cé go bhfuil an t-athrú seo ann fós, níl an diúltú neamhábhachtach mar bainfear an ghné iomlán i Django 1.9.
Athfhoirmiú django.contrib.sitesLink to this heading
Soláthraíonn django.contrib.sites feidhmiúlacht laghdaithe nuair nach bhfuil sé in:setting: INSTALLED_APPS. Cuireann an t-athfhachtóir luchtaithe aip roinnt srianta sa chás sin. Mar thoradh air sin, bogadh dhá réad, agus tá na sean-áiteanna measartha:
RequestSitenow lives indjango.contrib.sites.requests.get_current_site()now lives indjango.contrib.sites.shortcuts.
Tréith declared_fieldsets ar ModelAdmin`Link to this heading
Tá ModelAdmin.Declared_FieldSets imithe. In ainneoin gur API príobháideach é, rachaidh sé trí chosán diúltaithe rialta. Baineadh úsáid as an tréith seo den chuid is mó trí mhodhanna a sheachain ``ModelAdmin.get_FieldSets () ``ach meastar gur fabht é seo agus tugadh aghaidh air.
Athfhoirmiú django.contrib.contenttypesLink to this heading
Ós rud é go sainmhíníodh django.contrib.contenttypes.generic rudaí a bhaineann le riarachán agus samhail araon, d'fhéadfadh allmhairiú an mhodúil seo fo-iarsmaí gan choinne a spreagadh. Mar thoradh air sin, roinníodh a ábhar go fo-mhodúil: mod: ~django.contrib.contenttypes agus tá an modúl django.contrib.contenttypes.generic díluaite:
GenericForeignKeyandGenericRelationnow live infields.BaseGenericInlineFormSetandgeneric_inlineformset_factory()now live informs.GenericInlineModelAdmin,GenericStackedInlineandGenericTabularInlinenow live inadmin.
SyncdbLink to this heading
Tá an t-ordú syncdb díluaite i bhfabhar an ordaithe nua:djadmin: migrate. Glacann migrate na hargóintí céanna le syncdb a úsáidtear chun cúpla ceann eile, mar sin tá sé sábháilte an t-ainm atá á ghlaoch agat a athrú agus rud ar bith eile.
Athainmníodh modúil util go utilsLink to this heading
Athainmníodh na cásanna seo a leanas de util.py` sa chód-bhunachar Django go utils.py in iarracht gach tagairt util agus utils a aontú:
django.contrib.admin.utildjango.contrib.gis.db.backends.utildjango.db.backends.utildjango.forms.util
Modh get_formsets ar ModelAdmin`Link to this heading
Tá ModelAdmin.get_FormSets` curtha i bhfabhar an nua:meth: ~django.contrib.admin.modeladmin.get_formsets_with_inlines, d'fhonn láimhseáil níos fearr an cás a bhaineann le línte a thaispeáint go roghnach ar ModelAdmin`.
IpaddressfieldLink to this heading
Tá na réimsí Django.db.Models.iPaddressField agus Django.Forms.iPaddressField curtha i bhfabhr:class: Django.db.Models.GenericipAddressField agus:class: Django.Forms.GenericipAddressField.
BaseMemcachedCache. Modh _get_memcache_timeoutLink to this heading
An BaseMemcachedCache. Athainmníodh modh _get_memcache_timeout () ``go `get_backend_timeout (). In ainneoin gur API príobháideach é, rachaidh sé tríd an ngnáthdháileadh.
Príomhroghanna sraith nádúrthaLink to this heading
Tá na roghanna --natural agus -n le haghaidh: djadmin: dumpdata curtha as. Úsáid: rogha: dumpdata --natural-foreign ina ionad.
Ar an gcaoi chéanna, tá an argóint use_natural_keys do serializers.serialize () ``díluaite. Úsáid ``use_natural_foreign_keys` ina ionad.
Argóintí POST ``agus `GET a chumasc i WSGIrequest.requestLink to this heading
Moladh go láidir cheana féin go n-úsáideann tú GET agus POST ````POST` in ionad REQUEST, toisc go bhfuil an chéad cheann níos soiléire. Tá an maoin ``IARRAIDH ``díluachtaithe agus bainfear í i Django 1.9.
Aicme Django.Utils.DataStructures.MergedictLink to this heading
Tá Mergedict ann go príomha chun tacú le hargóintí POST ``agus `GET` a chumasc i maoin REQUEST ar WSGIREQUEST`. Chun foclóirí a chumasc, bain úsáid as dict.update () ``ina ionad. Tá an rang ``Mergedict díluaite agus bainfear é i Django 1.9.
Cóid teanga zh-cn, zh-tw` agus fy-nlLink to this heading
Tá na cóid teanga a úsáidtear faoi láthair do Sínis Simplithe zh-cn, Sínis Traidisiúnta zh-tw agus (Iarthar) Fríseach fy-nl a chur in ionad agus ba chóir na cóid teanga zh-hans`, zh-hant` agus fy faoi seach iad. Má úsáideann tú na cóid teanga seo, ba cheart duit na heolairí áitiúla a athainmniú agus do shocruithe a nuashonrú chun na hathruithe seo a léiriú Bainfear na cóid teanga díscoite i Django 1.9.
Feidhm ``django.utils.functional.memoize ``Link to this heading
Tá an fheidhm memoize ``díluaite agus ba cheart an maisitheoir ``functools.lru_cache (ar fáil ó Python 3.2 ar aghaidh) a chur ina ionad.
Seolann Django backport den mhaisitheoir seo do leaganacha Python níos sine agus tá sé ar fáil ag django.utils.lru_cache.lru_cache. Bainfear an fheidhm atá díscríofa i Django 1.9.
Léarscáileanna Suímh GeoLink to this heading
Tá tacaíocht ar scor ag Google don fhormáid Geo Sitemaps. Dá bhrí sin tá tacaíocht Django do Geo Sitemaps as lasc agus bainfear é i Django 1.8.
Argóintí inghlaonta a chur chuig modhanna ceisteannaLink to this heading
Gné neamhdhoiciméadaithe a bhí ag argóintí inghlaonta do cheisteanna a bhí ann nach raibh iontaofa. Tá sé díscríofa agus bainfear é i Django 1.9.
Rinneadh measúnú ar argóintí inghlaoite nuair a tógadh sraith fiosrúcháin seachas nuair a rinneadh é a mheas, mar sin níor bhain an ghné seo tairbhe ar bith as i gcomparáid le measúnú a dhéanamh ar argóintí sular cuireadh ar aghaidh chuig queryset iad agus chruthaigh sé mearbhall go mb’fhéidir gur measadh na hargóintí ag am fiosrúcháin.
Socrú ADMIN_FORLink to this heading
Tá an ghné ADMIN_FOR, cuid den admindocs, bainte amach. Is féidir leat an socrú a bhaint as do chumraíocht ag áisiúlacht duit.
SplitDateTimeWidget le DateTimeFieldLink to this heading
Tá tacaíocht SplitDateTimeWidget in:class: ~django.forms.DateTimeField díluaite, bain úsáid as SplitDateTimeWidget le:class: ~django.forms.splitDateTimeField ina ionad.
bailíochtLink to this heading
Cuirtear an t-ordú bainistíochta bailite` a dhíchur i bhfabhar an orduithe: djadmin: check.
Django.Core.Management.BaseCommandLink to this heading
Tá requres_model_validation a dhíchur i bhfabhar bratach nua requires_system_checks. Má tá an bhratach deiridh in easnamh, úsáidtear luach an iar-bhratach. Tá earráid mar thoradh ar requires_system_checks agus requres_model_validation` araon a shainmhíniú.
Tá an modh check () ``tar éis an sean-mhodh ``validate () in ionad.
Bailíochtóirí ``Modeladmin ``Link to this heading
Tá na tréithe ModelAdmin.validator_class agus default_validator_class` a dhíchur i bhfabhar na tréithe nua checks_class.
Tá an modh ``ModelAdmin.validate () díluaite i bhfabhar ``ModelAdmin.check () `.
Tá an modúl django.contrib.admin.validation a dhíchur.
Django.db.backends.databaseValidation.validate_fieldLink to this heading
Tá an modh seo gan moladh i bhfabhar modh nua seiceáil_réimse. Tá an fheidhmiúlacht a éilíonn `` check_field()`` mar an gcéanna leis an bhfeidhmiúlacht a sholáthraíonn validate_field(), ach tá an fhormáid aschuir difriúil. Ba cheart go soláthródh inneall bunachar sonraí tríú páirtí a bhfuil gá acu leis an bhfeidhmiúlacht seo cur i bhfeidhm check_field().
django.utils.text.javascript_quoteLink to this heading
Feidhm neamhdhoiciméadaithe a bhí ann i javascript_quote () ``i láthair in ``django.utils.text. Úsáideadh é go hinmheánach sa radharc javascript_catalog () ``a athraíodh a chur i bhfeidhm chun ``json.dumps ()` a úsáid ina ionad. Má bhí tú ag brath ar an bhfeidhm seo chun aschur sábháilte a sholáthar ó teaghráin neamhiontaofa, ba cheart duit an scagaire teimpléad django.utils.html.escapejs nó an scagaire teimpléad: escapejs a úsáid. Más rud a theastaíonn uait ná teaghráin JavaScript bailí a ghiniúint, is féidir leat ``json.dumps () ``a úsáid.
Modh úsáideach agus scagaire teimpléad fix_ampersandsLink to this heading
Tá an modh django.utils.html.fix_ampersands agus an scagaire teimpléad fix_ampersands a dhíchur, toisc go dtugann gnéithe caighdeánacha éalaithe HTML Django aire d'éalú ampersandaí cheana féin. Bheadh éalú dúbailte mar thoradh air seo le fix_ampersands, nó, má ghlactar leis go bhfuil an t-aschur sábháilte, baol go dtabharfar leochaileachtaí XSS a thabhairt isteach. In éineacht le fix_ampersands, tá django.utils.html.clean_html` díscoite, feidhm neamhdhoiciméadaithe a ghlaonn fix_ampersands. Toisc gur díphríocht luathaithe é seo, bainfear fix_ampersands agus clean_html i Django 1.8.
Athrú socruithe tástála bunachar sonraíLink to this heading
<DATABASE-TEST>Tá gach socrú bunachar sonraí le réimír TEST_ díluaite i bhfabhar iontrálacha i bhfoclóir a:setting: `TEST `i socruithe bunachar sonraí. Tacófar leis na sean-socruithe go dtí Django 1.9. Maidir le comhoiriúnacht ar ais le leaganacha níos sine de Django, is féidir leat an dá leagan de na socruithe a shainiú chomh fada agus a mheaitseálann siad.
Tacaíocht FastCGILink to this heading
Bainfear tacaíocht FastCGI tríd an ordú bainistíochta ``runfcgi` i Django 1.9. Imscaradh do thionscadal le do thoil ag úsáid WSGI.
Rudaí bogadh i contrib.sites`Link to this heading
Tar éis an athfhachtóir luchtaithe aip, b'éigean dhá réad i django.contrib.sites.models` a bhogadh toisc go gcaithfidh siad a bheith ar fáil gan django.contrib.sites.models` a allmhairiú nuair nach bhfuil django.contrib.sites suiteáilte. Iompórtáil requestsite ó django.contrib.sites.requests agus get_current_site () ``ó `django.contrib.sites.shortcuts. Oibreoidh na sean-áiteanna allmhairithe go dtí Django 1.9.
``django.forms.forms.get_declarred_fields () ``Link to this heading
Ní úsáideann Django an fheidhmiú seo go hinmheánach. Cé gur API príobháideach é, rachaidh sé tríd an ngnáththimthriall díscrúdaithe.
APIs Cuardaigh Ceisteanna PríobháideachaLink to this heading
Tá APIs príobháideacha Django.db.Models.Sql.where.whereNode.Make_Atom () ``agus ``Django.db.Models.sql.where.</ref/models/lookups> Constraint a dhíchur i bhfabhar an nua:doc: lookups saincheaptha API.
Gnéithe bainte i 1.7Link to this heading
Tá na gnéithe seo tar éis deireadh a dtimthriall díscrúdaithe bainte amach agus baintear iad i Django 1.7. Féach: Ref: deprecated-features-1.5 le haghaidh sonraí, lena n-áirítear conas úsáid na ngnéithe seo a bhaint.
Baintear
django.utils.simplejson.Baintear
django.utils.itercompat.product.Ní cheartaítear INSTALLED_APPS agus TEMPLATE_DIRS a thuilleadh ó shreang simplí isteach i dtuple.
HttpResponse,SimpleTemplateResponse,TemplateResponse,render_to_response(),index(), andsitemap()no longer take amimetypeargumentHttpResponseimmediately consumes its content if it's an iterator.Baintear an socrú
AUTH_PROFILE_MODULE, agus an modh ``get_profile () ``ar an tsamhail Úsáideora.Baintear an t-ordú bainistíochta
glantach.Baintear an script daily_cleanup.py`.
select_related()no longer has adepthkeyword argument.Feidhmíonn ``get_warnings_state () ``/``restore_warnings_state () ``ó:mod: django.test.utils agus an ``save_warnings_state () ``/ ``restore_warnings_state () ``:ref: `django.test. * Baintear tástá <django-testcase-subclasses>il `.
Baintear an modh
check_for_test_cookiein:class: ~django.contrib.auth.forms.AuthenticationForm.Baintear an leagan de
django.contrib.auth.views.password_reset_confirm () ``a thacaíonn le ID úsáideora ionchódaithe base36 (``django.contrib.auth.views.password_reset_confirm_uidb36).Baintear an meascán
django.utils.encoding.StrandUnicode.