Django 1.4 - lista nowości i zmian w nowej wersji frameworka
23 marca wydana została nowa wersja frameworka Django oznaczona numerem 1.4. Można pobrać ją ze strony projektu. Największą zmianą w tej wersji jest dodanie obsługi stref czasowych. Jeżeli włączymy obsługę stref czasowych Django będzie zapisywać obiekty daty/czasu dla czasu UTC. Przy wyświetlaniu obiekty te uwzględnią strefę czasową użytkownika. Zostało już dokładnie opisane w dokumentacji. Oprócz tego w Django 1.4 znajdziemy:
- Usprawnienia w ORMie, w tym obsługę SELECT FOR UPDATE, czy możliwość wydajniejszego dodawania dużych grup rekordów. Dodano także QuerySet.prefetch_related do "grupowego" ładowania powiązanych rekordów (tam gdzie select_related() nie zadziała).
- Zwiększenie bezpieczeństwa - dodanie lepszego haszowania haseł (np. za pomocą bcrypt, czy PBKDF2), nowe narzędzia do podpisywania danych, usprawnienia CSRF i proste zabezpieczenia przez clickjackingiem.
- Zmieniono także startowy szkielet projektu jak i manage.py tak było tam mniej "magii".
- Dodano obsługę testów działających w przeglądarce (np. Selenium)
- Pełna lista zmian w release notes.
Django 1.4 nie obsługuje już Pythona 2.4. Obecnie Django działa pod wersjami 2.5, 2.6 i 2.7. Niebawem znane mają być plany stopniowej migracji z Pythona 2 na Pythona 3 (choć obsługa Pythona 2 na pewno za szybko nie zniknie).
Z wstecznie niezgodnych zmian wymienić można wymaganą wartość dla SECRET_KEY (Django 1.4 rzuci tylko ostrzeżeniem DeprecationWarning, ale Django 1.5 już się bez tego nie uruchomi). W przypadku Panelu Admina framework będzie szukał plików statycznych w ścieżce określanej przez STATIC_URL (STATIC_URL/admin/).
Szybki test Django 1.4
Wykorzystując istniejące projekty sprawdziłem na szybko nową wersję Django. W przypadku projektu robionego na Django 1.3 nie zauważyłem żadnych problemów. Nieco starsze wymagały dwóch poprawek w ustawieniach (settings.py).
Po pierwsze do MIDDLEWARE_CLASSES musiałem dodać:
Comment article