# Django 6.0.7 documentation

# Django 1.2.4 versionsinformation

Välkommen till Django 1.2.4!

Detta är den fjärde ”bugfix”-releasen i Django 1.2-serien, som förbättrar stabiliteten och prestandan i Django 1.2-kodbasen.

Med ett undantag är Django 1.2.4 bakåtkompatibel med Django 1.2.3. Den innehåller också ett antal korrigeringar och andra förbättringar. Django 1.2.4 är en rekommenderad uppgradering för all utveckling eller distribution som för närvarande använder eller riktar in sig på Django 1.2.

För fullständig information om nya funktioner, inkompatibilitet bakåt och utdaterade funktioner i 1.2-grenen, se Django 1.2 versionsinformation.

## Bakåtkompatibla förändringar

### Begränsade filter i administratörsgränssnittet

Djangos administrativa gränssnitt, `django.contrib.admin`, stöder filtrering av visade listor över objekt efter fält i motsvarande modeller, inklusive relationer på databasnivå. Detta implementeras genom att skicka uppslagsargument i URL-adressens frågestring, och alternativ på ModelAdmin-klassen gör det möjligt för utvecklare att ange särskilda fält eller relationer som kommer att generera automatiska länkar för filtrering.

En historiskt odokumenterad och inofficiellt stödd funktion har varit möjligheten för en användare med tillräcklig kunskap om en modells struktur och formatet på dessa uppslagsargument att uppfinna användbara nya filter i farten genom att manipulera frågesträngen.

Det har dock visat sig att detta kan missbrukas för att få tillgång till information som ligger utanför en administratörsanvändares behörigheter; till exempel kan en angripare med tillgång till administratören och tillräcklig kunskap om modellstruktur och relationer konstruera frågesträngar som - med upprepad användning av reguljära uttryckssökningar som stöds av Djangos databas-API - avslöjar känslig information som användarnas lösenordshashar.

För att åtgärda detta kommer `django.contrib.admin` nu att validera att argument för uppslagsord i frågeord antingen endast anger fält i den modell som visas eller korsar relationer som uttryckligen har tillåtits av programutvecklaren med hjälp av den befintliga mekanismen som nämns ovan. Detta är bakåtkompatibelt för alla användare som förlitar sig på den tidigare möjligheten att infoga godtyckliga uppslagningar.

## En ny funktion

Vanligtvis innehåller en punktversion inte nya funktioner, men i fallet med Django 1.2.4 har vi gjort ett undantag från denna regel.

En av de buggar som åtgärdades i Django 1.2.4 innebär en uppsättning omständigheter där en testsvit som körs på en konfiguration med flera databaser kan orsaka att den ursprungliga källdatabasen (dvs. den faktiska produktionsdatabasen) tappas bort, vilket orsakar katastrofal förlust av data. För att lösa detta problem var det nödvändigt att införa en ny inställning - `TEST_DEPENDENCIES` - som gör att du kan definiera eventuella beroenden i skapelseordningen i din databaskonfiguration.

De flesta användare - även användare med konfigurationer med flera databaser - behöver inte oroa sig för felet med dataförlust eller den manuella konfigurationen av `TEST_DEPENDENCIES`. Se original problem report dokumentation om controlling the creation order of test databases för detaljer.

## GeoDjango

Den funktionsbaserade `TEST_RUNNER` som tidigare användes för att köra GeoDjango-testsviten, `django.contrib.gis.tests.run_gis_tests`, har slutligen utgått till förmån för en klassbaserad testlöpare, `django.contrib.gis.tests.GeoDjangoTestSuiteRunner`, som lades till i den här utgåvan.

Dessutom ingår nu testsviten GeoDjango när man kör Djangos testsvit med `runtests.py` och använder spatial databas backends.