1. Nyheterna i Django 1.3

    Onsdag, 23 Mars, 18:15

    Efter många månaders arbete och ett par uppskjutna deadlines så finns nu Django 1.3 att hämta i en skarp version.

    Trots att den nya versionen till en början endast var avsedd för mindre funktioner och buggfixar så kommer 1.3 fullspäckad med såväl små som stora nyheter. Något som främst kan bero på att man släppt in flera nya core-committers sedan 1.2.

    Klassbaserade vyer

    En av funktionerna som blev tvungen att stryka på foten vid lanseringen av 1.2 var klassbaserade vyer. Men efter en utdragen diskussion på utvecklarlistan så har man äntligen kommit fram till en stabil lösning som skeppas med 1.3.

    Värt att notera är att de klassbaserade vyerna inte är tänkta att ersätta de vanliga funktionsbaserade vyerna, utan snarare fungerar som ett komplement för de situationer då arv och kombinationer av mindre vyer kan gynna resultatet.

    De generiska vyerna är dock på väg att ersättas av klassbaserade motsvarigheter. Något som bör underlätta modifikationer i större grad än vad som tidigare var möjligt med en omslutande funktionsvy.

    Själv så har jag bara hunnit leka lite med de nya klasserna, men det första intrycket är förvirring kring vilka mixins som finns tillgängliga, och vilka metoder som de tillhandahåller. Något som säkert bara är en vanesak, men det skulle inte förvåna mig om det dyker upp ett cheatsheet som behandlar just detta inom kort.

    Loggning

    Att kunna logga olika händelser i sitt projekt är knappast något nytt, men nu har man integrerat loggningen på ramverksnivå, så man kan få ut detaljerad information om vad som händer på en lägre nivå än vad som tidigare var möjligt.

    Det blir också enklare för applikationer att logga händelser när det finns ett standardiserat sätt att göra det på.

    Enklare hantering av statiska filer

    Distribution av statiska filer tillsammans med sin applikation har länge varit problematiskt, och har alltid krävt omständig handpåläggning i form av symboliska länkar och kopiering av filer.

    De statiska filerna har också fått dela katalog med användaruppladdat material, något som kanske inte är önskvärt i vissa situationer.

    Dessa problem råder man nu bot på genom en ny contrib-applikation vid namn staticfiles, som gör det enkelt att samla statiska filer från alla applikationer i ett projekt till en och samma plats.

    Valbart beteende vid radering av refererade modeller

    Om man har två modeller som på något sätt refererar varandra, så måste man bestämma sig vad som ska ske med “barnet” om “föräldern” blir borttagen.

    Det tidigare beteendet har varit att ta bort barnen tillsammans med föräldern. Men nu kan man själv ange hur man vill hantera de olika referenserna när ett relaterat objekt blir borttaget.

    Några av möjligheterna är att skydda det refererade objektet, sätta referensen till NULL, ett standardvärde eller ett angivet värde, med mera.

    TemplateResponse

    Ibland kanske man vill modifiera resultatet av en vy innan den når användaren, genom att lägga till nya objekt i dess kontext, eller kanske ändra det template som kommer användas.

    Men detta blir svårt om en vy returerar ett HttpResponse-objekt, som redan är renderat och klart.

    Detta löser man nu med en ny typ av svarsklass — TemplateResponse — som fördröjer renderingen genom att bära med sig template, kontext och annan svarsdata tills det är absolut nödvändigt att rendera ett svar.

    Mer av det goda

    Ovan har jag bara listat de stora förändringarna som jag tycker är mest intressanta, men 1.3 innehåller såklart mycket, mycket mer. Så om du tröttnat på mina taffliga översättningar och vill ha mer detaljer så finner du en rejäl lista över nyheter, stora som små, tillsammans med ett par buggfixar som bryter bakåtkompitabiliteten i changeloggen.

  2. PyCon US 2011

    Onsdag, 16 Mars, 15:46

    Ännu ett PyCon US har passerat. Och i sedvanlig ordning så har man nu laddat upp de filmade presentationerna, för att vi som inte befann oss på plats ändå ska få ta del av den kunskap som delades.

    Materialet håller som vanligt en hög kvalitet, både med avsikt på presentationernas ...

  3. Blogga som en hacker

    Lördag, 5 Mars, 9:29

    Återigen hade jag tänkt ta upp skrivandet genom att fräscha upp lite av innehållet från min gamla djangobaserade blogg och flytta över det till GitHub Pages under ett lättare tema och i ett helt statiskt format.

    Fördelarna är många, bland annat så slipper jag den något krångliga processen med att ...

  4. Introduktion till makron i Vim

    Lördag, 5 Mars, 9:17

    Kommandot . används som bekant för att upprepa den senaste ändringen. Men om man vill utföra ändringar som inte kan beskrivas som ett enda kommando så måste man spela in ett makro, kanske mer känt som en en komplex repetition.

    Inspelning av makron

    För att spela in ett makro så använder ...