# Django 5.2.8 documentation

# Inbyggt API för klassbaserade vyer

API-referens för klassbaserade vyer. För introduktionsmaterial, se Klassbaserade åsikter ämnesguide.

- Utsikt över basen
  - `View`
  - `TemplateView`
  - `RedirectView`
- Generiska displayvyer
  - `DetailView`
  - `ListView`
- Generiska redigeringsvyer
  - `FormView`
  - `CreateView`
  - `UpdateView`
  - `DeleteView`
- Generisk datumvisning
  - `ArchiveIndexView`
  - `ÅrArkivView`
  - `MonthArchiveView`
  - `WeekArchiveView`
  - `DayArchiveView`
  - `TodayArchiveView`
  - `DateDetailView`
- Klassbaserade vy-mixins
  - Enkla mixins
    - `KontextMixin`
    - `TemplateResponseMixin`
  - Mixins för enskilda objekt
    - `SingleObjectMixin`
    - `SingleObjectTemplateResponseMixin`
  - Flera mixins för objekt
    - `MultipleObjectMixin`
    - `MultipleObjectTemplateResponseMixin`
  - Redigering av mixins
    - `FormMixin`
    - `ModelFormMixin`
    - `ProcessFormView`
    - `DeletionMixin`
  - Datumbaserade mixins
    - `ÅrMixin`
    - `MånadMixin`
    - `DayMixin`
    - `WeekMixin`
    - `DatumMixin`
    - `BaseDateListView`
- Klassbaserade generiska vyer - tillplattat index
  - Enkla generiska vyer
    - `View`
    - `TemplateView`
    - `RedirectView`
  - Detaljerade vyer
    - `DetailView`
  - Visning av lista
    - `ListView`
  - Redigera vyer
    - `FormView`
    - `CreateView`
    - `UpdateView`
    - `DeleteView`
  - Datumbaserade vyer
    - `ArchiveIndexView`
    - `ÅrArkivView`
    - `MonthArchiveView`
    - `WeekArchiveView`
    - `DayArchiveView`
    - `TodayArchiveView`
    - `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).

A class-based view is deployed into a URL pattern using the `as_view()` classmethod:

    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.

Arguments passed into `as_view()` will be assigned onto the instance that is used to service a request. Using the previous example, this means that every request on `MyView` is able to use `self.size`. Arguments must correspond to attributes that already exist on the class (return `True` on a `hasattr` check).

## 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 för mer information om `QuerySet`-objekt.