Na oficjalnej stronie Django można przeczytać: "Po wielu miesiącach pracy z dumą ogłaszamy wydanie dziś Django 1.2".
Co to oznacza? Na pewno koniec wsparcia dla archaicznego już Pythona 2.3. Django 1.2 wymaga interpretera Pythona w wersji co najmniej 2.4.
Ważniejsze są jednak te zmiany, których można było już posmakować w wersjach rozwojowych, a których w wersji "stabilnej" bardzo brakowało.
(Wziąłem słowo "stabilnej" w cudzysłów, bo tak naprawdę w przypadku Django nawet przy pobieraniu wersji rozwojowej z SVN trudno mówić o niestabilności).
Główne "wielkie" zmiany sprowadzają się do kilku punktów
1. Django obsługuje już więcej niż jedną bazę danych. Nie wymaga to komentarza.
2. Zmiany w języku szablonów. Wreszcie {% if %} zyskuje funkcjonalność zbliżoną do normalnej. Nie trzeba już wspierać się protezami typu {% ifequal %}
3. Zostały dodane mechanizmy pozwalające wprowadzać uprawnienia dla konkretnego obiektu, a nie dla tabeli. Wprawdzie nie jest to "gotowe do użycia", ale wreszcie możliwe. Ma to kapitalne znaczenie dla pracy w systemie, gdzie pracuje wielu użytkowników i konieczne jest nadawanie różnych uprawnień do rekordów. Na przykład można pewnemu użytkownikowi nadać uprawnienie do edytowania jednej, konkretnej wiadomości. O tym postaram się w najbliższym czasie napisać więcej.
Z pozostałych nowości godne uwagi wydają mi się:
- walidacja danych (nie tylko z formularza, ale dla modelu),
- ochrona przed atakami CSRF,
- uprawnienia dla anonimowego użytkownika,
- większa elastyczność jeśli chodzi o konfigurację wysyłania poczty elektronicznej.
Dodam jeszcze - bez związku z Django 1.2 - że Riklaunim opublikował ostatnio bardzo ciekawy artykuł o dodatkowej aplikacji, pozwalającej rozbudować panel admina m. in. o menedżer plików.