Nótaí scaoilte Django 1.2Link to this heading

*17 Bealtaine, 2010. *

Fáilte go dtí Django 1.2!

Beagnach bliain á dhéanamh, tá liosta mórthaibhseach á phacáistiú ag Django 1.2 de gnéithe nua agus go leor ceartúcháin ar fhabht. Clúdaíonn na nótaí scaoileadh seo na gnéithe nua, chomh maith le hathruithe tábhachtacha ar mhaith leat a bheith feasach orthu agus tú ag uasghrádú ó Django 1.1 nó leaganacha níos sine.

ForbhreathnúLink to this heading

Tugann Django 1.2 roinnt gnéithe nua móra tábhachtacha isteach, lena n-áirítear:

  • Tacaíocht do: ref: `naisc iolracha bunachar sonraí <support-for-multiple-databases>`i gcás amháin Django.

  • `Bailíochtú samhail `_ spreagtha ag bailíochtú foirm Django.

  • <improved-csrf-protection>Go mór: ref: `cosaint fheabhsaithe i gcoinne Fhorbhóisiú Iarratais Tras-Láithreáin `(CSRF).

  • Creat nua:ref: `teachtaireachtaí úsáideora <messages-framework>`le tacaíocht do theachtaireacht bhunaithe ar fhianán agus seisiún d'úsáideoirí gan ainm agus fíordheimhnithe araon.

  • <relaxed-requirements-for-usernames>Crúcaí le haghaidh ceadúnais ar leibhéal réad, `ceadanna d'úsáideoirí gan ainm `_, agus:ref: `riachtanais ainm úsáideora níos solúbtha `.

  • Saincheapadh seoladh ríomhphoist trí backends.

  • New:ref: `"cliste” má chlib teimpléad <new-in-1.2-smart-if>`a thacaíonn le hoibreoirí comparáide.

<whats-new-1.2>Is iad seo ach na buaicphointí; is féidir sonraí iomlána agus liosta iomlán gnéithe: ref: `a fháil thíos `.

Cibé áit is féidir, tugadh na gnéithe seo isteach ar bhealach atá comhoiriúnach le cúl faoir:doc: 'ár mbeartas cobhsaíochta AP</misc/api-stability> I'.

Mar sin féin, tá dornán gnéithe* athraithe ar bhealaí a bheidh, i gcás roinnt úsáideoirí, ag teacht ar chúl. Is iad na hathruithe móra:

  • Tá tacaíocht do Python 2.3 titim. Féach na nótaí iomlána thíos.

  • Níl an creat nua cosanta CSRF comhoiriúnach ar chúl leis an seanchóras. Ní bheidh tionchar ag úsáideoirí an tseanchórais go dtí go mbainfear an seanchóras i Django 1.4.

    Mar sin féin, éilíonn uasghrádú chuig an gcreat nua cosanta CSRF roinnt athruithe tábhachtacha atá neamhchomhoiriúnach le cúil, sonraithe i `Cosaint CSRF `_, thíos.

  • Ba chóir go mbeadh a fhios ag údair fo-aicmí saincheap:class: ~django.db.models.field go bhfuil athrú tagtha ar roinnt modhanna ar fhréamhshamhail, sonraithe faoi get_db_prep_* () modhanna ar Field, thíos.

  • Tá athrú beagán tagtha ar inmheánacha clibeanna teimpléad; ba cheart d'údair clibeanna teimpléad saincheaptha a gcaithfidh stát a stóráil (m.sh. clibeanna sreafa rialaithe saincheaptha) a chinntiú go leanann a gcód na rialacha nua maidir le clibeanna teimpléad stáit

  • An: func: ~django.contrib.auth.decorators.user_passes_test, :func: ~django.contrib.auth.decorators.login_required, agus:func: ~django.contrib.auth.decorators.permission_requred, maisitheoirí ó:mod: django.contrib. ní bhaineann ach le feidhmeanna agus ní oibríonn siad ar mhodhanna a thuilleadh. <user-passes-test-login-required-permission-required>Tá socrú aon-líne simplí ann: ref: `sonraithe thíos `.

Arís, níl iad seo ach na gnéithe móra a rachaidh i bhfeidhm ar na húsáideoirí is mó. <deprecated-features-1.2>Spreagtar go mór úsáideoirí a uasghrádú ó leaganacha roimhe seo de Django dul i gcomhairle leis an liosta iomlán de:ref: `athruithe neamh-chomhoiriúnacha ar aghaidh 'agus an liosta de:ref: `gn <backwards-incompatible-changes-1.2>éithe scoite `.

Comhoiriúnacht PythonLink to this heading

Cé nach gné nua é, tá sé tábhachtach a thabhairt faoi deara go dtugann Django 1.2 an chéad athrú isteach inár mbeartas comhoiriúnachta Python ó thús phoiblí tosaigh Django. Rinneadh tástáil agus tacaíodh le eisiúintí Django roimhe seo ar leaganacha 2.x Python ó 2.3 suas; Tlagann Django 1.2, áfach, tacaíocht oifigiúil do Python 2.3. Dá bhrí sin, is é 2.4 an leagan íosta Python atá riachtanach do Django anois, agus déantar tástáil agus tacaítear le Django ar Python 2.4, 2.5 agus 2.6, agus tacófar leis ar an Python 2.7 nach bhfuil eisithe fós.

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.4 nó níos nuaí mar a leagan réamhshoc Má tá Python 2.3 á úsáid agat fós, áfach, beidh ort cloí le Django 1.1 go dtí gur féidir leat uasghrádú a dhéanamh; per:doc: `ár mbeartas tacaíochta ', leanfaidh Django 1.1 ag fáil tac</internals/release-process> aíochta slándála go dtí scaoilfear Django 1.3.

Tá treochlár do thacaíocht foriomlán 2.x Python Django, agus aistriú go Python 3.x sa deireadh, á fhorbairt faoi láthair, agus fógrófar é sula scaoilfear Django 1.3.

Cad atá nua i Django 1.2Link to this heading

Tacaíocht do iliomad bunachar sonraíLink to this heading

Cuireann Django 1.2 an cumas úsáid: doc: níos mó ná bunachar sonraí amháin 'i do thionscadal Django. </topics/db/multi-db> Is féidir ceisteanna a eisiúint ag bunachar sonraí ar leith leis an modh ``using () ``ar rudaí ``QuerySet. Is féidir rudaí aonair a shábháil chuig bunachar sonraí ar leith trí argóint úsáid ``a sholáthar nuair a ghlaonn ar ``save ().

Bailíochtú samhailLink to this heading

