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á imirce ina 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_syncdb agus django.db.models.signals.post_syncdb a 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.py a 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únla

  • path: Conair poncanach, Python chuig rang an réimse seo, lena n-áirítear ainm an ranga.

  • args: Argóintí seasaimh, mar liosta

  • kwargs: 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 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ú 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 Bainiste chun an rang saincheaptha QuerySet a thabhairt ar ais agus b'éigean gach modh a bhí ag teastáil ar an Bainiste a 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:

Code
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:

Code
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:

Code
with connection.cursor() as c:
    c.execute(...)

in ionad:

Code
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 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 **kwargs passed to email_user() are passed to the underlying send_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_name a ú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

  • Nuashonraíodh an leagan réamhshocraithe leabharlainne OpenLayers atá san áireamh i giuirléidí ó 2.11 go 2.13.

  • Tacaíonn geoiméadraí ullmhaithe anois leis na réamhtheacháin crosses`, `disjunt, overlaps`, touches` agus ``laistigh de ``, má tá GEOS 3.3 nó níos déanaí suiteáilte.

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`.

  • Message objects now have a level_tag attribute that contains the string representation of the message level.

django.contrib.redirectsLink to this heading

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 ``GET a láimhseáil ar léarscáileanna láithreáin a shocraíonn lastmod.

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 CachedStaticFilesStorage rang 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 dtugtar staticfiles.json chun 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 comhad staticfiles.json agus 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.

django.contrib.syndicationLink to this heading

  • Úsáideann eilimint updated fotha sindiciúcháin an:class: ~django.utils.feedgenerator.atom1feed anois updateddate in ionad pubdate, ag ligean an eilimint foilsithe ``a chur san áireamh sa bheatha (atá ag brath ar ``pubdate).

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 None socraítear na heochracha taisce mar “neamh-éag” de réir réamhshocraithe. Roimhe seo, ní raibh sé indéanta ach timeout = none a 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 an html_message parameter for sending a multipart text/plain and text/html email.

  • Glacann an SMTP: Class: ~django.core.mail.backends.smtp.emailBackend le paraiméadar timeout anois.

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éithe for agus id`, faoi seach. Cuimsíonn gach cnaipe raidió nó bosca seiceála tréith id_for_label chun aitheantas an eilimint a aschur.

  • Cuimsíonn na clibeanna <textarea>```a rinneadh ag:class: ~django.forms.textarea tréith maxlength anois má tá réimse samhail ``max_`long` ag an réimse samhail: :class: ~django.db.Models.textField.

  • Field.choices now allows you to customize the "empty choice" label by including a tuple with an empty string or None for the key and the custom label as the value. The default blank option "----------" will be omitted in this case.

  • MultiValueField allows optional subfields by setting the require_all_fields argument to False. The required attribute for each individual field will be respected, and a new incomplete validation error will be raised when any required fields are empty.

  • Ní gá don modh: Meth: ~django.forms.form.clean ar fhoirm self.cleaned_data a 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 coerce modh luach treallach a thabhairt ar ais.

  • SelectDateWidget.months can be used to customize the wording of the months displayed in the select widget.

  • Cuireadh na paraiméadair min_num agus validate_min la:func: ~django.forms.formsets.formset_factory chun líon íosta foirmeacha curtha isteach a bhailíochtú.

  • Rinneadh na meiteachlasanna a úsáideann Form agus 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 fheictear ModelForm ar dtús sa MRO.

  • Is féidir anois réimse a bhaint as Foirm ``agus 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ú le unique_together nó aon NON_FIELD_ERROR eile, féachann Modelform anois an eochair NON_FIELD_ERROR sa fhoclóir error_messages de rang Meta` istigh ModelForm. <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 tairiseach LANGUAGE_SESSION_KEY. Roimhe seo stóráilíodh é leis an eochair django_language` agus ní raibh an tairiseach LANGUAGE_SESSION_KEY ann, 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éitear django_language fó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 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. 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 .po le 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_keys agus 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.

  • collectstatic command 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 expressions support the power operator (**).

  • Glacann modhanna remove () ``agus `clear () na mbainisteoirí gaolmhara a chruthaigh ForeignKey agus GenericForeignKey anois leis an argóint eochairfhocal bulk chun rialú a dhéanamh cibé acu oibríochtaí a dhéanamh ar an mórchóir (ie ag baint úsáide as QuerySet.Update () `). Réamhshocraithe go ``True.

  • Is féidir anois None a ú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 ForeignKeyManyTomanyField á 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 _id a 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 str den 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í ``dict a ú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 dirs atá ina liosta nó tuple chun TEMPLATE_DIRS a shárú:

  • <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 in ann cásanna a dhíleá:ref: `time-chrione-aware` `datetime cá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ó https de 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

  • DiscoverRunner has two new attributes, test_suite and test_runner, which facilitate overriding the way tests are collected and run.

  • Cuireadh an argóint fetch_redirect_response la: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 WSGIrequest a 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

  • RegexValidator now accepts the optional flags and Boolean inverse_match arguments. The inverse_match attribute determines if the ValidationError should be raised when the regular expression pattern matches (True) or does not match (False, by default) the provided value. The flags attribute sets the flags used when compiling a regular expression string.

  • URLValidator now accepts an optional schemes argument which allows customization of the accepted URI schemes (instead of the defaults http(s) and ftp(s)).

  • validate_email() now accepts addresses with IPv6 literals, like example@[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:

Python console
>>> 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á:

Code
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:

Code
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 ionad None a thabhairt ar ais nuair nach bhfaightear aon mhúnla.

  • Níl an argóint only_installled de get_model` agus get_models ann 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 ValidationError sula 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 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 ():

Code
# 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`:

Code
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_extra ag 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 when save(commit=False) is called. See can_delete for instructions on how to manually delete objects from deleted forms.

  • Astaíonn daingneáin folamh ag luchtú RuntimeWarning seachas ardú: exc: ~Django.Core.Management.CommandError.

  • django.contrib.staticfiles.views.serve() will now raise an Http404 exception instead of ImproperlyConfigured when DEBUG is False. 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.

  • AutoField columns in SQLite databases will now be created using the AUTOINCREMENT option, 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:

    1. Úsáid:djaDmin: dumpdata chun do chuid sonraí a shábháil.

    2. Athainmnigh an comhad bunachar sonraí atá ann cheana (coinnigh mar chúltaca é).

    3. Run:djaDmin: imirce chun an scéim nuashonraithe a chruthú.

    4. Úsáid: DjaDmin: loaddata chun na daingneáin a onnmhairigh tú iontu iontu a iompórtáil (1).

  • Django.Contrib.Auth.Models.AbstractUser ní 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í Foirm i 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 riachtan de:class: ~django.forms.selectDateWidget. Déanann an giuirléid seo meas anois ar thréith is_required réimse an fhoirme cosúil le giuirléidí eile.

  • Is maoin léite amháin é Widget.is_Hidden anois, 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 like prefetch_related. That is, select_related('foo', 'bar') is equivalent to select_related('foo').select_related('bar'). Previously the latter would have been equivalent to select_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_0 go allows_auto_pk_0 chun 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 shortcut i django.contrib.contenttypes.views` anois le URLanna coibhneasta le prótacail (m.sh. //example.com).

  • GenericRelation now supports an optional related_query_name argument. Setting related_query_name adds 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 None socraí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 ``0 mar 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 `URLValidator le 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

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):

Code
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:

Tréith declared_fieldsets ar ModelAdmin`Link to this heading

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:

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.util

  • django.contrib.gis.db.backends.util

  • django.db.backends.util

  • django.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

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. 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

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().

Clibeanna teimpléad ssi agus url ``á luchtú ó leabharlann ``todhchaLink to this heading

Thug Django 1.3 isteach comhréir {% load ssi ón todhchaí%} agus {% load url ón todhchaí%} le haghaidh comhoiriúnacht ar aghaidh na gclibeanna teimpléad ssi agus:ttag: url `. Tá an comhréireacht seo díscríofa anois agus bainfear é i Django 1.9. Ní féidir leat ach na clibeanna ``{% load... a bhaint as clibeanna%}` sa todhchaí.

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(), and sitemap() no longer take a mimetype argument

  • HttpResponse immediately 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 a depth keyword 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_cookie in: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.