RkBlog

Hardware, programming and astronomy tutorials and reviews.

Duże i ciekawe zmiany w Django 1.7

Przegląd zmian wprowadzonych do nadchodzącej wersji 1.7 frameworka Django

Od niedawna dostępna jest druga alfa Django 1.7, którą można testować i zgłaszać napotkane błędy. W nowej wersji tego frameworka ujrzymy szereg dużych zmian. Plan przewiduje betę w marcu, a wersję finalną w maju. Co ciekawego znajdziemy w 1.7?

Z mniejszych zmian można wymienić:

Wstecznie niezgodne zmiany

Django 1.7 wprowadza szereg wstecznie niezgodnych zmian związanych głównie z migracjami i zmianą mechanizmu ładowania aplikacji. Wspomniana została już zmiana z initial_data, które nie będą ładowane gdy istnieją migracje.

Zmiana ładowania aplikacji może spowodować wystąpienie wyjątków typu RuntimeError: App registry isn't ready yet.. Rzucane są gdy importując coś z aplikacji wykonujemy kod zależny od rejestru aplikacji (który jeszcze nie istnieje). Może to mieć miejsce gdy robimy zapytania zanim wszystkie modele zostaną załadowane, czy np. przez tłumaczenia robione poprzez ugettext (a nie ugettext_lazy). Wyjątek ImportError: cannot import name pojawi się jeżeli import wpadł w pętlę.

Skrypty wykorzystujące aplikacje Django muszą teraz na początku zainicjalizować framework lub dostaną wspomniany RuntimeError:

import django
django.setup()

Z krótkich testów Django 1.7a2 natrafiłem na problemy z Gunicornem - import nieistniejącego pliku, jak i wyjątek App registry. Większe aplikacje mogą natrafić na błędy w zależnościach i aplikacjach trzecich.

RkBlog

18 February 2014;

Comment article