Tá tacaíocht anois ag cásanna samhlacha le haghaidh: ref: a gcuid sonraí féin a bhailíochtú </ref/validators> <validating-objects>, agus glacann réimsí samhail agus foirm araon le liostaí inchumraithe de:doc: validators a shonraíonn iompar bailíochtaithe in-athúsáidte, ionfhabhtaithe. Tabhair faoi deara, áfach, go gcaithfear bailíochtú a dhéanamh go sainráite fós. Ní dhéanfar aon bhailíochtú sonraí an cháis ar mhodh ``save () ``samhail a ghairm.

Cosaint CSRF feabhsaitheLink to this heading

Tá cosaint i bhfad feabhsaithe ag Django anois in aghaidh: doc: `Ionsaithe Fhorbhósáide Iarratas Tras-Láithreáin (CSRF )</ref/csrf> `. Tarlaíonn an cineál ionsaithe seo nuair a bhíonn nasc, cnaipe foirme nó roinnt JavaScript i láithreán gréasáin mailíseach atá beartaithe chun gníomh éigin a dhéanamh ar do shuíomh Gréasáin, ag baint úsáide as dintiúir úsáideora logáilte isteach a thugann cuairt ar an suíomh mailíseach ina mbrabhsálaí. Clúdaítear cineál ionsaí gaolmhar, “logáil isteach CSRF,” áit a gcuireann suíomh ionsaitheach brabhsálaí úsáideora isteach i suíomh le dintiúir duine eile, clúdaithe freisin.

Creat teachtaireachtaíLink to this heading

Cuimsíonn Django anois creata “teachtaireachtaí láidir agus cumraithe: doc: le tacaíocht ionsuite do theachtaireachtaí bunaithe ar f</ref/contrib/messages> hianán agus seisiún, do chliaint gan ainm agus fíordheimhnithe araon. Cuireann an creat teachtaireachtaí in ionad an API teachtaireachta úsáideora lasmuigh agus tugann sé deis duit teachtaireachtaí a stóráil go sealadach in iarratas amháin agus iad a aisghabháil le taispeáint in iarratas ina dhiaidh sin (an chéad cheann eile de ghnáth)

Ceadanna ar leibhéal réadaLink to this heading

Tá bonn curtha leis chun ceadanna a shonrú ag an leibhéal in aghaidh an ábhair. Cé nach bhfuil sé seo á chur i bhfeidhm sa chroílár, is féidir le hinneal fíordheimhnithe saincheaptha an cur i bhfeidhm seo a sholáthar agus bainfidh django.contrib.auth.models.User úsáid as. Féach an doiciméid fíordheimhnithe le haghaidh tuilleadh eolais.

Ceadanna d'úsáideoirí gan ainmLink to this heading

If you provide a custom auth backend with supports_anonymous_user set to True, AnonymousUser will check the backend for permissions, just like User already did. This is useful for centralizing permission handling - apps can always delegate the question of whether something is allowed or not to the authorization/authentication backend. See the authentication docs for more details.

Riachtanais suaimhneach d'ainmneachaLink to this heading

Ceadaíonn an réimse bunaithe:class: ~django.contrib.auth.models.user model's:attr: ~django.contrib.auth.models.user.name raon níos leithne carachtair, lena n-áirítear carachtair @, +`, .` agus -.

Cúltaca ríomhphoistLink to this heading

<topic-email-backends>Is féidir leat anois:ref: an bealach a sheolann Django ríomhphost a chumrú `. In ionad SMTP a úsáid chun gach ríomhphost a sheoladh, is féidir leat cúltaca ríomhphoist inchumraithe a roghnú anois chun teachtaireachtaí a sheoladh. Má úsáideann do sholáthraí óstála bosca gainimh nó teicníc éigin neamh-SMTP eile chun post a sheoladh, is féidir leat cúltaca ríomhphoist a thógáil anois a ligfidh do chaighdeán Django: doc: `modhanna seolta ríomhphost na</topics/email> háiseanna sin a úsáid.

Fágann sé seo go bhfuil sé níos éasca seoladh ríomhphoist a dhífhabhtú. <topic-email-console-backend><topic-email-memory-backend>Seolann Django le cur i bhfeidhm cúltaca a ligeann duit ríomhphost a sheoladh chuig a:ref: file <topic-email-file-backend>, chuig:ref: console, nó chuig: ref: `memory `. <topic-email-dummy-backend>Is féidir leat gach ríomhphost a chumrú go mbeadh: ref: `caitheadh amach `.

“Cliste” :ttag: clib `ifLink to this heading

Tá an chlib: ttag: `if `uasghrádaithe le bheith i bhfad níos cumhachtaí. Ar dtús, tá tacaíocht curtha againn d'oibreoirí comparáide. Ní bheidh ort clóscríobh a thuilleadh:

Django template
{% ifnotequal a b %}
 ...
{% endifnotequal %}

Is féidir leat é seo a dhéanamh anois:

Django template
{% if a != b %}
 ...
{% endif %}

Níl aon chúis ann i ndáiríre {% ifequal%}{% ifnotequal%} a úsáid níos mó, mura bhfuil tú an cineál nostalgic.

Is iad na hoibreoirí a dtacaítear leo ná ==, !=, `` <, ``>, `` <=``, > =, i agus not in, a oibríonn go léir cosúil leis na hoibreoirí Python, chomh maith le `` agus``, `` nó`` agus `` ní``, ar tacaíodh leo cheana féin.

Chomh maith leis sin, is féidir scagairí a úsáid anois sa abairt if `. Mar shampla:

Django template
<div
  {% if user.email|lower == message.recipient|lower %}
    class="highlight"
  {% endif %}
>{{ message }}</div>

Caching teimpléadLink to this heading

I leaganacha roimhe seo de Django, gach uair a rinne tú teimpléad, déanfaí é a athluchtú ón diosca. I Django 1.2, is féidir leat a:ref: lódóir teimpléad taisceáilte <template-loaders>`a úsáid chun teimpléid a luchtú uair amháin, ansin an toradh a thaisceadh do gach rindreáil ina dhiaidh sin. D'fhéadfadh feabhas suntasach feidhmíochta a bheith mar thoradh air seo má bhriseadh do theimpléid ina go leor fotheimpléid níos lú (ag baint úsáide as na clibeanna ``{%%}` nó {% include%}).

Mar fho-iarsacht, tá sé i bhfad níos éasca anois tacú le teangacha teangacha teimpléid neamh-Django.

Luchtaitheoirí teimpléad aicmbunaitheLink to this heading

Mar chuid de na hathruithe a rinneadh chun Caching Teimpléad a thabhairt isteach agus ag leanúint treocht ghinearálta i Django, modhnaíodh API luchtaithe teimpléad chun meicníochtaí luchtaithe teimpléad a úsáid atá cuimsithe i ranganna Python seachas feidhmeanna, an t-aon mhodh atá ar fáil go dtí Django 1.1.

