---
title: "Nótaí scaoilte Django 1.2"
version: 6.0
locale: ga
source: https://docs.djangoproject.com/ga/6.0/releases/1.2/
canonical: https://djangodocs.dev/ga/6.0/releases/1.2/
---
# Nótaí scaoilte Django 1.2

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](#whats-new-1-2) 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ú

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](#permissions-for-anonymous-users), ceadanna d'úsáideoirí gan ainm \_, agus:ref: riachtanais ainm úsáideora níos solúbtha .
- Saincheapadh seoladh ríomhphoist trí [backends](#email-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 .

> **See also**
>
> Clúdaigh [Django Advent](https://github.com/djangoadvent/djangoadvent-articles) scaoileadh Django 1.2 le sraith alt agus ranganna teagaisc a chlúdaíonn cuid de na gnéithe nua go domhain.

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](#get-db-prep-methods-on-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](#stateful-template-tags)
- 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 Python

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

### Tacaíocht do iliomad bunachar sonraí

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 tú ar ``save ()```.

### Bailíochtú samhail

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 feabhsaithe

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í

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éada

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`](/ga/6.0/ref/contrib/auth/#django.contrib.auth.models.User) úsáid as. Féach an [doiciméid fíordheimhnithe](/ga/6.0/topics/auth/) le haghaidh tuilleadh eolais.

### Ceadanna d'úsáideoirí gan ainm

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](/ga/6.0/topics/auth/) for more details.

### Riachtanais suaimhneach d'ainmneacha

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íomhphoist

\<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 if

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:

```html+django
{% ifnotequal a b %}
 ...
{% endifnotequal %}
```

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

```html+django
{% if a != b %}
 ...
{% endif %}
```

Níl aon chúis ann i ndáiríre `{% ifequal%}` nó `{% 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:

```html+django
<div
  {% if user.email|lower == message.recipient|lower %}
    class="highlight"
  {% endif %}
>{{ message }}</div>
```

### Caching teimpléad

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 aicmbunaithe

Mar chuid de na hathruithe a rinneadh chun [Caching Teimpléad](#template-caching) 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 daingneo

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álacha

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.

### `BigIntegerfield`

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

### Logánú feabhsaithe

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

[`django.contrib.admin.ModelAdmin.readonly_fields`](/ga/6.0/ref/contrib/admin/#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 in

\<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í

[Syndication feeds](/ga/6.0/ref/contrib/syndication/) can now be used directly as
views in your [URLconf](/ga/6.0/topics/http/urls/). 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.

### GeodJango

The most significant new feature for [GeoDjango](/ga/6.0/ref/contrib/gis/)
in 1.2 is support for multiple spatial databases. As a result,
the following [spatial database backends](/ga/6.0/ref/contrib/gis/db-api/#spatial-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.

### Láimhseáil le cúnamh JavaScript ar rudaí a bhaineann le líne sa riarachán

Má tá JavaScript cumasaithe ag úsáideoir ina bhrabhsálaí, ceadaíonn an comhéadan le haghaidh rudaí inlíne sa riarachán anois rudaí inlíne a chur leis agus a bhaint go dinimiciúil. Ní fheicfidh úsáideoirí gan brabhsálaithe atá cumasaithe ag JavaScript aon athrú ar iompar rudaí inlíne.

### Carachtair sonraitheora formáid clib teimpléad nua `ano`: c\` agus `u`

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](#improved-localization).

## Athruithe neamh-chomhoiriúnacha ar chúl i 1.2

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 CSRF

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

  > **Doiciméadú bainte**
  >
  > Baineadh na nótaí uasghrádaithe sna docs reatha Django. Féach do thoil do na doiciméid do Django 1.3 nó níos sine chun na treoracha seo a fháil.
- Tá `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 `Field```

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:

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

```
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 tú in ann uasghrádú trí ``get_db_prep_value () `a athainmniú go ``get_prep_value ()``` agus ```get_db_prep_lookup () ``. Má 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áiteach

\<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`](/ga/6.0/ref/templates/builtins/#std-templatetag-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:

```html+django
{% for object in object_list %}
    {% include "subtemplate.html" %}
{% endfor %}
```

le `subtemplate.html` a léann:

```html+django
{% 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_riachtana`

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:

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

chuige seo:

```
from django.utils.decorators import method_decorator

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

nó:

```
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`](/ga/6.0/ref/templates/builtins/#std-templatetag-if) tag changes

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.

### `Lazyobject`

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:

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

### `__dict__` ar chásanna samhail

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ála

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.

### Ionchódú fianán

To fix bugs with cookies in Internet Explorer, Safari, and possibly
other browsers, our encoding of cookie values was changed so that the
comma and semicolon are treated as non-safe characters, and are
therefore encoded as `\054` and `\073` respectively. This could
produce backwards incompatibilities, especially if you are storing
comma or semi-colon in cookies and have JavaScript code that parses
and manipulates cookie values client-side.

### ```ModelForm.is_Valid () ``agus ``ModelForm.Errors```

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 MySQL

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 FormSets

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

> **See also**
>
> [Láimhseáil le cúnamh JavaScript ar rudaí a bhaineann le líne sa riarachán](#js-assisted-inlines)

### `Ríomhphost_re`

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

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

> **See also**
>
> Le haghaidh tuilleadh sonraí, féach an doiciméadú:doc: Próiseas scaoileadh Django agus inn:doc: líne ama díphróiseálaí \</internals/release-process\> \</internals/deprecation\> . \`

### Sonraí sonraí

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:

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

```
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`](/ga/6.0/ref/settings/#std-setting-HOST) |
| `AINM_BUNACHAR SONRA` | [`NAME`](/ga/6.0/ref/settings/#std-setting-NAME) |
| `ROGHANNA BUNACHAR SONRAÍ` | : socrú: ROGHANNAÍ |
| BUNACHAR SONRAÍ\_PASFHOCAL \`\` | [`PASSWORD`](/ga/6.0/ref/settings/#std-setting-PASSWORD) |
| `CALAFORT BUNACHAR SONRA` | [`PORT`](/ga/6.0/ref/settings/#std-setting-PORT) |
| `BUNACHAR SONRAÍ_ÚSÁIDEORAITHE` | [`USER`](/ga/6.0/ref/settings/#std-setting-USER) |
| `TÁSTÁLA_BUNACHAR SONRAÍ_CHARSET` | [`TEST_CHARSET`](/ga/6.0/ref/settings/#std-setting-TEST_CHARSET) |
| `TÁSTÁLA_BUNACHAR SONRAÍ_BAILIÚCHÁIN` | [`TEST_COLLATION`](/ga/6.0/ref/settings/#std-setting-TEST_COLLATION) |
| `AINM_BUNACHAR SONRAÍ TÁSTÁLA` | [`TEST_NAME`](/ga/6.0/ref/settings/#std-setting-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í `postgresql`

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 CSRF

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

> **Doiciméadú bainte**
>
> Baineadh na nótaí uasghrádaithe sna docs reatha Django. Féach do thoil do na doiciméid do Django 1.3 nó níos sine chun na treoracha seo a fháil.

### `SMTPConnection`

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:

```
from django.core.mail import SMTPConnection

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

...should now call [`get_connection()`](/ga/6.0/topics/email/#django.core.mail.get_connection) to
instantiate a generic email connection:

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

```
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()`](/ga/6.0/topics/email/#django.core.mail.get_connection) call:

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

### Teachtaireachtaí úsáideora API

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:

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

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

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

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

... le:

```
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áta

Tá ```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:

```
from django.utils.translation import get_date_formats

date_format, datetime_format, time_format = get_date_formats()
```

... Úsáid:

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

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

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

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](/ga/6.0/topics/http/urls/):

```
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í:

```
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 gá 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:

```
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 sé 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, ní 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úla

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

### GeodJango

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`](/ga/6.0/ref/contrib/gis/db-api/#module-django.contrib.gis.db.backends), where the full-fledged
[spatial database backends](/ga/6.0/ref/contrib/gis/db-api/#spatial-backends) now exist. The
following sections provide information on the most-popular APIs that
were affected by these changes.

#### `SpatialBackend`

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:

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

Bheadh gá é a athrú:

```
from django.db import connection

PostGISAdaptor = connection.ops.Adapter
```

#### Samhlacha `SpatialRefsys` agus `GeometryColumns`

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.

> **Note**
>
> Because the table structure of the OGC spatial metadata tables
> differs across spatial databases, the `SpatialRefSys` and
> `GeometryColumns` models can no longer be associated with
> the `gis` application name. Thus, no models will be returned
> when using the `get_models` method in the following example:
>
> ```pycon
> >>> from django.db.models import get_app, get_models
> >>> get_models(get_app("gis"))
> []
> ```

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:

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

> **Note**
>
> Agus na samhlacha a chuirtear ar ais ón modh spatial\_ref\_sys () agus geometry\_columns () á úsáid, beidh ort fós an ailias ceart bunachar sonraí a úsáid agus tú ag fiosrú ar an nasc neamh-réamhshocraithe. Is é sin le rá, chun a chinntiú go n-úsáideann na samhlacha sa sampla thuas an bunachar sonraí ceart:
>
> ```
> sr_qs = SpatialRefSys.objects.using("my_spatialite").filter(...)
> gc_qs = GeometryColumns.objects.using("my_postgis").filter(...)
> ```

### Cód teanga `no`

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 bunaithe

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.
