Migravimas į Django 1.5 versiją

4 min. skaitymo

Visai neseniai buvo išleista Django 1.5.* versija. Man atnaujinimai naujesnės versijos patiko, tačiau praktikoje sukėlė daug nesklandumų bandant produktus atnaujinti iš senesnių versijų į šią. Todėl skubu pasidalinti populiariausių problemų sprendimo būdais ir apskritai papasakosiu apie tai ką galima rasti šioje versijoje.

Pati didžiausia naujiena tai Python 3 versijos palaikymas. Tiesa, kad jį pripažintų kaip stabilų dar reikės palaukti sekančios versijos (1.6.*). Bet įtariu tokiems mėgėjams viską mėginti iš anksčiau, kaip aš, nėra kliūtis ant produkcinio serverio leistis ir šią versiją su Python 3 ;)

Django 1.5 jau palaiko Python 3

Antra didžiausia ir džiugiausia naujiena yra tai, kad pagaliau atsirado galimybė User modelį keisti! Taip, galite arba papildyti seną egzistuojantį modelį be workarround’ų ar patch’inimo kaip esu matęs tą darant programuotojus, bet ir tiesiog naudoti savo modelį. Nuostabi žinia!

Didžiausias pasikeitimas šablonų programavime yra {% url %} tag’as. Dabar jo reikšmes reikės rašyti kabutėse. Aš jau seniai laukiau šio pakeitimo, nes šimtai Django projektų (aplikacijų) nesilaikė šio jau seniai užvesto standarto: kabutėse tekstai, nekintamos reikšmės, o be kabučių kintamieji. Pavyzdžiui {% url “atsijungimas” %} ir {% url entry.slug %}. Beje, toks principas jau seniai galioja beveik visiems tag’ams.

Pasileidau projektus ir iškart užmyniau ant populiarios savo problemos kai adresą iškart atvaizduoji be jokio view’so, o tik su HTML’u. Django kūrėjai atsisakė tokių populiarių „greitukų“ kaip direct_to_template ir vietoje jų skatina pereiti prie Class Based Views programavimo.

Vietoje direct_to_template teks rašyti:

Pasikeitė simplejson modulio naudojimas. Django jau nebenaudos savo versijos, taigi jau negalėsite pasiekti django.utils.simplejson, vietoje to JSON’o biblioteka teks pasirūpinti patiems. Laimei šią biblioteką pasieksite iš sisteminių bibliotekų, bet dėl versijų skirtumų dabar teks rūpintis patiems.

Gera žinia, kad pagaliau puslapiavimo validatorius tikrins ar atidarytas puslapis yra nurodytame rėžyje. Juokinga klaida (ar galima tai vadinti klaida?).

Anksčiau naudojote „cleanup” management komandą? Dabar jos nebeliko, pervadinkite į „clearsessions“. Apie visas management komandas galite paskaityti mano praėjusiame straipsnyje.

Taip pat teko pastebėti, kad sesijos duomenys neatnaujinami, jeigu Jūsų kode „ištiko“ sisteminė klaida.

Apie labai smulkius atnaujinimus galite paskaityti Django 1.5 release notes. Lauksime naujos Django 1.6 versijos kurioje bus stabilus Python 3 versijos palaikymas. Manau, kad šio atnaujinimo laukia daug ištikimų šio framework programuotojų.

Palikti komentarą