Tá <template-loaders>na luchtóirí teimpléad uile: ref: sheolta le Django `a iompraíodh chuig an API nua ach cuireann siad an API feidhmion-bhunaithe i bhfeidhm fós agus glacann croí-innealra teimpléad le luchtóirí feidhmion-bhunaithe (bunaithe nó tríú páirtí) mar sin ní gá láithreach do shuíomh `TEMPLATE_LOADERS a mhodhnú i dtionscadail atá ann cheana, leanfaidh rudaí ag obair má fhágann tú é gan teagmháil go dtí agus lena n-áirítear scaoileadh Django 1.3.

If you have developed your own custom template loaders we suggest to consider porting them to a class-based implementation because the code for backwards compatibility with function-based loaders starts its deprecation process in Django 1.2 and will be removed in Django 1.4. There is a description of the API these loader classes must implement in the template API reference and you can also examine the source code of the loaders shipped with Django.

Eochracha nádúrtha i daingneoLink to this heading

Is féidir le daingneáin tagairt a dhéanamh anois do rudaí iargúlta ag baint úsáide:ref: topics-serialization-natural-keys. Is rogha eile í an scéim cuardaigh seo seachas na gnáththagairtí réad bunaithe ar eochair bhunaithe i ndaingneán, léiteacht a fheabhsú agus fadhbanna a réiteach ag tagairt do rudaí nach mbeadh a bpríomh-phríomhluach intuartha nó ar eolas acu.

Teip tapa le haghaidh tástálachaLink to this heading

Tacaíonn an fho-ordú: djadmin: test de django-admin.py` agus an script runtests.py a úsáidtear chun sraith tástála Django féin a reáchtáil le rogha --failfast anois. Nuair a shonraítear é, cuireann an rogha seo faoi deara an tástála imeacht tar éis dó teacht ar theip in ionad leanúint ar aghaidh leis an rith tástála. Ina theannta sin, feabhsaíodh láimhseáil Ctrl-C le linn rith tástála chun imeacht grámhar ón rith tástála a spreagadh a thuairiscíonn sonraí faoi na tástálacha a reáchtáil roimh an gcuid isteach.

BigIntegerfieldLink to this heading

Is féidir le samhlacha cineál 64-giot:class: ~Django.db.Models.BigIntegerField a úsáid anois.

Logánú feabhsaitheLink to this heading

Django's:doc: Leathnaíodh creat idirnáisiúnaitheach le formáidiú agus próiseáil foirmeacha ar an </topics/i18n/index> eolas áitiúil. Ciallaíonn sé sin, má tá sé cumasaithe, taispeánfar dátaí agus uimhreacha ar theimpléid ag baint úsáide as an bhformáid a shonraítear don áitiúil reatha. Úsáidfidh Django formáidí logánaithe freisin agus sonraí á pháirseáil i bhfoirmeacha. Féach: doc: /topics/i18n/formatting le haghaidh tuilleadh sonraí.

readonly_fields i ModelAdminLink to this heading

django.contrib.admin.ModelAdmin.readonly_fields has been added to enable non-editable fields in add/change pages for models and inlines. Field and calculated values can be displayed alongside editable fields.

Aibhsiú comhréireachta inLink to this heading

<syntax-coloring>Is féidir leat athróg timpeallachta a:envvar: DJANGO_COLORS a úsáid anois chun na dathanna a úsáideann django-admin.py a mhodhnú nó a dhíchumasú chun: ref: `aibhsiú comhréireachta `a sholáthar.

Fothaíonn sindiciú mar thuairimíLink to this heading

Syndication feeds can now be used directly as views in your URLconf. This means that you can maintain complete control over the URL structure of your feeds. Like any other view, feeds views are passed a request object, so you can do anything you would normally do with a view, like user based access control, or making a feed a named URL.

GeodJangoLink to this heading

The most significant new feature for GeoDjango in 1.2 is support for multiple spatial databases. As a result, the following spatial database backends are now included:

  • django.contrib.gis.db.backends.postgis

  • django.contrib.gis.db.backends.mysql

  • django.contrib.gis.db.backends.oracle

  • django.contrib.gis.db.backends.spatialite

Tacaíonn GeodJango anois leis na cumais shaibhir a chuirtear sa scaoileadh PostGIS 1.5. I measc na ngnéithe nua tá tacaíocht don: ref: cineál tíreolaíochta <geography-type>`agus cumasú o:ref: `fiosruithe achair le geoiméadraí <distance-queries>neamh-phointe ar chórais comhordaithe geografacha.

Cuireadh tacaíocht do réimsí geoiméadra 3D leis, agus féadfar é a chumasú tríd an eochairfhocal: attr: ~django.contrib.gis.db.models.geometryfield.dim a shocrú go 3 i do: class: ~django.contrib.gis.db.models.geometryfield. Cuireadh comhiomlán: Class: ~django.contrib.gis.db.models.ext3D comhiomlán agus modh extent3d () ```GeoquerySet mar chuid den ghné seo.

Tá na modhanna force_rhr () ``, `reverse_geom (), agus geohash () ````GeoquerySet nua.

Nuashonraíodh comhéadan GEOS chun feidhmeanna leabharlainne C atá sábháilte le snáithe a úsáid nuair atá ar fáil ar an ardán.

Ligeann an comhéadan GDAL anois don úsáideoir a:attr: ~django.contrib.gis.gdal.layer.spatial_filter a shocrú ar na gnéithe a cuireadh ar ais agus iad ag athrú thar a:class: ~django.contrib.gis.gdal.layer.

Faoi dheireadh, :doc: Tá doiciméadú “GeodJango” san áireamh anois le Django's agus ní óstáiltear é ar leithligh ag geodjango.org` </ref/contrib/gis/index> a thuilleadh.

Carachtair sonraitheora formáid clib teimpléad nua ano: c` agus uLink to this heading

Tá dhá charachtar formáide nua faighte ag an argóint chuig: ttag: ano: c` chun a shonrú gur chóir luach dáta-ama a fhormáidiú i bhformáid ISO 8601, agus u a cheadaíonn aschur na microtsoicind de luach dáta-ama nó ama.

Tá siad seo ar fáil freisin i gcodanna eile cosúil leis an scagairí teimpléad: tfilter: dáta agus:tfilter: aim, leabharlann clib teimpléad daonann agus an creat nua formáid logánaithe.

Athruithe neamh-chomhoiriúnacha ar chúl i 1.2Link to this heading

Nuair is féidir, tugadh na gnéithe nua thuas isteach ar bhealach atá comhoiriúnach le cúl faoir:doc: 'ár mbeartas cobhsaíochta API</misc/api-stability> '. Ciallaíonn sé seo go leanfaidh gach cód atá ann cheana a d'oibrigh le Django 1.1 ag obair le Django 1.2; tosóidh an cód den sórt sin, áfach, ag eisiúint rabhaidh (féach thíos le haghaidh sonraí).

