Inbyggt API för klassbaserade vyerLink to this heading
API-referens för klassbaserade vyer. För introduktionsmaterial, se Klassbaserade åsikter ämnesguide.
SpecifikationLink to this heading
Varje begäran som hanteras av en klassbaserad vy har ett oberoende tillstånd; därför är det säkert att lagra tillståndsvariabler på instansen (dvs. self.foo = 3 är en trådsäker operation).
En klassbaserad vy distribueras till ett URL-mönster med hjälp av as_view() klassmetod:
urlpatterns = [
path("view/", MyView.as_view(size=42)),
]
Argument som skickas till as_view() kommer att tilldelas till den instans som används för att hantera en begäran. Med hjälp av det tidigare exemplet innebär detta att varje begäran på MyView kan använda self.size. Argumenten måste motsvara attribut som redan finns i klassen (returnerar True vid en hasattr-kontroll).
Bas vs generiska vyerLink to this heading
Basklassbaserade vyer kan betraktas som *föräldra*vyer som kan användas själva eller ärvas från. De kanske inte ger alla de funktioner som krävs för projekt, och i så fall finns det mixins som utökar vad basvyer kan göra.
Djangos generiska vyer är uppbyggda av dessa basvyer och utvecklades som en genväg för vanliga användningsmönster som att visa detaljerna för ett objekt. De tar vissa vanliga idiom och mönster som finns i vyutveckling och abstraherar dem så att du snabbt kan skriva vanliga vyer av data utan att behöva upprepa dig själv.
De flesta generiska vyer kräver nyckeln queryset, som är en QuerySet-instans; se Göra förfrågningar för mer information om QuerySet-objekt.