4 sierpnia 2024 roku wydano Django 5.1, co oznacza kolejny krok w rozwoju tego popularnego frameworka webowego. W tym poście omówię najważniejsze zmiany i nowości, które wprowadza Django 5.1.
Zakończenie Wsparcia dla Wcześniejszych Wersji
Wydanie Django 5.1 oznacza zakończenie wsparcia mainstream dla wersji 5.0. Wersja 5.0 będzie wspierana w ramach extended support do końca kwietnia 2025. Wersja 5.2 LTS (Long Term Support) jest planowana na kwiecień 2025 roku i będzie otrzymywać łatki bezpieczeństwa do kwietnia 2028 roku.
Czy Warto Teraz Robić Upgrade?
Jeśli szukasz stabilności i długoterminowego wsparcia, warto poczekać na wersję 5.2 LTS. Jednak, jeśli chcesz skorzystać z nowych funkcji i poprawek, upgrade do wersji 5.1 może być dobrym wyborem.
Nowości w Django 5.1
1.Koniec z @login_required wszędzie!
Django 5.1 wprowadza nowe middleware, które wymaga autentykacji domyślnie. To oznacza, że wszystkie nieuwierzytelnione żądania będą przekierowane do strony logowania. Wystarczy dodać django.contrib.auth.middleware.LoginRequiredMiddleware do listy middleware i z głowy (po AuthenticationMiddleware)!
2. Szablon Tag {% querystring %}
Ten nowy tag szablonu umożliwia łatwe modyfikowanie parametrów zapytania w URLach. Przykład:
<a href="{% querystring page=page.next_page_number %}">Następna strona</a>Jest to znacznie prostsze niż poprzednie metody.
3. ModelAdmin.list_display Teraz Wspiera Użycie __ do Listowania Pól z Powiązanych Modeli
Ta funkcja pozwala na wyświetlanie pól z powiązanych modeli w panelu administracyjnym. Przykład:
class MyModelAdmin(admin.ModelAdmin):
list_display = ('__str__', 'related_model__field')Przydatne, gdy macie złożone modele.
4. Inne Ważne Zmiany
- Poprawki w
JSONField: Teraz możliwe jest wykonywanie bardziej złożonych zapytań na danych JSON. - Poprawki w Bezpieczeństwie: Wprowadzono nowe ustawienia i middleware, które ułatwiają egzekwowanie bezpiecznych praktyk w aplikacjach Django.
Zmiany Niekompatybilne wstecz
- Usunięto Wsparcie dla PostGIS 2.5: Teraz wymagana jest wersja 3.0 lub wyższa.
- Usunięto Wsparcie dla PROJ < 6: Teraz wymagana jest wersja 6 lub wyższa.
- Usunięto Wsparcie dla GDAL 2.4: Teraz wymagana jest wersja 3.0 lub wyższa.
- Usunięto Wsparcie dla MariaDB 10.4: Teraz wymagana jest wersja 10.5 lub wyższa.
- Usunięto Wsparcie dla PostgreSQL 12: Teraz wymagana jest wersja 13 lub wyższa.
Funkcje Przestarzałe
ModelAdmin.log_deletion()iLogEntryManager.log_action(): Zastąpione przezModelAdmin.log_deletions()iLogEntryManager.log_actions().django.utils.itercompat.is_iterable(): Zastąpione przezisinstance(..., collections.abc.Iterable).django.contrib.gis.geoip2.GeoIP2.coords(): Zastąpione przezdjango.contrib.gis.geoip2.GeoIP2.lon_lat().
Podsumowanie
Django 5.1 wprowadza kilka ciekawych nowości i poprawek. Najciekawsze jest middleware wymagające logowania, pozwala uniknąć wiele "copy/paste" z dekoratorem lub mixinem. Ja bym jednak poczekał z upgradem do 5.2 LTS.
Bibliografia:
https://endoflife.date/django
https://docs.djangoproject.com/en/5.1/releases/5.1/
Dołącz do społeczności PyMasters, gdzie możesz wziąć udział w ciekawych projektach i podnosić swoje umiejętności w Pythonie i Django.
Pobierz mój bezpłatny ebook: WARSZTAT JUNIORA Przewodnik po kluczowych kompetencjach i narzędziach dla początkującego programisty Pythona
Zapraszam do zadawania pytań przez formularz kontaktowy. Pamiętaj, że jeśli potrzebujesz wsparcia, możesz napisać do mnie - pomogę.
Spodobał Ci się post?
Podziel się nim!
Masz uwagi do posta, chcesz porozmawiać, szukasz pomocy z Pythonem i Django? Napisz do mnie!