Mar sin féin, tá dornán gnéithe* athraithe ar bhealaí a bheidh, i gcás roinnt úsáideoirí, ag teacht ar ais láithreach. Tá na hathruithe sin sonraithe thíos.

Cosaint CSRFLink to this heading

Tá athruithe móra déanta againn ar an mbealach a oibríonn cosaint CSRF, mionsonraithe in:doc: </ref/csrf> an doiciméadú CSRF. Seo na hathruithe móra ba chóir duit a bheith ar an eolas fúthu:

  • Tá CsrfResponseMiddleware` agus CsrfMiddleware díluaite agus bainfear iad go hiomlán i Django 1.4, i bhfabhar clib teimpléad ba chóir a chur isteach i bhfoirmeacha.

  • Úsáideann gach aip ranníoca maisitheoir csrf_protect chun an radharc a chosaint. Éilíonn sé seo go n-úsáidfear an chlib teimpléid csrf_token sa teimpléad. Má d’úsáid tú teimpléid shaincheaptha le haghaidh amhairc ranníoca, NÍ MÓR duit NA TREORACHA Uasghrádaithe a léamh chun na teimpléid sin a dheisiú.

  • CSRFViewMiddleware san áireamh i MIDDLEWARE_CLASSES de réir réamhshocraithe. Casann sé seo ar chosaint CSRF de réir réamhshocraithe, mar sin caithfear tuairimí a ghlacann le hiarratais POST a scríobh chun oibriú leis an middleware. Tá treoracha maidir le conas é seo a dhéanamh le fáil sna doiciméid CSRF.

  • Tá an CSRF go léir bogadh ó chontrib go croí (le allmhairí comhoiriúnacha ar chúl sna sean-áiteanna, atá díscoilte agus scoirfidh siad le tacú leo i Django 1.4).

Modhanna get_db_prep_* () ``ar `FieldLink to this heading

Roimh Django 1.2, bhí an rogha ag saincheaptha ``Field` roinnt feidhmeanna a shainiú chun tacú le tiontú luachanna Python ina luachanna comhoiriúnacha bunachar sonraí. D'fhéadfadh cuma rud éigin ar réimse saincheaptha:

Code
class CustomModelField(models.Field):
    ...

    def db_type(self): ...

    def get_db_prep_save(self, value): ...

    def get_db_prep_value(self, value): ...

    def get_db_prep_lookup(self, lookup_type, value): ...

I 1.2, rinneadh athrú ar na trí mhodh seo ar fhréamhshamhail, agus tugadh dhá mhodh breise isteach:

Code
class CustomModelField(models.Field):
    ...

    def db_type(self, connection): ...

    def get_prep_value(self, value): ...

    def get_prep_lookup(self, lookup_type, value): ...

    def get_db_prep_save(self, value, connection): ...

    def get_db_prep_value(self, value, connection, prepared=False): ...

    def get_db_prep_lookup(self, lookup_type, value, connection, prepared=False): ...

Teastaíonn na hathruithe seo chun tacú le bunachair sonraí iolracha - ní féidir le db_type agus get_db_prep_* aon toimhde a dhéanamh maidir leis an mbunachar sonraí a bhfuil sé ag ullmhú dó a thuilleadh. Soláthraíonn an argóint nasc anois do na modhanna ullmhúcháin leis an nasc sonrach a bhfuil an luach á ullmhú dó.

Tá an dá mhodh nua ann chun riachtanais ghinearálta ullmhúcháin sonraí a idirdhealú ó riachtanais atá sonrach don bhunachar Úsáidtear an argóint “ullmhaithe” chun a chur in iúl do na modhanna ullmhúcháin bunachar sonraí an bhfuil ullmhúchán luacha cineálach déanta. Má chuirtear luach neamhullmhaithe (ie, Prepared=False) ar fáil do na glaonna ``get_db_prep_* () , ba cheart dóibh na glaonna comhfhreagracha ``get_prep_* () a ghairm chun ullmhúchán cineálach sonraí a dhéanamh.

Tá feidhmeanna comhshó curtha curtha ar fáil againn a thiontú go trédhearcach feidhmeanna a chloíonn leis an sean-fhréamhshamhail ina fheidhmeanna atá comhoiriúnach leis Mar sin féin, bainfear na feidhmeanna comhshó seo i Django 1.4, mar sin ba cheart duit do shainmhínithe ``Field` a uasghrádú chun an fréamhshamhail nua a úsáid chomh luath agus is féidir.

Mura ndearna do mhodhanna get_db_prep_* () ``úsáid as an nasc bunachar sonraí, ba cheart go mbeadh in ann uasghrádú trí ``get_db_prep_value () `a athainmniú go ``get_prep_value () agus get_db_prep_lookup () ``. theastaíonn tiontaithe sonrach ar bhunachar sonraí uait, ansin beidh ort cur chun feidhme ``get_db_prep_* a sholáthar a úsáideann an argóint nasc chun luachanna sonracha bunachar sonraí a réiteach.

Clibeanna teimpléad stáiteachLink to this heading

<template-loaders>Bhí clibeanna teimpléad a stóráilíonn stát rindreála ar a bhfo-aicme Node leochaileach i gcónaí do shábháilteacht snáithe agus saincheisteanna eile; amhail Django 1.2, áfach, d'fhéadfadh fadhbanna a bheith acu freisin nuair a úsáidtear iad leis an lódóir teimpléad nua:ref: `cacháil'.

Tá na clibeanna teimpléid Django ionsuite go léir sábháilte le húsáid leis an lódóir i dtaisce, ach má tá clibeanna teimpléid saincheaptha á n-úsáid agat a thagann ó phacáistí tríú páirtí, nó ó do chód féin, ba cheart duit a chinntiú go bhfuil an Nóid tá cur i bhfeidhm gach clib sábháilte ó thaobh snáitheanna de. Le haghaidh tuilleadh faisnéise, féach :ref: teimpléad breithnithe sábháilteachta snáithe chlib<template_tag_thread_safety>.

Seans go mbeidh ort do theimpléid a nuashonrú freisin má bhí tú ag brath ar chur i bhfeidhm chlibeanna teimpléid Django gan a bheith sábháilte. Is é an chlib cycle an ceann is dóichí a gcuirfear isteach air ar an mbealach seo, go háirithe nuair a úsáidtear é in éineacht leis an gclib cuir san áireamh. Smaoinigh ar an blúire teimpléad seo a leanas:

Django template
{% for object in object_list %}
    {% include "subtemplate.html" %}
{% endfor %}

