Nótaí scaoilte Django 1.5Link to this heading
26 Feabhra, 2013
Fáilte go dtí Django 1.5!
Clúdaíonn na nótaí scaoilte seo na:ref: gnéithe nua <whats-new-1.5>, chomh maith le roinnt athruithe: ref: athruithe neamh-chomhoiriúnacha ar ais<backwards-incompatible-1.5> beidh tú ag iarraidh a bheith ar an eolas fúthu agus tú ag uasghrádú ó Django 1.4 nó leaganacha níos sine. <deprecated-features-1.5>Tá roinnt gnéithe titim againn freisin, atá mionsonraithe in:ref: ár bplean díghabhála <deprecation-removed-in-1.5>, agus chuireamaire:ref: tús leis an bpróiseas díghabhála do roinnt gnéithe.
ForbhreathnúLink to this heading
Is é an ghné nua is mó i Django 1.5 an samhail Úsáideora inchumraithe. Roimh Django 1.5, cuireadh iallach ar iarratais a bhí ag iarraidh creat auth Django a úsáid (:mod: django.contrib.auth) sainmhíniú Django ar “úsáideoir” a úsáid. I Django 1.5, is féidir leat an tsamhail Úsáideoir ``a mhalartú anois le haghaidh ceann a scríobhann tú féin. D'fhéadfadh sé seo a bheith ina síneadh simplí ar an tsamhail ``Úsáideoir ``atá ann cheana - mar shampla, d'fhéadfá réimse ID Twitter nó Facebook a chur leis -- nó d'fhéadfá ceann saincheaptha go hiomlán do do shuíomh a chur in ionad an ``Úsáideoir.
Is é Django 1.5 an chéad eisiúint freisin le tacaíocht Python 3! Táimid ag lipéadú ar an tacaíocht seo “turgnamhach” toisc nach measaimid go fóill go bhfuil sé réidh le táirgeadh, ach tá gach rud i bhfeidhm duit tosú ag iompar d'aipeanna chuig Python 3. Tacóidh ár gcéad eisiúint eile, Django 1.6, le Python 3 gan áirithintí.
I measc na ngnéithe nua suntasacha eile i Django 1.5 tá:
Glacann tacaíocht chun fothacar de réimsí an mhúnla a shábháil -
Model.save()anois le argóint `` update_fields``, rud a ligeann duit na réimsí a shonrú scríofa ar ais chuig an mbunachar sonraí nuair a ghlaonn tú arsave(). Is féidir leis seo cabhrú in oibríochtaí ard-concurrency, agus féadann sé feidhmíocht a fheabhsú.Tacaíocht níos fearr le haghaidh freagraí sruthú <#explicit-streaming-responses>`_ tríd an rang freagartha nua:class: ~django.http.StreamInghttPresponse.
Tacaíonn GeodJango anois le PostGIS 2.0.
... agus níos mó; féach thíos.
Nuair is féidir déanaimid iarracht gnéithe nua a thabhairt isteach ar bhealach atá comhoiriúnach siar le ár mbeartas cobhsaíochta API. Mar a bhí le heisiúintí roimhe seo, áfach, long Django 1.5 le roinnt mionathruithe :tag:`ar gcúl athruithe neamh-chomhoiriúnacha <backwards-incompatible-1.5>`; ba chóir do dhaoine atá ag uasghrádú ó leaganacha níos sine de Django an liosta sin a léamh go cúramach.
Gné scoite amháin is fiú a thabhairt faoi deara ná an t-aistriú go clib “stíl nua”: ttag: url. Roimh Django 1.3, léiríníodh comhréir mar {% url myview%} `go mícheart (mheas Django gur ainm liteartha radharc é ``"myview"`, ní athróg teimpléad darb ainm ``myview). Thug Django 1.3 agus thuas an comhréir {% load url ón todhchaí%} isteach chun an t-iompar ceartaithe a thabhairt isteach ina bhfeictear myview mar athróg.
Is é an toradh a bhaineann leis seo ná mura bhfuil tú ag úsáid {% load url from the future%} i do theimpléid, beidh ort clibeanna mar {% url myview%} a athrú go {% url “myview”%}. Má bhí t** ag baint úsáide as {% load url ón todhchaí%} is féidir leat an líne sin a bhaint faoi Django 1.5
Comhoiriúnacht PythonLink to this heading
Éilíonn Django 1.5 Python 2.6.5 nó os a chionn, cé go molaimid** go hard** Python 2.7.3 nó os a chionn. Tá tacaíocht do Python 2.5 agus thíos titim.
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.6 nó níos nuaí mar a leagan réamhshoc Má tá Python 2.5 á úsáid agat fós, áfach, beidh ort cloí le Django 1.4 go dtí gur féidir leat do leagan Python a uasghrádú. Per:doc: `ár mbeartas tacaíochta `, leanfaidh </internals/release-process> Django 1.4 ag fáil tacaíochta slándála go dtí go scaoilfear Django 1.6.
Ní ritheann Django 1.5 ar eisiúint deiridh Jython, toisc nach dtacaíonn an eisiúint is déanaí de Jython le Python 2.6 faoi láthair. Mar sin féin, cuireann Jython scaoileadh alfa ar fáil faoi láthair le tacaíocht 2.7, agus tacaíonn Django 1.5 leis an scaoileadh alfa sin.
Tacaíocht Python 3Link to this heading
Tugann Django 1.5 tacaíocht isteach do Python 3 - go sonrach, Python 3.2 agus os a chionn. Tagann sé seo i bhfoirm bonn cód**aonair**; ní gá duit leagan difriúil de Django a shuiteáil ar Python 3. Ciallaíonn sé seo gur féidir leat feidhmchláir a scríobh dírithe ar Python 2 amháin, ach Python 3, nó feidhmchláir aonair a thacaíonn leis an dá ardán.
Mar sin féin, táimid ag lipéadú ar an tacaíocht seo “turgnamhach” anois: cé go bhfuair sé tástáil fhairsing trínár sraith tástála uathoibrithe, níl mórán tástála fíor faighte aige. Rinneamar ár ndícheall chun fabhtanna a dhíchur, ach ní féidir linn a bheith cinnte go gclúdaigh muid gach úsáid féideartha de Django.
Níl roinnt gnéithe de Django ar fáil toisc go mbraitheann siad ar bhogearraí tríú páirtí nár iompraíodh chuig Python 3 fós, lena n-áirítear:
cúltaca bunachar sonraí MySQL (ag brath ar MySQLDB)
ImageField(depends on PIL)LiveServerTestCase(depends on Selenium WebDriver)
Ina theannta sin, tá níos mó ná creat gréasáin Django; is éiceachóras de chomhpháirteanna inphlugáilte é. Ag an bpointe seo, is beag feidhmchlár tríú páirtí a iompraíodh chuig Python 3, mar sin ní dócha go mbeidh a spleáchas go léir sásta ag feidhmchlár saol fíor faoi Python 3.
Dá bhrí sin, táimid ag moladh nach n-úsáidfear Django 1.5 i dtáirgeadh faoi Python 3. Ina áit sin, bain úsáid as an deis seo chun feidhmchláir a iompar chuig Python 3. Más údar tú ar chomhpháirt inphlugáilte, molaimid duit tosú ag iompar anois.
Tá sé beartaithe againn tacaíocht den chéad scoth, réidh le táirgeadh a thairiscint do Python 3 inár gcéad eisiúint eile, Django 1.6.
Cad atá nua i Django 1.5Link to this heading
Múnla Úsáideora inchumraitheLink to this heading
I Django 1.5, is féidir leat do mhúnla féin a úsáid anois mar an siopa le haghaidh sonraí a bhaineann le húsáideoir. Má theastaíonn ainm úsáideora de do thionscadal le níos mó ná 30 carachtar, nó más mian leat ainmneacha úsáideora a stóráil i bhformáid seachas céadainm/ainm deiridh, nó más mian leat faisnéis phróifíle saincheaptha a chur ar do réad Úsáideora, is féidir leat é sin a dhéanamh anois.
Má tá feidhmchlár athúsáidte tríú páirtí agat a thagann tagairt don tsamhail Úsáideora, b'fhéidir go mbeidh ort roinnt athruithe a dhéanamh ar an mbealach a thagann tú tagairt do chásanna Ba chóir duit aon ghnéithe sonracha den tsamhail Úsáideora a bhfuil d'iarratas ag brath air a dhoiciméadú freisin.
Féach an:ref: `doiciméadú ar mhúnlaí úsáideora saincheaptha <auth-custom-user>`le haghaidh tuilleadh sonraí.
Tacaíocht chun fo-thacar de réimsí an tsamhail a shábháilLink to this heading
Tá argóint nua eochairfhocail ag an modh Model.save() `` update_fields``. Trí úsáid a bhaint as an argóint seo ní féidir ach liosta roghnaithe de réimsí an mhúnla a shábháil. D’fhéadfadh sé seo a bheith úsáideach ar chúiseanna feidhmíochta nó nuair a dhéantar iarracht athruithe comhthráthacha a fhorscríobh a sheachaint.
Sábhálfaidh cásanna iarchurtha (iad siúd a luchtaithe ag .only () ``nó ``.defer ()) na réimsí luchtaithe go huathoibríoch. Má shocraítear aon réimse de láimh tar éis an ualaigh, déanfar an réimse sin nuashonrú freisin ar shábháil.
<django.db.models.Model.save () >Féach an doiciméadú: meth: Model.save () le haghaidh tuilleadh sonraí.
Tacaíocht shoiléir le haghaidh freagraí sruLink to this heading
Roimh Django 1.5, bhí sé indéanta freagra sruthú a chruthú trí athraitheoir a chur chuig: class: ~django.http.httpResponse. Ach ní raibh sé seo neamhiontaofa: d'ith aon mheán-earraí a rochtain ar thréith: attr: ~django.http.httpResponse.content an t-athraitheoir roimh am.
Is féidir leat freagra sruthú a ghiniúint go sainráite anois leis an rang nua:class: ~django.http.StreamInghttPresponse. Nochtann an rang seo a: class: ~django.http.StreamInghttPresponse.streaming_content tréith atá ina athraitheoir.
Ós rud é: :class: ~django.http.StreamInghttPresponse níl tréith content, ní mór do mheán-earraí a theastaíonn rochtain uathu ar an ábhar freagartha tástáil a dhéanamh le haghaidh freagraí sruthú agus iompar dá réir sin.
{% verbatim%} clib teimpléadLink to this heading
Chun é a dhéanamh níos éasca déileáil le teimpléid JavaScript a imbhuaileann le comhréir Django, is féidir leat an chlib bloc:ttag: verbatim a úsáid anois chun ábhar an chlib a pháirseáil a sheachaint.
Aisghabháil cásanna contentType a bhaineann le samhlacha seachfhreastalaíLink to this heading
<django.contrib.contenttypes.models.ContentTypeManager.get_for_models () >Tá argóint eochairfhocal nua ag na modhaí:meth: ContentTypeManager.get_for_Model () agus:meth: ContentTypeManager.get_for_Models () faoi seach for_concrete_model` agus for_concrete_models <django.contrib.contenttypes.models.ContentTypeManager.get_for_model () >. <django.contrib.contenttypes.models.ContentType>Trí False a rith ag baint úsáide as an argóint seo is féidir anois an:class: ContentType a bhaineann le samhlacha seachfhreastalaí a aisghabháil.
Athróg nua `amharc i gcomhthéacs tuairimí rang-bhunaitheLink to this heading
I ngach:doc: tuairimí cineálacha bunaithe ar aicme' (nó aon dearcadh aicme-bhunaithe a fhaigheann oidhreacht ó ``ContextMixin`), tá athróg ``dearcadh ``sa bhfoclóir comhthéacs a thugann tuiscint ar an sampla ``View</topics/class-based-views/index> `.
GeodJangoLink to this heading
LineStringandMultiLineStringGEOS objects now support theinterpolate()andproject()methods (so-called linear referencing).Coinníonn na hairíonna
wkbagushexde:class: ~django.contrib.gis.geos.geosgeometry an toise Z.Cuireadh tacaíocht do PostGIS 2.0 leis agus tá tacaíocht do GDAL <1.5 titim.
Ranganna teagaisc nuaLink to this heading
I measc na mbreiseanna leis na doiciméid tá athbhreithnithe: doc: Teagaisc 3 agus nua:doc: teagaisc ar thástáil`</intro/tutorial03></intro/tutorial05>. Cuireann rannán nua, “Ard-Ranganna Teagaisc”, ar fáil: doc: `Conas aipeanna in-athúsáidte a scríobh `chomh maith le treoir céim ar chéim do rannpháirtithe nua in:doc: `Do chéad phai</intro/reusable-apps> ste a scríobh do </intro/contributing> Django.
MionghnéitheLink to this heading
Cuimsíonn Django 1.5 roinnt feabhsuithe níos lú ar fiú a thabhairt faoi deara:
Léirmhíníonn an t-inneall teimpléid anois
True, False` agusNonemar na rudaí Python comhfhreagracha.django.utils.timezoneprovides a helper for converting aware datetimes between time zones. Seelocaltime().Tacaíonn na tuairimí cineálacha le hiarratais OPTIONS.
Ní ardaíonn orduithe bainistíochta
SystemExitníos mó nuair a ghlaonn siad le cód ó:func: ~django.core.management.call_command. Déantar aon eisceacht a ardóidh an t-ordú (den chuid is mó: exc: ~django.core.management.commandError) iomadú.<management-commands-output>Thairis sin, nuair a aschuireann tú earráidí nó teachtaireachtaí i d'orduithe saincheaptha, ba chóir duit anois ``self.stdout.write ('teachtaireacht') ``agus ``self.stderr.write ('error') a úsáid anois (féach an nóta ar:ref: `aschur orduithe bainistíochta).
Aschuireann an t-ordú bainistíochta: DJadmin: dumpdata sraith amháin ag an am, ag cosc ar earráidí lasmuigh den chuimhne agus tacair mhóra sonraí á ndúmáil.
Sa bhlaor áitiúil do Cheanada, cuireadh pq` leis na cóid inghlactha do Quebec. Is sean-ghiorrúchán é.
Tá an maisitheoir: ref: glacad <connecting-receiver-functions>óir in ann ceangal anois le níos mó ná comhartha amháin trí liosta comharthaí a sholáthar.
Sa riarachán, is féidir leat úsáideoirí a scagadh anois de réir grúpaí a bhfuil siad ina mbaill díobh.
<django.db.models.query.QuerySet.bulk_create>:meth: Tá argóint batch_size ag `querySet.bulk_create () `anois. De réir réamhshocraithe tá an batch_size gan teorainn ach amháin SQLite áit a bhfuil baisc aonair teoranta ionas nach sáraítear paraiméadair 999 in aghaidh an cheistiúcháin.
<naming-url-patterns>Glacann socruithe an:setting: LOGIN_URL agus:setting: LOGIN_REDIRECT_URL anois le hainmneacha feidhm amharc agus:ref: patrúin URL ainmnithe `. Ligeann sé seo duit dúbailt cumraíochta a laghdú. Is féidir tuilleadh faisnéise a fháil sna cáipéisíocht: :func: `~django.contrib.auth.decorators.login_required.
Soláthraíonn Django anois mod_wsgi auth handler.
<django.db.models.Model.delete () >Is féidir leis an:Meth: QuerySet.delete () `agus:meth: `Model.delete ()<django.db.models.query.QuerySet.delete> cosán tapa a ghlacadh anois i roinnt cásanna. Ligeann an cosán tapa níos lú ceisteanna agus níos lú rudaí a thógtar isteach i gcuimhne. <django.db.models.query.QuerySet.delete>Féach: Meth: `QuerySet.delete () `le haghaidh sonraí.
Stóráiltear sampla de ResolverMatch` ar an iarratas mar
resolver_match.De réir réamhshocraithe, seoltar gach teachtaireacht logála a shroicheann an logálaí
djangonuai:socrú:DEBUG` ``Truechuig an gconsól (mura ndéanann tú an logálaí a athshainiú i do shuíomh:: LOGGING).Nuair a úsáidtear: class: ~django.template.requestContext, is féidir anois ceadanna a lorg suas trí
{% if 'someapp.someperm' i perms%}a úsáid i dteimpléid.Ní gá níos mó teimpléid
404.htmlagus500.htmla bheith san eolaire teimpléid fréimhe. Aschróidh Django roinnt teachtaireachtaí earráide bunúsacha don dá chás nuair nach bhfaightear na teimpléid sin. Moltar fós mar dhea-chleachtas na teimpléid sin a sholáthar d'fhonn leathanaigh earráide deasa a chur i láthair don úsáideoir.django.contrib.authprovides a new signal that is emitted whenever a user fails to login successfully. Seeuser_login_failedDéanann an rogha nua:option: loaddata --ignorenonexistent neamhaird de shonraí do réimsí nach bhfuil ann a thuilleadh.
assertXMLEqual()andassertXMLNotEqual()new assertions allow you to test equality for XML content at a semantic level, without caring for syntax differences (spaces, attribute order, etc.).Cuireann RemoteUserMiddleware i bhfeidhm anois logáil amach nuair a imíonn an ceannteideal REMOTE_USER le linn an tseisiúin bhrabhsálaí céanna.
Is féidir leis an:ref: `cúltaca seisiúin bunaithe ar taisce <cached-sessions-backend>`sonraí seisiúin a stóráil i taisce neamh-réamhshocraithe.
Is féidir innéacsanna il-cholún a chruthú anois ar mhúnlaí. Léigh an doiciméad `index_together ``le haghaidh tuilleadh faisnéise.
Le linn cumraíocht logála Django cumasaítear rabhaidh díphríochta agus gabhtar rabhaidh isteach sa chóras logála. Déantar rabhaidh logáilte a threorú tríd an láimhseálaí logála ``consóla`, a éilíonn de réir réamhshocraithe: socrú: DEBUG go mbeidh Fíor chun aschur a ghiniúint. Is é an toradh atá ann ná gur chóir DeprecationWarnings a phriontáil chuig an gconsól i dtimpeallachtaí forbartha mar a bhí siad i leaganacha Python < 2.7.
Athraíodh an modh API do
django.contrib.admin.ModelAdmin.message_user()chun glacadh le hargóintí breise a chuireann cumais cosúil ledjango.contrib.messages.add_message(). Tá sé seo úsáideach chun teachtaireachtaí earráide a ghiniúint ó ghníomhartha riaracháin.Is féidir scagairí liosta an riaracháin a shaincheapadh anois in aghaidh iarratais a bhuíochas leis an modh nua: meth: django.contrib.admin.modeladmin.get_list_filter.
Athruithe neamh-chomhoiriúnacha ar ais i 1.5Link to this heading
ALLOWED_HOSTS ag teastáil i dtáirgeadhLink to this heading
Bailíonn an socrú nua:setting: ALLOWED_HOSTS ceannteideal Host` an iarratais agus cosnaíonn sé i gcoinne ionsaithe nimhithe óstach. Tá an socrú seo ag teastáil anois nuair a bhíonn: socrú: `DEBUG` ``False, nó eile: meth: django.http.httpRequest.get_host () `ardóidh: exc: `~Django.Core.Exceptions.SuspiciousOperation. Le haghaidh tuilleadh sonraí féach an:setting: `doiciméadú iomlán <ALLOWED_HOSTS>`don suíomh nua.
Bainisteoirí ar samhlacha teibíLink to this heading
<custom-managers-and-inheritance>Tá samhlacha teibí in ann bainisteoir saincheaptha a shainiú, agus beidh an bainisteoir sin: ref: `oidhreacht ag aon mhúnlaí coincréite a leathnaíonn an tsamhail teibí `. Mar sin féin, má dhéanann tú iarracht an tsamhail teibí a úsáid chun modh a ghlaoch ar an mbainisteoir, ardófar eisceacht anois. Roimhe seo, bheadh an glao ceadaithe, ach theip air a luaithe a rinneadh iarracht ar aon oibríocht bunachar sonraí (de ghnáth le earráid “níl tábla ann” ón mbunachar sonraí).
Má tá feidhmiúlacht agat ar bhainisteoir a bhí á ghairm agat ag baint úsáide as an rang teibí, ba cheart duit an loighic sin a aistriú chuig staticmethod nó classmethod` Python ar an rang teibí.
Tuairimí rangbhunaithe ar chartlann comhthéacs i mLink to this heading
Le haghaidh comhsheasmhachta leis na tuairimí cineálacha dáta-bhunaithe eile, téann: class: ~django.views.generic.dates.yearArchiveView year ``sa chomhthéacs anois mar a:class: `datetime.date` seachas teaghrán. Má tá ``{{year}} á úsáid agat i do theimpléid, ní mór duit {{year|date: "Y”}} a chur in ionad.
Cuireadh next_year agus roimh_year sa chomhthéacs freisin. Déantar iad a ríomh de réir allow_empty` agus allow_future`.
Comhthéacs i dtuairimí rangbhunaithe i gcartlann blianaLink to this heading
YearArchiveView and
MonthArchiveView were documented to
provide a date_list sorted in ascending order in the context, like their
function-based predecessors, but it actually was in descending order. In 1.5,
the documented order was restored. You may want to add (or remove) the
reversed keyword when you're iterating on date_list in a template:
{% for date in date_list reversed %}
ArchiveIndexView still provides a
date_list in descending order.
Comhthéacs i TemplateViewLink to this heading
Le comhsheasmhacht le dearadh na dtuairimí cineálacha eile, ní chuireann :class: ~django.views.generic.base.templateView foclóir params` isteach sa chomhthéacs a thuilleadh, ina ionad sin cuireann na hathróga ón URLConf go díreach isteach sa chomhthéacs.
Sonraí neamh-fhoirme in iarratais HTTPLink to this heading
request.POST will no longer include data
posted via HTTP requests with non form-specific content-types in the header.
In prior versions, data posted with content-types other than
multipart/form-data or
application/x-www-form-urlencoded would still end up represented in
the request.POST attribute. Developers
wishing to access the raw POST data for these cases, should use the
request.body attribute instead.
request_finished signalLink to this heading
D'úsáid Django an comhartha: data: ~django.core.signals.request_finished a sheoladh a luaithe a d'fhill an fheidhm amharc freagra. Idirghníomhaíodh sé seo go dona le: ref: `freagraí sruthú <httpresponse-streaming>`a chuireann moill ar ghiniúint ábhair.
Seoltar an comhartha seo anois tar éis an t-ábhar a ithe go hiomlán ag geata WSGI. D'fhéadfadh sé seo a bheith neamhoiriúnach ar ais má bhíonn tú ag brath ar an gcomhartha a dhúnadh sula gcuireann tú an t-ábhar freagartha chuig an g Má dhéanann tú, ba chóir duit smaoineamh ar: doc: middleware a úsáid ina ionad </topics/http/middleware>.
Iarrataí ROGHANNA, PUT agus DELETE sa chliant tástálaLink to this heading
Murab ionann agus GET agus POST, ní chuireann brabhsálaithe gréasáin na modhanna HTTP seo i bhfeidhm. Ina ionad sin, úsáidtear iad in APIanna, a aistríonn sonraí i bhformáidí éagsúla ar nós JSON nó XML. Ós rud é go bhféadfadh sonraí treallacha a bheith sna hiarratais sin, ní dhéanann Django iarracht a gcorp a dhíchódú.
Mar sin féin, d'úsáid an cliant tástála teaghrán fiosrúcháin a thógáil le haghaidh iarratais OPTIONS agus DELETE cosúil le GET, agus comhlacht iarratais d'iarratais PUT cosúil le POST. Bhí an t-ionchódú seo treallach agus neamhréidh le hiompar Django nuair a fhaigheann sé na hiarratais, mar sin baineadh é i Django 1.5.
Má bhí an paraiméadar ``sonraí ``á úsáid agat i roghanna nó in iarratas DELETE, ní mór duit é a thiontú go sreang fiosrúcháin agus é a chur leis an bparaiméadar ``path`.
Má bhí an paraiméadar sonraí ``á úsáid agat in iarratas PUT gan ``content_type, ní mór duit do chuid sonraí a ionchódú sula gcuirfidh tú chuig an gcliant tástála iad agus an argóint content_type a shocrú.
Ní úsáidtear leagan an chórais de simplejson a thuilleadhLink to this heading
As explained below, Django 1.5 deprecates
django.utils.simplejson in favor of Python 2.6's built-in json
module. In theory, this change is harmless. Unfortunately, because of
incompatibilities between versions of simplejson, it may trigger errors
in some circumstances.
Baineann gnéithe a bhaineann le JSON i Django 1.4 úsáid as django.utils.simplejson i gcónaí. Ba é an modúl seo i ndáiríre:
Leagan córais de simplejson`, má bhí ceann ar fáil (ie oibreacha ``allmhairiú simplejson ``), má bhí sé níos déanaí ná cóip ionsuite Django nó má bhí na luasanna C aige, nó
An modúl: mod: json ón leabharlann caighdeánach, má bhí sé ar fáil (ie Python 2.6 nó níos mó), nó
Cóip ionsuite de leagan 2.0.7 de simplejson`.
I Django 1.5, úsáideann na gnéithe sin modúl Python: mod: json, atá bunaithe ar leagan 2.0.9 de simplejson.
Níl aon neamhoiriúnachtaí ar eolas idir cóip Django de leagan 2.0.7 agus cóip Python de leagan 2.0.9. Mar sin féin, tá roinnt neamhoiriúnachtaí idir leaganacha eile de simplejson`:
Cé go ndéantar an API simplejson` doiciméadaithe mar atá i gcónaí ag filleadh teaghráin Unicode, is féidir leis an gcur i bhfeidhm roghnach C bytestring a thabhairt ar ais. Socraíodh é seo i Python 2.7.
Fuair
simplejson.jsonEncoderargóint eochairfhocalnamedtuple_as_objecti leagan 2.2.
<18023 #comment:10>Tá tuilleadh eolais ar na neamhoiriúnachtaí seo ar fáil in:ticéad: ticéad # 18023.
Is é an toradh glan ná, má tá simplejson` suiteáilte agat agus má úsáideann do chód inmheánacha sraitheach Django go díreach - mar shampla django.core.serializers.json.djangojsonEncoder, d'fhéadfadh an t-athrú ó simplejson` go: mod: json do chód a bhriseadh. (Go ginearálta, ní dhoiciméadaítear athruithe ar inmheánacha; táimid ag déanamh eisceacht anseo.)
Ag an bpointe seo, creideann cothabháirí Django go dtugann úsáid: mod: json ón leabharlann caighdeánach an ráthaíocht is láidre maidir le comhoiriúnacht ar ais. Molann siad é a úsáid as seo amach.
Cineálacha teaghrán de pharaiméadair modh hasherLink to this heading
Má scríobh tú a:ref: pasfhocal saincheaptha hasher <auth_password_storage>, ba cheart do mhodhanna encode () ``, `verify () nó safe_summary () ``glacadh le paraiméadair Unicode (`pasfhocal, salt` nó ``encoded ``). Má theastaíonn bytestrings ó aon cheann de na modhanna hashing, is féidir leat an fóntais: func: ~django.utils.encoding.force_bytes a úsáid chun na teaghráin a ionchódú.
Bailíochtú uimhir leathanaigh roimhe seo agus uimhir leathanaigh eileLink to this heading
Nuair a úsáideadh: doc: leathanaigh réad, níor sheiceáil na modhanna previous_page_number () ``agus next_page_number () ``den :class: ~django.core.pagin</topics/pagination> ator.page an raibh an uimhir ar ais laistigh den raon leathanaigh atá ann cheana. Seiceálann sé é anois agus ardaíonn sé eisceacht: exc: ~django.core.paginator.invalidPage nuair a bhíonn an uimhir ró-íseal nó ró-ard.
Athraigh iompar rogha bunachar sonraí autocommit ar PostgreSQLLink to this heading
Níor oibrigh rogha autocommit PostgreSQL mar a fógraíodh roimhe seo. D'oibrigh sé le haghaidh bloc idirbheart aonair, ach tar éis don chéad bhloc a fhágáil níor athchóirigh an t-iompar uathchomhartha riamh. Tá an fabht seo socraithe anois i 1.5. Cé nach é seo ach socrú fabht, is fiú iompar d'iarratais a sheiceáil má tá PostgreSQL á úsáid agat mar aon leis an rogha autocommit.
Níor shábháiltear an seisiún ar 500 freagraLink to this heading
Sceapfaidh meán-earraí seisiúin Django sonraí na seisiúin a shábháil más é cód stádais an fhreagra 500.
Seiceálacha ríomhphoist ar theip isteach riaracháinLink to this heading
Roimh Django 1.5, má rinne tú iarracht logáil isteach sa chomhéadan riaracháin agus má d'úsáid tú do sheoladh ríomhphoist ar dhearmad in ionad d'ainm úsáideora, chuirfeadh an comhéadan riaracháin rabhadh ar fáil ag tabhairt comhairle nach é d'ainm úsáideora do sheoladh ríomhphoist. I Django 1.5, bhí an rabhadh seo a bhaint ag tabhairt isteach: ref: `samhlacha <auth-custom-user>úsáideora saincheaptha `. Ní athraíonn sé seo iompar logála isteach an láithreáin riaracháin; ní théann sé i bhfeidhm ach ar an teachtaireacht rabhaidh a thaispeántar faoi mhodh áirithe amháin de theip logála isteach.
Athruithe ar fhorghníomhaitheLink to this heading
Tugadh roinnt athruithe isteach maidir le tástálacha a fhorghníomhú a d'fhéadfadh a bheith comhoiriúnach ar ais le haghaidh roinnt socruithe tástála:
Sruthú bunachar sonraí i Django.Test.TransactionTestCaseLink to this heading
Roimhe seo, gearradh an bunachar sonraí tástála* roimh* gach tástáil a reáchtáil in a:class: ~ django.test.transactionTestCase.
D'fhonn a bheith in ann tástálacha aonaid a reáchtáil in aon ord agus chun a chinntiú go bhfuil siad scoite óna chéile i gcónaí, athshocróidh :class: ~django.test.transactionTestCase an bunachar sonraí anois* tar éis * gach tástála a rith ina ionad.
Gan níos mó seicheamh DB intuigthe a athshocrúLink to this heading
TransactionTestCase tests used to reset primary key
sequences automatically together with the database flushing actions described
above.
Tá sé seo athraithe ionas nach ndéantar aon seicheamh a athshocrú go hinchinneach. Is féidir leis seo tástálacha: class: ~django.test.transactionTestCase a bhraitheann ar phríomhluachanna crua-chódaithe le briseadh.
Is féidir an tréith nua:attr: ~django.test.transactionTestCase.reset_sequences a úsáid chun an sean-iompar a chur i bhfeidhm le haghaidh: :class: ~django.test.transactionTestCase a d'fhéadfadh a bheith ag teastáil uathu.
Tástálacha a ordúLink to this heading
D'fhonn a chinntiú go dtosaíonn gach cód ``Testcase ``le bunachar sonraí glan, déantar tástálacha a fhorghníomhú anois san ord seo a leanas:
Ar dtús, reáchtáiltear gach tástáil aonaid (lena n-áir:class: UnitTest.TestCase, :class: ~django.test.testcase, :class: ~django.test.testcase agus:class: ~django.test.transactionTestCase) gan aon ordú ar leith ráthaithe ná a chur i bhfeidhm ina measc.
Ansin reáchtáiltear aon tástálacha eile (m.sh. doctests) a d'fhéadfadh an bunachar sonraí a athrú gan é a chur ar ais go dtí a staid bhunaidh.
Níor chóir go mbeadh aon fhadhbanna mar thoradh air seo mura bhfuil doctests ann cheana agat a ghlacann le a:class: ~django.test.TransactionTestCase forghníomhaithe níos luaithe d'fhág roinnt stát bunachar sonraí taobh thiar de nó tástálacha aonaid a bhíonn ag brath ar chineál éigin stáit á chaomhnú tar éis tástálacha eile a chur i bhfeidhm. Tá tástálacha den sórt sin an-leochaileach cheana féin, agus caithfear iad a athrú anois le bheith in ann rith go neamhspleách.
Foclóir cleaned_data a choimeádtar le haghaidh foirmeacha neamhbhailíLink to this heading
Tá an foclóir:attr: ~django.forms.form.cleaned_data i láthair anois i gcónaí tar éis bailíochtú foirme. Nuair nach ndéanann an fhoirm bailíochtú, níl ann ach na réimsí a rith bailíochtú. Ba chóir duit rath na bailíochtaithe a thástáil leis an modh:meth: ~django.forms.form.is_valid () `agus ní le láithreacht nó easpa an tréith: :attr: `~Django.forms.form.Cleaned_Data ar an bhfoirm.
Iompar syncdb le bunachair sonraí iolrachaLink to this heading
Fiosraíonn syncdb anois ar na ródairí bunachar sonraí chun a fháil amach an bhfuil cineálacha ábhair (nuair: mod: ~django.contrib.contenttypes cumasaithe) agus ceadanna (nuai:mod: ~django.contrib.auth cumasaithe) a chruthú sa spriocbhunachar sonraí. Roimhe seo, chruthaigh sé iad sa bhunachar sonraí réamhshocraithe, fiú nuair a sonraíodh bunachar sonraí eile leis an rogha ``--database`.
Má úsáideann tú syncdb ar iliomad bunachair sonraí, ba cheart duit a chinntiú go gceadaíonn do ródairí cineálacha agus ceadanna ábhair a shioncronú do cheann amháin acu. <contrib_app_multiple_databases>Féach na doiciméid ar an: ref: `iompar aipeanna contrib le bunachair sonraí iolracha `le tuilleadh faisnéise le haghaidh tuilleadh faisnéise.
Ní dhéanfaidh deserializer XML doiciméid a pháirseáil le DTDLink to this heading
D'fhonn nochtadh d'ionsaithe diúltaithe seirbhíse a bhaineann le tagairtí eintiteas seachtracha agus leathnú eintiteas a chosc, diúltaíonn an dí-erializer samhail XML anois doiciméid XML ina bhfuil DTD (sainmhíniú DOCTYPE) a pháirseáil. Ós rud é nach n-aschuireann an serializer XML DTD, ní bheidh tionchar aige seo ar úsáid tipiciúil, ach cásanna ina gcuirtear cáipéisí XML cruthaithe saincheaptha ar aghaidh chuig dísherializer samhail Django.
Foirmsets réamhshocraithe max_numLink to this heading
Ní réamhshocraíonn luach (réamhshocraithe) None don argóint max_num chuig monarcha tacar foirmeacha a thuilleadh chun aon líon foirmeacha a cheadú sa tacar foirme. Ina áit sin, d'fhonn ionsaithe ídithe cuimhne a chosc, réamhshocraíonn sé anois teorainn 1000 foirm. Is féidir an teorainn seo a ardú trí luach níos airde a shocrú go sainráite do max_num`.
IlghnéitheachLink to this heading
django.forms.ModelMultipleChoiceFieldnow returns an emptyQuerySetas the empty value instead of an empty list.int_to_base36()properly raises aTypeErrorinstead ofValueErrorfor non-integer inputs.Tá an scagaire teimpléad
slugify` ar fáil anois mar fheidhm chaighdeánach Python ag:func: `django.utils.text.slugify`. Ar an gcaoi chéanna, tá `remove_tagsar fáil ag ``django.utils.html.remove_tags () ``.Ní chruthaítear comhaid uaslódáilte a thuilleadh mar fhorghníomhachtaithe Más gá duit iad a bheith infheidhmithe athraigh: setting: FILE_UPLOAD_PERMISSIONS do chuid riachtanas. Is é 0o666` (octal) an luach réamhshocraithe nua agus cuirtear an luach umask reatha a chumasc amach ar dtús.
Thacaigh an: aicme: abairtí F `le hoibreoirí gi <django.db.models.F>otáin le `&` agus
|. Tá na hoibreoirí seo ar fáil anois ag baint úsáide as.bitand () ``agus ``.bitor ()ina ionad. Rinneadh &` agus|a bhaint le bheith comhsheasmhach le:ref: Q () abairtí `agus ``<complex-lookups-with-q>QuerySet` ag comhcheangal nuair a úsáidtear na hoibreoirí mar oibreoirí boolean AND agus OR.I nglao ``filter () ``, nuair a bhí cuardaigh ag abairtí `class: `F <django.db.models.F>`a chuimsíonn caidreamh illuachmhar, níor athúsáid siad na caidreamh céanna i gcónaí le cuardaigh eile ar feadh an slabhra céanna. Athraíodh é seo, agus anois úsáidfidh nathanna F () na caidreamh céanna i gcónaí le cuardaigh eile laistigh den ghlao ``filter () `céanna.
Níl an clib teimpléad: ttag: csrf_token iata i div a thuilleadh. Má theastaíonn bailíochtú HTML uait i gcoinne DTDanna docht réamh-HTML5, ba cheart duit div a chur timpeall air i do leathanaigh.
Baineadh na leabharlann clibeanna teimpléad
adminmedia, nach raibh ach an chlib teimpléad díscoite{% admin_media_prefix%}. Teipfidh iarracht é a luchtú le{% load adminmedia%}. Má tá an líne sin fós i do theimpléid ní mór duit í a bhaint.Mar gheall ar mhaoirseacht cur chun feidhme, bhí sé in ann: doc: django.contrib.redirects a úsáid gan cumasú:doc: django</ref/contrib/redirects> </ref/contrib/sites> .contrib.sites. Ní cheadaítear é seo a thuilleadh. Má tá django.contrib.redirects` á úsáid agat, déan cinnte go bhfuil
django.contrib.sitessa SETTING: `INSTALLED_APPS.<django.forms.BoundField.label_tag>:meth: Éalaíonn BoundField.label_tag `anois dá argóint ``contents`. Chun an HTML a sheachaint, bain úsáid as: func: django.utils.safestring.mark_safe ar an argóint sula ndéantar é a rith.
Fuarthas rochtain a fháil ar chaidrimh aon-le-duine ar ais trí:meth: ~django.db.models.query.queryset.select_related anois:exc: ~django.db.models.model.doesNotExist in ionad
Nonea thabhairt ar ais.
Gnéithe atá díscríofa i 1.5Link to this heading
django.contrib.localflavorLink to this heading
Tá an aip contrib localflavour roinnte i bpacáistí ar leithligh. Bainfear django.contrib.localflavor féin i Django 1.6, tar éis díscríobh luathaithe.
Tá na pacáistí nua ar fáil ar GitHub. Ní féidir leis an bcroífhoireann na pacáistí seo a chothabháil go héifeachtúil san fhadtéarma - ní chuimsíonn sé ach dosaen tíortha ag an am seo; cosúil le haistriúcháin, tabharfar cothabháil ar fáil do bhaill den phobal a bhfuil suim acu.
django.contrib.markupLink to this heading
Tá an modúl contrib marcála díscoite agus leanfaidh sé sceideal luathaithe díluasaithe. Is fearr úsáid dhíreach leabharlanna marcála Python nó leabharlanna clibeanna tríú páirtí ná Django a choinneáil an fheidhmiúlacht seo sa chreat.
``AUTH_PROFILE_MODULE ``Link to this heading
Agus: ref: `samhlacha úsáideora saincheaptha <auth-custom-user>`a thabhairt isteach, níl aon ghá le meicníocht ionsuite a thuilleadh chun sonraí próifíl úsáideora a stóráil.
Is féidir leat samhlacha próifílí úsáideora a shainiú fós a bhfuil gaol duine le duine acu leis an tsamhail Úsáideora - i ndáiríre, i gcás go leor feidhmchlár a theastaíonn sonraí a cheangal le cuntas Úsáideora, is patrún dearaidh iomchuí é seo le leanúint. Mar sin féin, níor cheart an socrú AUTH_PROFILE_MODULE, agus an modh ``Django.contrib.auth.models.user.get_profile () ``chun rochtain a fháil ar an tsamhail phróifíl úsáideora, a úsáid a thuilleadh.
Iompar sruthú de:aicme: ~django.http.httpResponseLink to this heading
Déanann Django 1.5 an cumas freagra a shruthú trí athraitheoir a chur chuig: class: ~django.http.httpResponse. Má tá tú ag brath ar an iompar seo, aistrigh chu:class: ~django.http.StreamInghttPresponse. Féach:ref: explicit-streaming-freagrais thuas.
I Django 1.7 agus os a chionn, ídífear an t-athraitheoir láithreach:class: ~django.http.httpResponse.
django.utils.simplejsonLink to this heading
Ós rud é go dtiteann Django 1.5 tacaíocht do Python 2.5, is féidir linn brath anois ar an modúl: mod: json atá ar fáil i leabharlann chaighdeánach Python, mar sin tá ár gcóip féin de simplejson` bainte againn. Ba chóir duit anois: mod: json a iompórtáil in ionad django.utils.simplejson.
<simplejson-incompatibilities>Ar an drochuair, d'fhéadfadh fo-iarsmaí nach dteastaíonn a bheith ag an athrú seo, mar gheall ar neamhoiriúnachtaí idir leaganacha de simplejson - féach an roinn:ref: athruithe neamh-inchomhoiriúnacha '. Má tá tú ag brath ar ghnéithe a chuirtear le `simplejson` tar éis dó a bheith ina Python 's:mod: json, ba cheart duit simplejson a iompórtáil go sainráite.
Django.Utils.Encoding.StrandUnicodeLink to this heading
Tá an meascán Django.Utils.Encoding.StrandUnicode díluaite. Sainmhínigh modh __str__ agus cuir an maisitheoir django.utils.encoding.python_2_unicode_compatible i bhfeidhm ina ionad.
django.utils.itercompat.productLink to this heading
Tá an fheidhm django.utils.itercompat.product díluaite. Úsáid an bunaithe:func: itertools.product ina ionad.
Ordú bainistíochta glantachaLink to this heading
Tá an t-ordú bainistíochta glantach a dhíchur agus cuireadh: djadmin: clearsessions ina ionad.
Script daily_cleanup.pyLink to this heading
Tá an script daily_cleanup.py neamhdhoiciméadaithe a dhíchur. Úsáid an t-ordú bainistíochta: djadmin: clearsessions ina ionad.