Django 1.8.2 release notes

20 maj 2015

Django 1.8.2 åtgärdar ett säkerhetsproblem och flera buggar i 1.8.1.

Fixad sessionsspolning i backend cached_db

En ändring av session.flush() i cached_db session backend i Django 1.8 sätter felaktigt sessionsnyckeln till en tom sträng istället för None. En tom sträng behandlas som en giltig sessionsnyckel och sessionskakan ställs in i enlighet med detta. Alla användare med en tom sträng i sin sessionskaka kommer att använda samma sessionslager. `session.flush() anropas av django.contrib.auth.logout() och, mer allvarligt, av django.contrib.auth.login() när en användare byter konto. Om en användare är inloggad och loggar in igen på ett annat konto (utan att logga ut) spolas sessionen för att undvika återanvändning. När sessionen har spolats (och dess sessionsnyckel blir '') ställs kontouppgifterna in på sessionen och sessionen sparas. Alla användare som har en tom sträng i sin sessionskaka kommer nu att vara inloggade på det kontot.

Buggrättningar

  • Fixad kontroll för unika alias i mallmotorer (#24685).

  • Korrigerad krasch vid återanvändning av samma Case-instans i en fråga (#24752).

  • Korrigerad join-marknadsföring för Case-uttryck. Om man till exempel annoterar en fråga med ett Case-uttryck kan man oväntat filtrera bort resultat (#24766).

  • Fixat negerade Q-objekt i uttryck. Fall som Case(When(~Q(friends__age__lte=30))) försökte generera en subquery vilket resulterade i en krasch (#24705).

  • Åtgärdat felaktig generering av GROUP BY-klausuler på MySQL när frågans modell har en självrefererande främmande nyckel (#24748).

  • Implementerade ForeignKey.get_db_prep_value() så att ForeignKey som pekar på UUIDField och arv på modeller med UUIDField primärnycklar fungerar korrekt (#24698, #24712).

  • Fixad isnull lookup för HStoreField (#24751).

  • Fixade en MySQL-krasch när en migrering tar bort ett kombinerat index (unique_together eller index_together) som innehåller en främmande nyckel (#24757).

  • Felaktig radering av sessionscookies vid användning av SESSION_COOKIE_DOMAIN (#24799).

  • På PostgreSQL, när ingen åtkomst beviljas för databasen postgres, faller Django nu tillbaka till standarddatabasen när den normalt kräver en ”ingen databas” -anslutning (#24791).

  • Fixad visning av contrib.admin’s ForeignKey widget när den används i en rad med andra fält (#24784).