le subtemplate.html a léann:

Django template
{% cycle 'even' 'odd' %}

Ag baint úsáide as an renderer réamh-Django 1.2 neamh-shábháilte le snáithe, d'aschur sé seo:

Text
even odd even odd ...

Ag baint úsáide as an renderer Django 1.2 atá sábháilte le snáithe, gheobhaidh tú ina ionad sin:

Text
even even even even ...

Tá sé seo toisc gur rindreáil neamhspleách é gach rindreáil den chlib: ttag: include. Nuair nach raibh an clibe:ttag: timthriall sábháilte, sceitheadh staid an chlib: ttag: timthriall idir illéiriú den chéanna: ttag: include. Anois go bhfuil an clibe:ttag: timthriall sábháilte snáithe, ní tharlaíonn an sceitheadh seo a thuilleadh.

tástáil_pas_úsáideoraithe, logain_riachtanai` agus cead_riachtanaLink to this heading

Soláthraíonn django.contrib.auth.decorators ``do mhaisitheoirí ``login_required, permission_requred` agus user_passes_test. Roimhe seo bhí sé in ann na maisitheoirí seo a úsáid ar fheidhmeanna (i gcás gurb é 'iarratas' an chéad argóint) agus ar mhodhanna (i gcás gurb é 'féin' an chéad argóint, agus 'iarratas' an dara argóint). Ar an drochuair, aimsíodh lochtanna sa chód a thacaíonn leis seo: ní oibríonn sé ach i gcúinsí teoranta, agus táirgeann sé earráidí atá an-deacair a dhífhabhtú nuair nach n-oibríonn sé.

Ar an gcúis seo, baineadh an t-iompar 'uathoibrithe uathoibrí', agus má tá na maisitheoirí seo á úsáid agat ar mhodhanna, beidh ort iarratas a dhéanamh de láimh:func: django.utils.decorators.method_decorator chun an maisitheoir a thiontú go ceann a oibríonn le modhanna. Mar shampla, d'athrófá cód as seo:

Code
class MyClass(object):
    @login_required
    def my_view(self, request):
        pass

chuige seo:

Code
from django.utils.decorators import method_decorator


class MyClass(object):
    @method_decorator(login_required)
    def my_view(self, request):
        pass

nó:

Code
from django.utils.decorators import method_decorator

login_required_m = method_decorator(login_required)


class MyClass(object):
    @login_required_m
    def my_view(self, request):
        pass

Dóibh siúd agaibh a bhí ag leanúint an stoc forbartha, baineann an t-athrú seo freisin le maisitheoirí eile a tugadh isteach ó 1.1, lena n-áirítear csrf_protect, cache_control` agus aon rud a cruthaíodh ag baint úsáide as decorator_from_middleware.

if tag changesLink to this heading

Mar gheall ar ghnéithe nua sa chlib teimpléad:ttag: if `, ní ghlacann sé le 'agus', 'nó' agus 'not' mar ainmneacha bailí** athraithe** a thuilleadh. Roimhe seo, d'fhéadfaí na teaghráin seo a úsáid mar ainmneacha athróg. Anois, cuirtear stádas an eochairfhocal i bhfeidhm i gcónaí, agus caithfidh cód teimpléad mar ``{% mura bhfuil%}` nó {% if and%} ` TemplateSyntaxError . Chomh maith leis sin, is eochairfhocal nua é ``in agus mar sin ní ainm athróg bailí sa chlib seo.

LazyobjectLink to this heading

Is aicme fóntais neamhdhoiciméadaithe ach a úsáidtear go minic é LazyObject` a úsáidtear chun rudaí eile de chineál anaithnid a fhilleadh go leisciúil.

I Django 1.1 agus níos luaithe, láimhseáil sé introspection ar bhealach neamhchaighdeánach, ag brath ar rudaí fillte a chuireann modh poiblí darb ainm get_all_members () `i bhfeidhm. Ós rud é go bhféadfadh comhraic ainmneacha a bheith mar thoradh air seo go héasca, athraíodh é chun an modh caighdeánach introspection Python a úsáid, lena mbaineann ``__members__` agus ``__dir__ () ``.

Má d'úsáid tú LazyObject i do chód féin agus má chuir tú an modh `get_all_members () `i bhfeidhm le haghaidh rudaí fillte, beidh ort cúpla athrú a dhéanamh:

Ar dtús, mura bhfuil riachtanais speisialta ag do rang maidir le hionscrúdú (ie, níl __getattr__ () `curtha i bhfeidhm agat nó modhanna eile a cheadaíonn tréithe nach féidir le gnáthmheicníochtaí a aimsiú), is féidir leat an modh `get_all_members () a bhaint. Déanfaidh an cur i bhfeidhm réamhshocraithe ar LazyObject` an rud ceart.

Má tá riachtanais níos casta agat maidir le hionscrúdú, athainmnigh an modh get_all_members () ``ar dtús go ``__dir__ (). Is é seo an modh caighdeánach introspection do Python 2.6 agus os a chionn. Má theastaíonn tacaíocht uait do leaganacha Python níos luaithe ná 2.6, cuir an cód seo a leanas leis an rang:

Code
__members__ = property(lambda self: self.__dir__())

__dict__ ar chásanna samhailLink to this heading

Go stairiúil, níl ach tréithe a fhreagraíonn do na réimsí ar mhúnla i dtréith __dict__ de shampla samhail.

D'fhonn tacú le cumraíochtaí iolracha bunachar sonraí, chuir Django 1.2 tréith _state ``le cásanna réada. Beidh an tréith seo le feiceáil in ``__dict__ do shampla samhail. Má bhraitheann do chód ar athrá thar __dict__ chun liosta réimsí a fháil, ní mór duit a bheith ullamh anois chun an tréith ``_state ``a láimhseáil nó a scagadh amach.

Cód stádais imeachta an reathóra tástálaLink to this heading

