---
title: "Do chuid aipeanna a iompar ó Django 0.96 go 1.0"
version: 5.2
locale: ga
source: https://docs.djangoproject.com/ga/5.2/releases/1.0-porting-guide/
canonical: https://djangodocs.dev/ga/5.2/releases/1.0-porting-guide/
---
# Do chuid aipeanna a iompar ó Django 0.96 go 1.0

Briseann Django 1.0 comhoiriúnacht le 0.96 i roinnt réimsí.

Cuideoidh an treoir seo leat tionscadal agus feidhmchláir 0.96 a phort go 1.0. Cuimsíonn an chéad chuid den doiciméad seo na hathruithe coitianta a theastaíonn chun reáchtáil le 1.0. Má bhriseann do chód fós tar éis dul tríd an gcéad chuid, seiceáil an chuid Athruithe Lú Coitianta \_ le haghaidh liosta de dornán saincheisteanna comhoiriúnachta nach bhfuil chomh coitianta.

> **See also**
>
> Nótaí scaoileadh: Doc: 1.0 \</releases/1.0\>. Míníonn an doiciméad sin na gnéithe nua i 1.0 níos doimhne; tá baint níos mó ag an treoir iompair le cabhrú leat do chód a nuashonrú go tapa.

## Athruithe coitianta

Déanann an chuid seo cur síos ar na hathruithe idir 0.96 agus 1.0 a chaithfidh mórchuid na n-úsáideoirí a dhéanamh.

### Úsáid Unicode

Athraigh litríochtaí teaghrán (`'foo'`) go litríochtaí Unicode (`u'foo'`). Úsáideann Django teaghráin Unicode anois ar fud. I bhformhór na n-áiteanna, leanfaidh teaghráin amh ag obair, ach cuirfidh nuashonrú chun litríochtaí Unicode a úsáid cosc ar roinnt fadhbanna doiléire.

Féach: doc: /ref/unicode le haghaidh sonraí iomlána.

### Samhla

Athruithe coitianta ar do chomhad samhlacha:

#### Athainmnigh ```maxlength ``go ``max_long```

Athainmnigh d'argóint ```maxlength ``go `max_length``` (athraíodh é seo chun a bheith comhsheasmhach le réimsí foirme):

#### Cuir `__unicode__` in ionad `__str__`

Cuir modh `__unicode__` feidhm `__str__` do mhúnla, agus déan cinnte go n-úsáideann tú Unicode\`\_ (`u'foo'`) sa mhodh sin.

#### Bain `prepopulated_from`

Bain an argóint `prepopulated_from` ar réimsí samhail. Níl sé bailí a thuilleadh agus aistríodh é go dtí an rang `ModelAdmin` i admin.py\`. Féach an riarachán \_, thíos, le haghaidh tuilleadh sonraí faoi athruithe ar an riarachán.

#### Bain core \`\`

Bain an argóint ```core ``ó do réimsí samhail. Níl sé riachtanach a thuilleadh, ós rud é go láimhseálann an comhéadan riaracháin an fheidhmiúlacht chomhionann (cuid de: ref: `eagarthóireacht inlíne <admin-inlines>`) go difriúil anois. Ní gá duit a bheith buartha faoi eagarthóireacht inlíne go dtí go sroicheann tú chuig an rannán `an riaracháin `_, thíos. Go dtí seo, bain na tagairtí go léir do `core```.

#### Cuir “admin” in ionad `class Admin:` le admin.py\`

Bain do dhearbhuithe inmheánacha aicme Riaracháin ó do mhúnlaí. Ní bhriseoidh siad aon rud má fhágann tú iad, ach ní dhéanfaidh siad aon rud freisin. Chun aipeanna a chlárú leis an riarachán aistrfidh tú na dearbhuithe sin chuig comhad admin.py; féach an riarachán \_ thíos le haghaidh tuilleadh sonraí.

> **See also**
>
> Tá script scríofa ag ranníocóir le  a dhéanfaidh  comhfhreagrach.

#### Sampla

