---
title: "Inbyggt API för klassbaserade vyer"
version: 5.2
locale: sv
source: https://docs.djangoproject.com/sv/5.2/ref/class-based-views/
canonical: https://djangodocs.dev/sv/5.2/ref/class-based-views/
---
# Inbyggt API för klassbaserade vyer

API-referens för klassbaserade vyer. För introduktionsmaterial, se [Klassbaserade åsikter](/sv/5.2/topics/class-based-views/) ämnesguide.

- [Utsikt över basen](/sv/5.2/ref/class-based-views/base/)

  - [`View`](/sv/5.2/ref/class-based-views/base/#view)
  - [`TemplateView`](/sv/5.2/ref/class-based-views/base/#templateview)
  - [`RedirectView`](/sv/5.2/ref/class-based-views/base/#redirectview)
- [Generiska displayvyer](/sv/5.2/ref/class-based-views/generic-display/)

  - [`DetailView`](/sv/5.2/ref/class-based-views/generic-display/#detailview)
  - [`ListView`](/sv/5.2/ref/class-based-views/generic-display/#listview)
- [Generiska redigeringsvyer](/sv/5.2/ref/class-based-views/generic-editing/)

  - [`FormView`](/sv/5.2/ref/class-based-views/generic-editing/#formview)
  - [`CreateView`](/sv/5.2/ref/class-based-views/generic-editing/#createview)
  - [`UpdateView`](/sv/5.2/ref/class-based-views/generic-editing/#updateview)
  - [`DeleteView`](/sv/5.2/ref/class-based-views/generic-editing/#deleteview)
- [Generisk datumvisning](/sv/5.2/ref/class-based-views/generic-date-based/)

  - [`ArchiveIndexView`](/sv/5.2/ref/class-based-views/generic-date-based/#archiveindexview)
  - [`ÅrArkivView`](/sv/5.2/ref/class-based-views/generic-date-based/#yeararchiveview)
  - [`MonthArchiveView`](/sv/5.2/ref/class-based-views/generic-date-based/#montharchiveview)
  - [`WeekArchiveView`](/sv/5.2/ref/class-based-views/generic-date-based/#weekarchiveview)
  - [`DayArchiveView`](/sv/5.2/ref/class-based-views/generic-date-based/#dayarchiveview)
  - [`TodayArchiveView`](/sv/5.2/ref/class-based-views/generic-date-based/#todayarchiveview)
  - [`DateDetailView`](/sv/5.2/ref/class-based-views/generic-date-based/#datedetailview)
- [Klassbaserade vy-mixins](/sv/5.2/ref/class-based-views/mixins/)

  - [Enkla mixins](/sv/5.2/ref/class-based-views/mixins-simple/)

    - [`KontextMixin`](/sv/5.2/ref/class-based-views/mixins-simple/#contextmixin)
    - [`TemplateResponseMixin`](/sv/5.2/ref/class-based-views/mixins-simple/#templateresponsemixin)
  - [Mixins för enskilda objekt](/sv/5.2/ref/class-based-views/mixins-single-object/)

    - [`SingleObjectMixin`](/sv/5.2/ref/class-based-views/mixins-single-object/#singleobjectmixin)
    - [`SingleObjectTemplateResponseMixin`](/sv/5.2/ref/class-based-views/mixins-single-object/#singleobjecttemplateresponsemixin)
  - [Flera mixins för objekt](/sv/5.2/ref/class-based-views/mixins-multiple-object/)

    - [`MultipleObjectMixin`](/sv/5.2/ref/class-based-views/mixins-multiple-object/#multipleobjectmixin)
    - [`MultipleObjectTemplateResponseMixin`](/sv/5.2/ref/class-based-views/mixins-multiple-object/#multipleobjecttemplateresponsemixin)
  - [Redigering av mixins](/sv/5.2/ref/class-based-views/mixins-editing/)

    - [`FormMixin`](/sv/5.2/ref/class-based-views/mixins-editing/#formmixin)
    - [`ModelFormMixin`](/sv/5.2/ref/class-based-views/mixins-editing/#modelformmixin)
    - [`ProcessFormView`](/sv/5.2/ref/class-based-views/mixins-editing/#processformview)
    - [`DeletionMixin`](/sv/5.2/ref/class-based-views/mixins-editing/#deletionmixin)
  - [Datumbaserade mixins](/sv/5.2/ref/class-based-views/mixins-date-based/)

    - [`ÅrMixin`](/sv/5.2/ref/class-based-views/mixins-date-based/#yearmixin)
    - [`MånadMixin`](/sv/5.2/ref/class-based-views/mixins-date-based/#monthmixin)
    - [`DayMixin`](/sv/5.2/ref/class-based-views/mixins-date-based/#daymixin)
    - [`WeekMixin`](/sv/5.2/ref/class-based-views/mixins-date-based/#weekmixin)
    - [`DatumMixin`](/sv/5.2/ref/class-based-views/mixins-date-based/#datemixin)
    - [`BaseDateListView`](/sv/5.2/ref/class-based-views/mixins-date-based/#basedatelistview)
- [Klassbaserade generiska vyer - tillplattat index](/sv/5.2/ref/class-based-views/flattened-index/)

  - [Enkla generiska vyer](/sv/5.2/ref/class-based-views/flattened-index/#simple-generic-views)

    - [`View`](/sv/5.2/ref/class-based-views/flattened-index/#view)
    - [`TemplateView`](/sv/5.2/ref/class-based-views/flattened-index/#templateview)
    - [`RedirectView`](/sv/5.2/ref/class-based-views/flattened-index/#redirectview)
  - [Detaljerade vyer](/sv/5.2/ref/class-based-views/flattened-index/#detail-views)

    - [`DetailView`](/sv/5.2/ref/class-based-views/flattened-index/#detailview)
  - [Visning av lista](/sv/5.2/ref/class-based-views/flattened-index/#list-views)

    - [`ListView`](/sv/5.2/ref/class-based-views/flattened-index/#listview)
  - [Redigera vyer](/sv/5.2/ref/class-based-views/flattened-index/#editing-views)

    - [`FormView`](/sv/5.2/ref/class-based-views/flattened-index/#formview)
    - [`CreateView`](/sv/5.2/ref/class-based-views/flattened-index/#createview)
    - [`UpdateView`](/sv/5.2/ref/class-based-views/flattened-index/#updateview)
    - [`DeleteView`](/sv/5.2/ref/class-based-views/flattened-index/#deleteview)
  - [Datumbaserade vyer](/sv/5.2/ref/class-based-views/flattened-index/#date-based-views)

    - [`ArchiveIndexView`](/sv/5.2/ref/class-based-views/flattened-index/#archiveindexview)
    - [`ÅrArkivView`](/sv/5.2/ref/class-based-views/flattened-index/#yeararchiveview)
    - [`MonthArchiveView`](/sv/5.2/ref/class-based-views/flattened-index/#montharchiveview)
    - [`WeekArchiveView`](/sv/5.2/ref/class-based-views/flattened-index/#weekarchiveview)
    - [`DayArchiveView`](/sv/5.2/ref/class-based-views/flattened-index/#dayarchiveview)
    - [`TodayArchiveView`](/sv/5.2/ref/class-based-views/flattened-index/#todayarchiveview)
    - [`DateDetailView`](/sv/5.2/ref/class-based-views/flattened-index/#datedetailview)

## Specifikation

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()`](/sv/5.2/ref/class-based-views/base/#django.views.generic.base.View.as_view) klassmetod:

```
urlpatterns = [
    path("view/", MyView.as_view(size=42)),
]
```

> **Trådsäkerhet med utsiktsargument**
>
> Argument som skickas till en vy delas mellan alla instanser av en vy. Detta innebär att du inte bör använda en lista, en ordbok eller något annat föränderligt objekt som argument till en vy. Om du gör det och det delade objektet ändras, kan de åtgärder som vidtas av en användare som besöker din vy ha en effekt på efterföljande användare som besöker samma vy.

Argument som skickas till [`as_view()`](/sv/5.2/ref/class-based-views/base/#django.views.generic.base.View.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 vyer

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](/sv/5.2/topics/db/queries/) för mer information om `QuerySet`-objekt.