Ní léiríonn cód stádas imeachta na reathaithe tástála (tests/runtests.py` agus ``python manage.py test ``) líon na dtástálacha theip a thuilleadh, toisc go raibh cód stádais imeachta mícheart mar thoradh ar theip 256 tástáil nó níos mó. Is é an cód stádais imeachta don rádálaí tástála anois 0 le haghaidh rath (gan aon tástálacha teip) agus 1 le haghaidh aon líon teipeanna tástála. Más gá, is féidir líon na dteipeanna tástála a fháil ag deireadh aschur an rádálaí tástála.

ModelForm.is_Valid () ``agus ``ModelForm.ErrorsLink to this heading

Tá cuid mhaith den obair bailíochtaithe do ModelForms bogadh síos go leibhéal an mhúnla. Mar thoradh air sin, an chéad uair a ghlaonn tú ar ModelForm.is_Valid () `, rochtain a fháil ar ``ModelForm.errors` nó bailíochtú foirm a spreagann tú ar shlí eile, glanfar do mhúnla in áit. Bhí an tiontú seo ag tarlú nuair a shábháiltear an tsamhail. Má theastaíonn sampla neamh-mhodhnaithe de do mhúnla uait, ba chóir duit cóip a chur chuig an tógálaí ``ModelForm ``.

Booleanfield ar MySQLLink to this heading

In previous versions of Django, a model's BooleanField under MySQL would return its value as either 1 or 0, instead of True or False; for most people this wasn't a problem because bool is a subclass of int in Python. In Django 1.2, however, BooleanField on MySQL correctly returns a real bool. The only time this should ever be an issue is if you were expecting the repr of a BooleanField to print 1 or 0.

Athruithe ar an léirmhíniú ar max_num i FormSetsLink to this heading

<formsets-max-num><model-formsets-max-num>Mar chuid de fheabhsuithe a rinneadh ar láimhseáil FormSets, tá athrú beagán tagtha ar luach réamhshocraithe agus léirmhíniú an pharaiméadar max_num chuig feidhmeanna: ref: django.forms.formset_factory () `agus:ref: `django.forms.modelformset_factory (). Bíonn tionchar ag an athrú seo freisin ar an mbealach a úsáidtear argóint an:attr: ~django.contrib.admin.inlineModelAdmin.max_num le haghaidh rudaí riaracháin inlíne.

Roimhe seo, ba é 0` (nialas) an luach réamhshocraithe do max_num. Ansin d'úsáid FormSets luach boolean max_num chun a chinneadh an raibh teorainn le forchur ar líon na bhfoirmeacha a ghintear. Chiallaigh luach réamhshocraithe 0 nach raibh aon teorainn réamhshocraithe ar líon na bhfoirmeacha i FormSet.

Ag tosú le 1.2, athraíodh an luach réamhshocraithe do max_num go None, agus déanfaidh FormSets idirdhealú idir luach None agus luach 0. Léiríonn luach None nach bhfuil aon teorainn le forchur ar líon na bhfoirmeacha; léiríonn luach 0 gur chóir uasmhéid 0 fhoirm a fhorchur. <model-formsets-max-num>Ní gá go gciallaíonn sé seo nach dtaispeánfar aon fhoirmeacha - féach an doiciméadú: ref: `ModelFormSet `le haghaidh tuilleadh sonraí.

Má bhí luach 0 á shonrú agat de láimh do max_num`, beidh ort do chuid sainmhínithe FormSet agus/nó riaracháin a nuashonrú.

Ríomhphost_reLink to this heading

Tá abairt rialta neamhdhoiciméadaithe chun seoltaí ríomhphoist a bhailíochtú aistrithe ó django.form.fields go django.core.validators `. Beidh ort d'allmhairí a nuashonrú má tá tú á úsáid.

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

Faoi dheireadh, déanann Django 1.2 roinnt gnéithe ó eisiúintí níos luaithe. Tacaítear leis na gnéithe seo fós, ach déanfar iad a dhíchur de réir a chéile thar na cúpla timthriall scaoilte amach romhainn.

Ardóidh an cód a bhaineann leas as aon cheann de na gnéithe thíos PendingDeprecationWarning i Django 1.2. Beidh an rabhadh seo ciúin de réir réamhshocraithe, ach féadfar é a chasadh air ag baint úsáide as modúl Python: MOD: rabhaigh, nó trí Python a reáchtáil le bratach -Wd-Wall.

I Django 1.3, beidh na rabhaidh seo ina DeprecationWarning`, ar* níl* ciúin. I Django 1.4 bainfear tacaíocht do na gnéithe seo go hiomlán.

Sonraí sonraíLink to this heading

Roimh Django 1.2, d'úsáid Django roinnt socruithe chun rochtain ar bhunachar sonraí amháin a rialú. Tugann Django 1.2 isteach tacaíocht do bhunachair shonraí iolracha, agus mar thoradh air sin tá athrú tagtha ar an mbealach a shainíonn tú socruithe bunachar sonraí.

Leanfaidh aon chomhad socruithe Django atá ann cheana ag obair mar a bhíothas ag súil go dtí Django 1.4. Go dtí sin, aistrítear socruithe bunachar sonraí sean-stíl go huathoibríoch go formáid nua.

Sa fhormáid sean-stíl (pre 1.2), bhí roinnt socruithe DATABASE_ agat i do chomhad socruithe. Mar shampla:

Code
DATABASE_NAME = "test_db"
DATABASE_ENGINE = "postgresql_psycopg2"
DATABASE_USER = "myusername"
DATABASE_PASSWORD = "s3krit"

Tá na socruithe seo anois i bhfoclóir darb ainmne:setting: DATABASES. Freagraíonn gach mír sa fhoclóir do nasc bunachar sonraí amháin, agus an t-ainm ``default' ``cur síos ar an nasc réamhshocraithe bunachar sonraí. Giorraíodh na hainmneacha socraithe freisin. Bheadh cuma seo ar na socruithe samplacha roimhe seo anois:

Code
DATABASES = {
    "default": {
        "NAME": "test_db",
        "ENGINE": "django.db.backends.postgresql_psycopg2",
        "USER": "myusername",
        "PASSWORD": "s3krit",
    }
}

Bíonn tionchar aige seo ar na socruithe seo a leanas:

Sean-shuíomh

Suíomh Nua

INNEAL_BUNACHAR SONRAÍ

<DATABASE-ENGINE>: socrú: `INNEALL `

BUNACHAR SONRAÍ_ÓST

HOST

AINM_BUNACHAR SONRA

NAME

ROGHANNA BUNACHAR SONRAÍ

: socrú: ROGHANNAÍ

``BUNACHAR SONRAÍ_PASFHOCAL ``

PASSWORD

CALAFORT BUNACHAR SONRA

PORT

BUNACHAR SONRAÍ_ÚSÁIDEORAITHE

USER

TÁSTÁLA_BUNACHAR SONRAÍ_CHARSET

TEST_CHARSET

TÁSTÁLA_BUNACHAR SONRAÍ_BAILIÚCHÁIN

TEST_COLLATION

AINM_BUNACHAR SONRAÍ TÁSTÁLA

TEST_NAME

Tá na hathruithe seo ag teastáil freisin má chruthaigh tú nasc bunachar sonraí de láimh ag baint úsáide as DatabaseWrapper () ó do chúltaca bunachar sonraí de rogha.

Chomh maith leis an athrú ar struchtúr, baineann Django 1.2 an láimhseáil speisialta le haghaidh cúltaca bunachar sonraí ionsuite. Caithfear gach cúltaca bunachar sonraí a shonrú anois le ainm modúl láncháilithe (ie, django.db.backends.postgresql_psycopg2, seachas postgresql_psycopg2).

cúltaca bunachar sonraí postgresqlLink to this heading

Níor nuashonraíodh an leabharlann psycopg1 ó Dheireadh Fómhair 2005. Mar thoradh air sin, tá cúltaca bunachar sonraí postgresql`, a úsáideann an leabharlann seo, curtha in iúl.

Má tá an cúltaca postgresql` á úsáid agat faoi láthair, ba chóir duit aistriú chuig an gcúltaca postgresql_psycopg2` a úsáid. <DATABASE-ENGINE>Chun do chód a nuashonrú, suiteáil an leabharlann ``psycopg2` agus athraigh an socrú: 'ENGINE' chun `django.db.backends.postgresql_psycopg2 a úsáid.

Meán-earraí athscríbhneoireachta freagartha CSRFLink to this heading

Tá CsrfResponseMiddleware, ', an middleware a chuir comharthaí CSRF isteach go huathoibríoch i bhfoirmeacha POST ``i leathanaigh amach, i bhfabhar modh clibeanna teimpléad (féach thuas), agus bainfear é go hiomlán i Django 1.4. `CsrfMiddleware`, lena n-áirítear feidhmiúlacht ``CsrfResponseMiddleware agus CsrfViewMiddleware, díluaite mar an gcéanna.

Chomh maith leis sin, tá modúl CSRF tar éis bogadh ó chontrib go croí, agus tá na sean-allmhairí míchuige, mar a thuairiscítear sna nótaí uasghrádaithe.

SMTPConnectionLink to this heading

Tá an rang ``SMTPConnection` díluaite i bhfabhar API cúltaca ríomhphoist cineálach. Seanchód a chuir isteach go sainráite sampla de SMTPConnection:

Code
from django.core.mail import SMTPConnection

connection = SMTPConnection()
messages = get_notification_email()
connection.send_messages(messages)

...should now call get_connection() to instantiate a generic email connection:

Code
from django.core.mail import get_connection

connection = get_connection()
messages = get_notification_email()
connection.send_messages(messages)

Ag brath ar luach an socruithe:: EMAIL_BACKEND, ní fhéadfaidh sé seo nasc SMTP a thabhairt ar ais. Má theastaíonn nasc SMTP uait go sainráite chun ríomhphost a sheoladh leis, is féidir leat nasc SMTP a iarraidh go sainráite:

Code
from django.core.mail import get_connection

connection = get_connection("django.core.mail.backends.smtp.EmailBackend")
messages = get_notification_email()
connection.send_messages(messages)

If your call to construct an instance of SMTPConnection required additional arguments, those arguments can be passed to the get_connection() call:

Code
connection = get_connection(
    "django.core.mail.backends.smtp.EmailBackend", hostname="localhost", port=1234
)

Teachtaireachtaí úsáideora APILink to this heading

Tá an API chun teachtaireachtaí a stóráil sa tsamhail Message úsáideora (trí user.message_set.create) as dul in iúl anois agus bainfear é i Django 1.4 de réir an chaighdeán:doc: próiseas scaoil </internals/release-process>.

Chun do chód a uasghrádú, ní mór duit aon chásanna seo a chur in ionad:

Code
user.message_set.create("a message")

... leis an méid seo a leanas:

Code
from django.contrib import messages

messages.add_message(request, messages.INFO, "a message")

Ina theannta sin, má úsáideann tú an modh, ní mór duit an méid seo a leanas a chur in ionad:

Code
for message in user.get_and_delete_messages():
    ...

... le:

Code
from django.contrib import messages

for message in messages.get_messages(request):
    ...

Le haghaidh tuilleadh faisnéise, féach an iomlán:doc: teachtaireachtaí doiciméadúcháin </ref/contrib/messages>. Ba chóir duit tosú ag nuashonrú do chód chun an API nua a úsáid láithreach.

Feidhmeanna cúnta formáid dátaLink to this heading

django.utils.translation.get_date_formats () ``agus ``django.utils.translation.get_partial_date_formats () i bhfabhar na nglaonna iomchuí chuig django.utils.formats.get_format () `, atá ar an eolas áitiúil nuair a shocraítear USE_L10N go`` True`, agus titeann sé ar ais go socruithe réamhshocraithe má tá sé socraithe go False.

Chun na formáidí dáta éagsúla a fháil, in ionad seo a scríobh:

Code
from django.utils.translation import get_date_formats

date_format, datetime_format, time_format = get_date_formats()

... Úsáid:

Code
from django.utils import formats

date_format = formats.get_format("DATE_FORMAT")
datetime_format = formats.get_format("DATETIME_FORMAT")
time_format = formats.get_format("TIME_FORMAT")

Nó, agus luach dáta á fhormáidiú go díreach:

Code
from django.utils import formats

value_formatted = formats.date_format(value, "DATETIME_FORMAT")

Baineann an rud céanna leis na globaí atá le fáil in django.forms.fields:

  • FORMÁIDÍ DÁTA_IONCHUIR RÉAMHSHOCRAITHE

  • FORMÁIDÍ IONCHUIR AMA RÉAMHSHOCRAITHEACH

  • ``FORMÁIDÍ DÁTA RÉAMHSHOCRAITHE_IONCHUIRIÚCHÁIN ``

Úsáid ``django.utils.formats.get_format () ``chun na formáidí cuí a fháil.

Reathaithe tástála feidhmbunaitheLink to this heading

Athraíonn Django 1.2 na huirlisí rádálaí tástála chun cur chuige rangbhunaithe a úsáid. <topics-testing-test_runner>Oibreoidh reathaithe tástála bunaithe ar fheidhm sean-stíl fós, ach ba chóir iad a nuashonrú chun na reathaithe nua:ref: `rang-bhunaithe `a úsáid.

Feed i django.contrib.syndication.feedsLink to this heading

Cuireadh an ranga:class: Django.Contrib.Syndication.Views.Feed in ionad an ranga Django.Contrib.Syndication.Views.Feed. Tá an sean-rang Feeds.Feed díluaite, agus bainfear é i Django 1.4.

Tá API beagnach mar an gcéanna ag an rang nua, ach is féidir cásanna a úsáid mar radharcanna. Mar shampla, smaoinigh ar úsáid an tseanchreat sa URLconf:

Code
from django.conf.urls.defaults import *
from myproject.feeds import LatestEntries, LatestEntriesByCategory

feeds = {
    "latest": LatestEntries,
    "categories": LatestEntriesByCategory,
}

urlpatterns = patterns(
    "",
    # ...
    (
        r"^feeds/(?P<url>.*)/$",
        "django.contrib.syndication.views.feed",
        {"feed_dict": feeds},
    ),
    # ...
)

Ag baint úsáide as an rang Beatha nua, is féidir na fothaí seo a imscaradh go díreach mar thuairimí:

Code
from django.conf.urls.defaults import *
from myproject.feeds import LatestEntries, LatestEntriesByCategory

urlpatterns = patterns(
    "",
    # ...
    (r"^feeds/latest/$", LatestEntries()),
    (r"^feeds/categories/(?P<category_id>\d+)/$", LatestEntriesByCategory()),
    # ...
)

Má úsáideann tú an radharc feed () ``faoi láthair, is minic nach an rang ``Latestentries a mhodhnú seachas an rang nua:class: ~django.contrib.syndication.views.feed a fho-aicmiú. Is é an eisceacht ná má bhí Django ag obair amach go huathoibríoch ainm an teimpléid le húsáid chun tuairisc agus eilimintí teidil an fhotha a léiriú (mura raibh na tréithe title_template agus description_template` á shonrú agat). Ba chóir duit a chinntiú go sonraíonn tú tréithe title_template agus description_template` i gcónaí, nó modhanna item_title () ``agus ``item_description () a sholáthraíonn tú.

Mar sin féin, úsáideann LatestentriesByCategory an modh get_object () ``leis an argóint ``bits chun catagóir ar leith a shonrú le taispeáint. Sa rang nua:class: ~django.contrib.syndication.views.feed, glacann modh get_object () ```request agus argóintí ón URL, mar sin bheadh cuma seo air:

Code
from django.contrib.syndication.views import Feed
from django.shortcuts import get_object_or_404
from myproject.models import Category


class LatestEntriesByCategory(Feed):
    def get_object(self, request, category_id):
        return get_object_or_404(Category, id=category_id)

    # ...

Ina theannta sin, glacann an modh get_feed () ``ar ranganna ``Feed argóintí difriúla anois, rud a d'fhéadfadh tionchar a imirt ort má úsáideann tú na ranganna Feed ``go díreach. In ionad argóint roghnach ``url ``a ghlacadh, tógann dhá argóint anois: an réad a chuirtear ar ais trína modh ``get_object () `féin, agus an réad reatha ```iarraidh.

Chun ranganna Feed ``a chur san áireamh nach bhfuil tionscnaíodh do gach iarratas, ghlacann an modh ``__init__ () aon argóintí anois de réir réamhshocraithe. Roimhe seo thógfadh sé an slug` ón URL agus an réad ``iarraidh`.

De réir dea-chleachtais RSS `_, beidh eilimint `atom: link` san áireamh anois ag fothaí RSS. B'fhéidir go mbeidh ort do thástálacha a nuashonrú chun é seo a chur san áireamh.

Le haghaidh tuilleadh faisnéise, féach an doiciméadú creata sindiciúcháin iomlán:doc: </ref/contrib/syndication>.

ID teachtaireachta teicniúlaLink to this heading

Suas le leagan 1.1 D'úsáid Django IDanna teachtaireachta teicniúla chun an fhéidearthacht a sholáthar do logálaithe formáidí dáta agus ama a aistriú. Bhí siad <translation string>inaistrithe: téarma: teaghráin aistriúcháin `a d'fhéadfaí a aithint toisc gur uachtarchás iad uile (mar shampla:setting: `DATETIME_FORMAT, :setting: DATE_FORMAT, :setting: TIME_FORMAT). <locale name>Tá siad curtha i bhfabhar an bonneagar nua:doc: /topics/i18n/formatting a ligeann do logálaithe an fhaisnéis sin a shonrú i gcomhad formats.py san eolaire comhfhreagrach ``django/conf/locale/ ``.