Seo thíos sampla comhad `models.py` leis na hathruithe go léir a chaithfidh tú a dhéanamh:

Sean (0.96) `models.py`:

```
class Author(models.Model):
    first_name = models.CharField(maxlength=30)
    last_name = models.CharField(maxlength=30)
    slug = models.CharField(maxlength=60, prepopulate_from=("first_name", "last_name"))

    class Admin:
        list_display = ["first_name", "last_name"]

    def __str__(self):
        return "%s %s" % (self.first_name, self.last_name)
```

Nua (1.0) `models.py`:

```
class Author(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)
    slug = models.CharField(max_length=60)

    def __unicode__(self):
        return "%s %s" % (self.first_name, self.last_name)
```

Nua (1.0) `admin.py`:

```
from django.contrib import admin
from models import Author

class AuthorAdmin(admin.ModelAdmin):
    list_display = ["first_name", "last_name"]
    prepopulated_fields = {"slug": ("first_name", "last_name")}

admin.site.register(Author, AuthorAdmin)
```

### An Riarachán

Ceann de na hathruithe is mó i 1.0 is é an riarachán nua. Tá comhéadan riaracháin Django (django.contrib.admin \`) athchóirithe go hiomlán; tá sainmhínithe riaracháin dícheangailte go hiomlán anois ó shainmhínithe samhail, athscríobhadh an creat chun leabharlann láimhseála foirm nua Django a úsáid agus athdhearadh le leathaitheacht agus saincheaptha san áireamh.

Go praiticiúil, ciallaíonn sé seo go mbeidh ort gach ceann de do dhearbhuithe ``` `Riarachán aicme ``a athscríobh. Chonaic tú cheana féin i `samhlacha `_ thuas conas glao ``admin.site.register () ``a chur in ionad do ``admin aicme ``` admin ``` `. Seo thíos roinnt sonraí níos mó maidir le conas an dearbhú ``Riarach ``` sin a athscríobh isteach sa chomhréir nua.

#### Úsáid comhréir inlíne nua

Tá na roghanna nua `edit_inline` aistrithe go léir chuig admin.py\`. Seo sampla:

Sean (0.96):

```
class Parent(models.Model): ...

class Child(models.Model):
    parent = models.ForeignKey(Parent, edit_inline=models.STACKED, num_in_admin=3)
```

Nua (1.0):

```
class ChildInline(admin.StackedInline):
    model = Child
    extra = 3

class ParentAdmin(admin.ModelAdmin):
    model = Parent
    inlines = [ChildInline]

admin.site.register(Parent, ParentAdmin)
```

Féach: ref: admin-inlines le haghaidh tuilleadh sonraí.

#### ```réimsí ``a shimpliú, nó bain úsáid as ``fieldsets```

Bhí an sean-chomhpháirtíocht ```réimsí `mearbhall go leor, agus tá sé simplithe. Oibríonn an sean-chomhréir fós, ach beidh ort ``fieldsets``` a úsáid ina ionad.

Sean (0.96):

```
class ModelOne(models.Model):
    ...

    class Admin:
        fields = ((None, {"fields": ("foo", "bar")}),)

class ModelTwo(models.Model):
    ...

    class Admin:
        fields = (
            ("group1", {"fields": ("foo", "bar"), "classes": "collapse"}),
            ("group2", {"fields": ("spam", "eggs"), "classes": "collapse wide"}),
        )
```

Nua (1.0):

```
class ModelOneAdmin(admin.ModelAdmin):
    fields = ("foo", "bar")

class ModelTwoAdmin(admin.ModelAdmin):
    fieldsets = (
        ("group1", {"fields": ("foo", "bar"), "classes": "collapse"}),
        ("group2", {"fields": ("spam", "eggs"), "classes": "collapse wide"}),
    )
```

> **See also**
>
> - Is féidir faisnéis níos mionsonraithe faoi na hathruithe agus na cúiseanna atá taobh thiar leo a fháil ar an leathanach wiki NewFormsAdminbranch \_\_
> - Tagann an riarachán nua le tonna gnéithe nua; is féidir leat léamh fúthu in:doc: doiciméadú riaracháin \</ref/contrib/admin/index\>.

### URLanna

#### Nuashonraigh do fhréamh `urls.py`

Má tá an suíomh riaracháin á úsáid agat, ní mór duit do fhréamh urls.py\` a nuashonrú.

Sean (0.96) `urls.py`:

```
from django.conf.urls.defaults import *

urlpatterns = patterns(
    "",
    (r"^admin/", include("django.contrib.admin.urls")),
    # ... the rest of your URLs here ...
)
```

Nua (1.0) `urls.py`:

```
from django.conf.urls.defaults import *

# The next two lines enable the admin and load each admin.py file:
from django.contrib import admin

admin.autodiscover()

urlpatterns = patterns(
    "",
    (r"^admin/(.*)", admin.site.root),
    # ... the rest of your URLs here ...
)
```

### Radharcanna

#### Úsáid `django.forms` in ionad `newforms`

Cuir django.newforms\` in ionad django.forms\` \- Athainmníodh Django 1.0 an modúl `newforms` (tugadh isteach i 0.96) go sean-foirme\` simplí. Baineadh an modúl oldforms freisin.

Má tá leabharlann newforms\` á úsáid agat cheana féin, agus má d'úsáid tú ár gcomhréiteach ráiteas allmhairiúch\` a mholtar, níl le déanamh agat ach do ráitis iompórtála a athrú.

Sean:

```
from django import newforms as forms
```

Nua:

```
from django import forms
```

Má tá an seanchóras foirmeacha á n-úsáid agat (ar a django.forms\`\` agus django.oldforms\` roimhe seo), beidh ort d'fhoirmeacha a athscríobh. Áit mhaith le tosú ná: doc: foirmeacha doiciméadúcháin \</topics/forms/index\>

#### Láimhseáil comhaid uaslódáilte ag úsáid an API

Cuir úsáid comhaid uaslódáilte - is é sin, iontrálacha i `Request.Files` -- mar fhoclóirí simplí leis an nua:class: ~django.core.files.uploadedfile.uploadedfile. Ní oibríonn comhréir an sean-fhoclóra a thuilleadh.

Dá bhrí sin, i radharc mar:

```
def my_view(request):
    f = request.FILES["file_field_name"]
    ...
```

... bheadh ort na hathruithe seo a leanas a dhéanamh:

| Sean (0.96) | Nua (1.0) |
| --- | --- |
| f \['ábhar'\] \`\` | f.read () \`\` |
| f \['ainm comhad'\] \`\` | `f.ainm` |
| f \['cineál ábhair'\] \`\` | `f.cineál_content` |

#### Oibrigh le réimsí comhad ag baint úsáide as an API nua

Tá athrú tagtha ar chur i bhfeidhm inmheán:class: Django.db.Models.FileField. Toradh infheicthe air seo ná go bhfuil athrú tagtha ar an mbealach a rochtain agat ar thréithe speisialta (URL, ainm comhaid, méid íomhá, srl.) na réimsí samhail seo. Beidh ort na hathruithe seo a leanas a dhéanamh, ag glacadh leis ar do mhúnla 's:class: ~django.db.models.filefield tugtar `myfile`:

| Sean (0.96) | Nua (1.0) |
| --- | --- |
| myfile.get\_content\_filename () \`\` | `myfile.content.path` |
| myfile.get\_content\_url () \`\` | myfile.content.url \`\` |
| myfile.get\_content\_size () \`\` | `myfile.content.size` |
| myfile.save\_content\_file () \`\` | myfile.content.save () \`\` |
| myfile.get\_content\_width () \`\` | `myfile.content.width` |
| myfile.get\_content\_height () \`\` | `myfile.content.height` |

Tabhair faoi deara nach bhfuil ciall ar na tréithe `leithead` agus `airde` ach do réimsí: class: \`~django.db.models.imagefield. Is féidir tuilleadh sonraí a fháil sna cáipéiséisíocht: doc: model API \</ref/models/fields\>.

#### Úsáid `Paginator` in ionad `ObjectPaginator`

Baineadh an ObjectPaginator\` i 0.96 agus cuireadh leagan feabhsaithe ina ionad, :class: django.core.paginator.paginator.

### Teimpléid

#### Foghlaim grá a bhaint as autoescaping

De réir réamhshocraithe, éalaíonn an córas teimpléid HTML-go huathoibríoch anois aschur gach athróg. Chun tuilleadh a fhoghlaim, féach:ref: automatic-html-escaping.

Chun éalú uathoibríoch a dhíchumasú le haghaidh athróg aonair, bain úsáid as an scagair:tfilter: safe:

```html+django
This will be escaped: {{ data }}
This will not be escaped: {{ data|safe }}
```

Chun éalú uathoibríoch a dhíchumasú le haghaidh teimpléad iomlán, fillte an teimpléad (nó díreach cuid áirithe den teimpléad) sa chlibe:ttag: autoescape:

```html+django
{% autoescape off %}
   ... unescaped template content here ...
{% endautoescape %}
```

## Athruithe nach bhfuil chomh coitianta

Is athruithe níos lú, níos logánaithe iad na hathruithe seo a leanas. Níor cheart dóibh dul i bhfeidhm ach ar úsáideoirí níos airde, ach is dócha gur fiú léamh tríd an liosta agus do chód a sheiceáil le haghaidh na rudaí seo.

### Comharthaí

- Cuir kwargs le haon láimhseálaithe comhartha cláraithe.
- Ceangail, dícheangail agus seol comharthaí trí mhodhanna ar an réad: class: ~django.dispch.signal in ionad trí mhodhanna modúl i django.expedich.expedicher\`.
- Bain aon úsáid de na roghanna seoltóra `Anainm` agus ```` `Aon ``` ```` ``` ` `` `` `` `` `` `` `` `` `` ` Is féidir leat comharthaí a sheolann aon seoltóir a fháil fós trí úsáid a bhaint as ``seoltóir = none ```
- Déan aon chomharthaí saincheaptha a dhearbhaigh tú i gcásanna de:class: Django.Dispatch.Signal in ionad rudaí gan ainm.

Seo achoimre tapa ar na hathruithe cód a chaithfidh tú a dhéanamh:

| Sean (0.96) | Nua (1.0) |
| --- | --- |
| def glaonna aisghairm (seoltóir) \`\` | def glaonna aisghairm (seoltóir, kwargs) \`\` |
| sig = réad () \`\` | sig = django.expedich.signal () \`\` |
| expedicher.connect (glaoch ar ais, sig) \`\` | sig.connect (glaoch ar ais) \`\` |
| expedicher.send (sig, seoltóir) \`\` | sig.send (seoltóir) \`\` |
| expedicher.connect (glaoch ar ais, sig, seoltóir = aon) \`\` | sig.connect (glaoch ar ais, Seoltóir = níl aon duine) \`\` |

### Tuairimí

Má bhí tú ag úsáid aip django.contrib.comments\` Django 0.96, beidh ort uasghrádú a dhéanamh chuig an aip tráchtanna nua a tugadh isteach i 1.0. Féach an treoir uasghrádaithe le haghaidh sonraí.

### Clibeanna teimpléid

#### [`spaceless`](/ga/5.2/ref/templates/builtins/#std-templatetag-spaceless) tag

Baineann an chlib teimpléad `spacel` anois spásanna uach\* idir clibeanna HTML, in ionad spás amháin a chaomhnú.

### Blasanna áitiúla

#### Blas áitiúil na SA

Athainmníodh ```django.contrib.localflavor.usa ``go `django.contrib.localflavor.us```. Rinneadh an t-athrú seo chun scéim ainmniúcháin blasanna áitiúla eile a mheaitseáil. Chun do chód a aistriú, níl le déanamh agat ach na hallmhairí a athrú.

### Seisiúin

#### Eochair seisiúin nua a fháil

Athainmníodh ```SessionBase.get_new_session_key () ``go ``_get_new_session_key ()```. get\_new\_session\_object () níl ann a thuilleadh.

### Daingneáin

#### Ní ghlaonn sé ar save () a thuilleadh ag luchtú sraitheanna

Roimhe seo, rith an tsraith a luchtú go huathoibríoch modh save () an tsamhail. Níl sé seo amhlaidh a thuilleadh, mar sin teastaíonn luachanna follasacha in aon daingneán anois ó aon réimsí (mar shampla: stampaí ama) a rinneadh go huathoibríoch ag save () .

### Socruithe

#### Eisceachtaí níos fearr

Tá an sean:exc: EnvironmentError roinnte ina an:exc: ImportError nuair a theipeann ar Django an modúl socruithe a aimsiú agus a:exc: RuntimeError nuair a dhéanann tú iarracht socruithe a athchumrú tar éis iad a úsáid cheana féin.

#### [`LOGIN_URL`](/ga/5.2/ref/settings/#std-setting-LOGIN_URL) has moved

Bhog an: setting: LOGIN\_URL tairiseach ó `django.contrib.auth` isteach sa modúl ```socruithe ``. <LOGIN_URL>In ionad ``from django.contrib.auth allmhairiú LOGIN_URL``` a úsáid féach to:setting: Settings.login\_url .

#### [`APPEND_SLASH`](/ga/5.2/ref/settings/#std-setting-APPEND_SLASH) behavior has been updated

I 0.96, mura raibh deireadh le URL i slash nó mura raibh tréimhse aige sa chomhpháirt dheiridh dá chonair, agus:setting: 'APPEND\_SLASH\` Fíor, atreoródh Django chuig an URL céanna, ach le slash curtha leis an deireadh. Anois, seiceálann Django chun a fheiceáil an mbeadh rud éigin i do phatrúin URL comhoiriúnach leis an bpatrún gan an slash rianaithe. Más ea, ní dhéantar aon athatreorú, toisc go nglactar leis go raibh tú ag iarraidh an patrún sin a ghabháil d'aon ghnó.

Maidir le formhór na ndaoine, ní bheidh aon athruithe ag teastáil ó seo. Mar sin féin, tá patrúin URL ag daoine áirithe a bhfuil cuma seo orthu:

```
r"/some_prefix/(.*)$"
```

Roimhe seo, bheadh na patrúin sin a atreorú chun slasc rianaithe a bheith acu. Más mian leat slash i gcónaí ar URLanna den sórt sin, athscríobh an patrún mar:

```
r"/some_prefix/(.*/)$"
```

### Athruithe samhail níos lú

#### Eisceacht difriúil ó get () \`\`

Tugann bainisteoirí ar ais anois eisceacht a:exc: ~Django.Core.Exceptions.MultipleObjectsReturned in ionad:exc: AssertionError:

Sean (0.96):

```
try:
    Model.objects.get(...)
except AssertionError:
    handle_the_error()
```

Nua (1.0):

```
try:
    Model.objects.get(...)
except Model.MultipleObjectsReturned:
    handle_the_error()
```

#### Scaoileadh `LazyDate`

Níl an rang cúntóra `LazyDate` ann a thuilleadh.

Is féidir luachanna réamhshocraithe réimse agus argóintí fiosrúcháin a bheith ina rudaí inghlaonta, mar sin is féidir tagairt do datetime.datetime.now\` a chur in ionad cásanna `LazyDate`:

Sean (0.96):

```
class Article(models.Model):
    title = models.CharField(maxlength=100)
    published = models.DateField(default=LazyDate())
```

Nua (1.0):

```
import datetime

class Article(models.Model):
    title = models.CharField(max_length=100)
    published = models.DateField(default=datetime.datetime.now)
```

#### Tá `Decimalfield` nua, agus is snámhphointe ceart anois é `Floatfield`

Sean (0.96):

```
class MyModel(models.Model):
    field_name = models.FloatField(max_digits=10, decimal_places=3)
    ...
```

Nua (1.0):

```
class MyModel(models.Model):
    field_name = models.DecimalField(max_digits=10, decimal_places=3)
    ...
```

Má dhéanann tú dearmad an t-athrú seo a dhéanamh, feicfidh tú earráidí faoi `Floatfield` gan tréith `max_digits` a ghlacadh i `__init__`, toisc nach nglacann an `Floatfield` nua aon argóintí a bhaineann le cruinneas.

Má tá MySQL nó PostgreSQL á úsáid agat, níl aon athruithe breise ag teastáil. Tá na cineálacha colún bunachar sonraí le haghaidh `Decimalfield` mar an gcéanna leis an sean-`Floatfield`.

Má tá SQLite á úsáid agat, ní mór duit an bunachar sonraí a chur i bhfeidhm ar na colúin chuí mar chineálacha deachúil, seachas snámha. Chun seo a dhéanamh, beidh ort do chuid sonraí a athluchtú. Déan é seo tar éis duit an t-athrú a dhéanamh ar Decimalfield a úsáid i do chód agus an cód Django a nuashonrú.

> **Warning**
>
> \*\* Cuir cúltaca ar do bhunachar sonraí ar dtús! \*\*
>
> Maidir le SQLite, ciallaíonn sé seo cóip a dhéanamh den chomhad aonair a stóráilíonn an bunachar sonraí (is é ainm an chomhaid sin an DATABASE\_NAME\` i do chomhad `settings.py`).

Chun gach feidhmchlár a uasghrádú chun Decimalfield\` a úsáid, is féidir leat an méid seo a leanas a dhéanamh, agus ainm gach aip in ionad sa chód th \<app\>íos:

```console
$ ./manage.py dumpdata --format=xml <app> > data-dump.xml
$ ./manage.py reset <app>
$ ./manage.py loaddata data-dump.xml
```

Nótaí:

1. Tá sé tábhachtach go gcuimhneoidh tú formáid XML a úsáid sa chéad chéim den phróiseas seo. Táimid ag baint leas as gné de na dumpaí sonraí XML a fhágann gur féidir snámha a iompar go deachmhálacha le SQLite.
2. Sa dara céim iarrfar ort a dhearbhú go bhfuil tú ullmhaithe chun na sonraí a chailleadh don iarratas (í) atá i gceist. Abair tá; cuirfimid na sonraí seo ar ais sa tríú céim.
3. Ní úsáidtear `Decimalfield` in aon cheann de na feidhmchláir a sheoltar le Django sula ndéantar an t-athrú seo, mar sin ní gá duit a bheith buartha faoin nós imeachta seo a dhéanamh d'aon cheann de na samhlacha caighdeánacha Django.

Má théann rud éigin mícheart sa phróiseas thuas, níl le déanamh ach cóipeáil do bhunachar sonraí cúltaca thar an mbunchomhad agus tosú arís.

### Idirnáisiúnú

#### [`django.views.i18n.set_language()`](/ga/5.2/topics/i18n/translation/#django.views.i18n.set_language) now requires a POST request

Roimhe seo, úsáideadh iarratas GET. Chiallaigh an sean-iompar go bhféadfaí stát (an áitiúil a úsáidtear chun an suíomh a thaispeáint) a athrú trí iarratas GET, atá i gcoinne moltaí na sonraíochta HTTP. Caithfidh an cód a ghlaonn an dearcadh seo a chinntiú go ndéantar iarratas POST anois, in ionad GET. Ciallaíonn sé seo nach féidir leat nasc a úsáid a thuilleadh chun rochtain a fháil ar an radharc, ach caithfidh tú aighneacht foirme de chineál éigin a úsáid (m.sh. cnaipe).

#### Níl \_ () i dtógáin a thuilleadh

Ní dhéantar \_ () (an réad inghlaonta a bhfuil a ainm béim amháin aige) a thuilleadh isteach i dtógáin - is é sin, níl sé ar fáil go draíochta i ngach modúl a thuilleadh.

Má bhí tú ag brath roimhe seo ar \_ () \`\`a bheith i láthair i gcónaí, ba cheart duit \`\`ugettext\` nó `ugettext_lazy` a iompórtáil go sainráite anois, más cuí, agus é a ainmhairiú chuig \_\` duit féin:

```
from django.utils.translation import ugettext as _
```

### Réadanna iarrata/freagartha HTTP

#### Rochtain ar an bhfoclóir ar HttpRequest\`

Ní thacaíonn rudaí HttpRequest\` le rochtain ar stíl fhoclóra a thuilleadh; roimhe seo, bhí sonraí `GET` agus POST \`\`ar fáil go díreach ar an réad \`HttpRequest\` (m.sh., d'fhéadfá píosa sonraí foirme a sheiceáil trí if 'some\_form\_key' a úsáid in iarrat\` nó trí request \['some\_form\_key'\]. Ní thacaítear leis seo a thuilleadh; má theastaíonn rochtain uait ar na sonraí comhcheangailte \`\`GET\` agus POST \`, bain úsáid as `Request.request` ina ionad.

Moltar go láidir, áfach, go bhféachann tú go sainráite sa fhoclóir cuí i gcónaí don chineál iarratais a bhfuil súil agat a fháil (`Request.Get` nó `Request.Post`); ag brath ar an bhfoclóir comhcheangailte `request.request` is féidir bunús na sonraí atá ag teacht isteach a masc.

#### Rochtain a fháil ar cheanntásca HttpResponse\`

Athainmníodh `Django.http.httpResponse.Headers` go `_headers` agus:class: ~django.http.http.httpResponse tacaíonn anois le seiceáil srianta go díreach. Mar sin bain úsáid as if ceannteideal mar fhreagra: \`\`in ionad \`\`if ceannteideal i freagra.heads:\`.

### Caidreamh cineálach

#### Tá caidreamh cineálach aistrithe as croílár

Tá na ranganna caidrimh chineálach -- GenericForeignKey\` agus GenericRelation -- tar éis bogadh isteach sa mhodúl:mod: django.contrib.contenttypes.

### Tástáil

#### [`django.test.Client.login()`](/ga/5.2/topics/testing/tools/#django.test.Client.login) has changed

Sean (0.96):

```
from django.test import Client

c = Client()
c.login("/path/to/login", "myuser", "mypassword")
```

Nua (1.0):

```
# ... same as above, but then:
c.login(username="myuser", password="mypassword")
```

### Orduithe bainistíochta

#### Orduithe bainistíochta a rith ó do chód

[`django.core.management`](/ga/5.2/howto/custom-management-commands/#module-django.core.management) has been greatly refactored.

Caithfidh glaonna chuig seirbhísí bainistíochta i do chód call\_command a úsáid anois. Mar shampla, má tá cód tástála éigin agat a ghlaonn flush agus load\_data:

```
from django.core import management

management.flush(verbosity=0, interactive=False)
management.load_data(["test_data"], verbosity=0)
```

... beidh ort an cód seo a athrú chun léamh:

```
from django.core import management

management.call_command("flush", verbosity=0, interactive=False)
management.call_command("loaddata", "test_data", verbosity=0)
```

#### Caithfidh fo-orduithe a bheith roimh roghanna anois

Éilíonn `django-admin.py` agus manage.py\` fo-orduithe anois chun roimh roghanna. Mar sin:

```console
$ django-admin.py --settings=foo.bar runserver
```

... ní oibríonn sé a thuilleadh agus ba chóir é a athrú go:

```console
$ django-admin.py runserver --settings=foo.bar
```

### Sindeacáitiú

#### `Beathú. __init__` tá athrú tagtha

Glacann an modh ```__init__ () ``de rang ``Feed``` chreat shiondícithe réad `HttpRequest` anois mar a dara paraiméadar, in ionad URL an bheatha. Ligeann sé seo don chreat siondicíochta oibriú gan creat na suíomhanna a bheith ag teastáil. Ní théann sé seo ach ar an gcód a dhéanann fo-aicmí ```Feed ``agus a sháraíonn an modh ``__init__ ()```, agus an cód a ghlaonn Feed. \_\_init\_\_ () go díreach.

### Struchtúir sonraí

#### Tá `Sorteddictfromlist` imithe

Baineadh `django.newforms.forms.sorteddictfromlist`. Is féidir `Django.Utils.DataStructures.SortedDict` a ionchasadh anois le seicheamh tuples.

Chun do chód a nuashonrú:

1. Úsáid `Django.Utils.DataStructures.SortedDict` cibé áit a raibh tú ag úsáid `Django.NewForms.Forms.SortedDictFromList`.
2. Toisc nach dtugann Django.utils.DataStructures.SortedDict.copy\` doimhchóip ar ais mar a rinne ``SortedDictFromList.copy () `, beidh ort do chód a nuashonrú má bhí tú ag brath ar dhoimhchóip. Déan é seo trí `copy.deepcopy`` a úsáid go díreach.

### Feidhmeanna cúl bunachar sonraí

#### Athainmníodh feidhmeanna cúltaca bunachar sonraí

Athainmníodh agus/nó athlonnaíodh beagn\* uil\* de fheidhmeanna cúltaca an bhunachar sonraí. Níor doiciméadaíodh aon cheann díobh seo, ach beidh ort do chód a athrú má tá aon cheann de na feidhmeanna seo á úsáid agat, a bhfuil gach ceann acu in:mod: django.db:

| Sean (0.96) | Nua (1.0) |
| --- | --- |
| `backend.get_autoinc_sql` | `connection.ops.autoinc_sql` |
| `backend.get_date_extract_sql` | `connection.ops.date_extract_sql` |
| `backend.get_date_trunc_sql` | `connection.ops.date_trunc_sql` |
| `backend.get_datetime_cast_sql` | `connection.ops.datetime_cast_sql` |
| `backend.get_deferrable_sql` | `connection.ops.deferrable_sql` |
| `backend.get_drop_foreignkey_sql` | `connection.ops.drop_foreignkey_sql` |
| `backend.get_fulltext_search_sql` | `connection.ops.fulltext_search_sql` |
| backend.get\_last\_insert\_id \`\` | connection.ops.last\_insert\_id \`\` |
| `backend.get_limit_offset_sql` | `connection.ops.limit_offset_sql` |
| backend.get\_max\_name\_length \`\` | connection.ops.max\_name\_length \`\` |
| `backend.get_pk_default_value` | `connection.ops.pk_default_value` |
| `backend.get_random_function_sql` | `connection.ops.random_function_sql` |
| backend.get\_sql\_flush \`\` | connection.ops.sql\_flush \`\` |
| backend.get\_sql\_sequence\_reset \`\` | `nascach.ops.sequence_reset_sql` |
| `backend.get_start_transaction_sql` | `nascach.ops.start_transaction_sql` |
| `backend.get_tablespace_sql` | `connection.ops.tablespace_sql` |
| `backend.quote_name` | `connection.ops.quote_ainm` |
| `backend.get_query_set_class` | `connection.ops.query_set_class` |
| `backend.get_field_cast_sql` | `connection.ops.field_cast_sql` |
| `backend.get_drop_sequence` | `connection.ops.drop_sequence_sql` |
| `Backend.Operator_Mapping` | nascach.oibreoirí \`\` |
| `backend.allows_group_by_ordal` | `nascach.features.allows_group_by_ordinal` |
| `backend.allows_unique_and_pk` | `nascach.features.allows_unique_and_pk` |
| `backend.autoindexes_primary_keys` | `Connection.Features.autoindexes_primary_keys` |
| `backend.needs_datetime_string_cast` | `Connection.Features.needs_datetime_string_cast` |
| backend.needs\_upper\_for\_iops \`\` | `Connection.Features.needs_upper_for_iops` |
| `backend.supports_theorints` | `Connection.Features.supports_theorints` |
| `backend.supports_tablespaces` | `Connection.Features.supports_tablespaces` |
| `` `backend.uses_cáis_ainmneacha neamhíogaire `` | `nascach.features.úsáid_cáis_ainmneacha neamhghíogaire` |
| `backend.uses_custom_queryset` | `Connection.Features.uses_custom_queryset` |