GeodJangoLink to this heading

To allow support for multiple databases, the GeoDjango database internals were changed substantially. The largest backwards-incompatible change is that the module django.contrib.gis.db.backend was renamed to django.contrib.gis.db.backends, where the full-fledged spatial database backends now exist. The following sections provide information on the most-popular APIs that were affected by these changes.

SpatialBackendLink to this heading

Prior to the creation of the separate spatial backends, the django.contrib.gis.db.backend.SpatialBackend object was provided as an abstraction to introspect on the capabilities of the spatial database. All of the attributes and routines provided by SpatialBackend are now a part of the ops attribute of the database backend.

Cuirtear an sean-mhodúl django.contrib.gis.db.backend fós ar fáil le haghaidh rochtain comhoiriúnachta cúil ar réad SpatialBackend, nach bhfuil ach ainm ar an modúl ops den nasc bunachar sonraí spásúil*default*.

Ceanglaítear ar úsáideoirí a bhí ag brath ar mhodúil agus ar rudaí neamhdhoiciméadaithe laistigh de django.contrib.gis.db.backend, seachas na teibí a sholáthraíonn ``SpatialBackend`, a gcód a mhodhnú. Mar shampla, an t-allmhairiú seo a leanas a oibreodh in 1.1 agus thíos:

Code
from django.contrib.gis.db.backend.postgis import PostGISAdaptor

Bheadh gá é a athrú:

Code
from django.db import connection

PostGISAdaptor = connection.ops.Adapter

Samhlacha SpatialRefsys agus GeometryColumnsLink to this heading

I leaganacha roimhe seo de GeodJango, bhí: mod: django.contrib.gis.db.models samhlacha spatialRefsys` agus ``GeometryColumns chun táblaí meiteashonraí spásúla OGC spatial_ref_sys agus geometry_columns a cheistiú, faoi seach.

Cé go gcuirtear na hainmneacha seo ar fáil fós, níl siad ach don nasc bunachar sonraí réamhshocraithe agus níl ann ach má tá an nasc réamhshocraithe ag úsáid cúltaca bunachar sonraí spásúil tacaithe.

Chun na SpatialRefsys` agus GeometryColumns ceart a fháil do do bhunachar sonraí spásúil bain úsáid as na modhanna a sholáthraíonn an cúltaca spásúil:

Python console
>>> from django.db import connections
>>> SpatialRefSys = connections["my_spatialite"].ops.spatial_ref_sys()
>>> GeometryColumns = connections["my_postgis"].ops.geometry_columns()

Cód teanga noLink to this heading

Tá an cód teanga níos coitianta nb á chur in ionad an cód teanga a úsáidtear faoi láthair do Bokmål na hIorua ``no ``.

Luchtaitheoirí teimpléad bunaitheLink to this heading

Athraíonn Django 1.2 an meicníocht lódála teimpléid chun cur chuige rang-bhunaithe a úsáid. Beidh lódairí teimpléid sean-stíl bunaithe ar fheidhm fós ag obair, ach ba cheart iad a nuashonrú chun na lódairí teimpléid rangbhunaithe nua a úsáid.