---
title: "Flera mixins för objekt"
version: 5.2
locale: sv
source: https://docs.djangoproject.com/sv/5.2/ref/class-based-views/mixins-multiple-object/
canonical: https://djangodocs.dev/sv/5.2/ref/class-based-views/mixins-multiple-object/
---
# Flera mixins för objekt

## `MultipleObjectMixin`

#### `class django.views.generic.list.MultipleObjectMixin`

En mixin som kan användas för att visa en lista med objekt.

Om `paginate_by` anges kommer Django att paginera de resultat som returneras av detta. Du kan ange sidnumret i URL:en på ett av två sätt:

- Använd parametern `page` i URLconf. Så här kan till exempel din URLconf se ut:

  ```
  path("objects/page<int:page>/", PaginatedView.as_view()),
  ```
- Skicka sidnumret via parametern `page` query-string. Till exempel: skulle en URL se ut så här:

  ```text
  /objects/?page=3
  ```

Dessa värden och listor är 1-baserade, inte 0-baserade, så den första sidan skulle representeras som sidan `1`.

Mer information om paginering finns i [Pagineringsdokumentation](/sv/5.2/topics/pagination/).

Som ett specialfall är det också tillåtet att använda `last` som värde för `page`:

```text
/objects/?page=last
```

Detta gör att du kan komma till den sista resultatsidan utan att först behöva avgöra hur många sidor det finns.

Observera att `page` *måste* vara antingen ett giltigt sidnummer eller värdet `last`; alla andra värden för `page` kommer att resultera i ett 404-fel.

**Förlänger**

- [`django.views.generic.base.ContextMixin`](/sv/5.2/ref/class-based-views/mixins-simple/#django.views.generic.base.ContextMixin)

**Metoder och egenskaper**

#### `allow_empty`

En boolean som anger om sidan ska visas om inga objekt finns tillgängliga. Om detta är `False` och inga objekt finns tillgängliga, kommer vyn att skicka en 404 istället för att visa en tom sida. Som standard är detta `True`.

#### `model`

Den modell som denna vy ska visa data för. Att ange `model = Foo` är i praktiken detsamma som att ange `queryset = Foo.objects.all()`, där `objects` står för `Foo` default manager \<default-managers\>\`.

#### `queryset`

En `QuerySet` som representerar objekten. Om det anges ersätter värdet för `queryset` det värde som anges för [`model`](#django.views.generic.list.MultipleObjectMixin.model).

> **Warning**
>
> `queryset` är ett klassattribut med ett *mutabelt* värde så försiktighet måste iakttas när det används direkt. Innan du använder det, anropa antingen dess [`all()`](/sv/5.2/ref/models/querysets/#django.db.models.query.QuerySet.all)-metod eller hämta det med [`get_queryset()`](#django.views.generic.list.MultipleObjectMixin.get_queryset) som tar hand om kloningen bakom kulisserna.

#### `ordering`

En sträng eller en lista med strängar som anger den ordning som ska tillämpas på `queryset`. Giltiga värden är desamma som för [`order_by()`](/sv/5.2/ref/models/querysets/#django.db.models.query.QuerySet.order_by).

#### `paginate_by`

Ett heltal som anger hur många objekt som ska visas per sida. Om detta anges kommer vyn att paginera objekt med `paginate_by`-objekt per sida. Vyn förväntar sig antingen en `page` parameter i frågesträngen (via `request.GET`) eller en `page` variabel som anges i URLconf.

#### `paginate_orphans`

Ett heltal som anger antalet ”overflow”-objekt som den sista sidan kan innehålla. Detta utökar [`paginate_by`](#django.views.generic.list.MultipleObjectMixin.paginate_by)-gränsen på den sista sidan med upp till `paginate_orphans`, för att förhindra att den sista sidan har ett mycket litet antal objekt.

#### `page_kwarg`

En sträng som anger det namn som ska användas för sidparametern. Vyn förväntar sig att denna parameter är tillgänglig antingen som en parameter i en frågesträng (via `request.GET`) eller som en kwarg-variabel som anges i URLconf. Standardvärdet är `page`.

#### `paginator_class`

Den paginatorklass som ska användas för paginering. Som standard används [`django.core.paginator.Paginator`](/sv/5.2/ref/paginator/#django.core.paginator.Paginator). Om den anpassade paginatorklassen inte har samma konstruktörsgränssnitt som [`django.core.paginator.Paginator`](/sv/5.2/ref/paginator/#django.core.paginator.Paginator), måste du också tillhandahålla en implementering för [`get_paginator()`](#django.views.generic.list.MultipleObjectMixin.get_paginator).

#### `context_object_name`

Anger namnet på den variabel som ska användas i sammanhanget.

#### `get_queryset()`

Hämta listan med objekt för den här vyn. Detta måste vara en iterabel och kan vara en queryset (i vilken queryset-specifikt beteende kommer att aktiveras).

#### `get_ordering()`

Returnerar en sträng (eller en iterabel av strängar) som definierar den ordning som ska tillämpas på `queryset`.

Returnerar [`ordering`](#django.views.generic.list.MultipleObjectMixin.ordering) som standard.

#### `paginate_queryset(queryset, page_size)`

Returnerar en 4-tupel som innehåller (`paginator`, `page`, `object_list`, `is_paginated`).

Konstruerad genom att paginera `queryset` i sidor av storleken `page_size`. Om begäran innehåller ett `page`-argument, antingen som ett URL-argument eller som ett GET-argument, kommer `object_list` att motsvara objekten från den sidan.

#### `get_paginate_by(queryset)`

Returnerar antalet objekt som ska pagineras efter, eller `None` för ingen paginering. Som standard returnerar detta värdet för [`paginate_by`](#django.views.generic.list.MultipleObjectMixin.paginate_by).

#### `get_paginator(queryset, per_page, orphans=0, allow_empty_first_page=True)`

Returnerar en instans av den paginator som ska användas för den här vyn. Som standard instansieras en instans av [`paginator_class`](#django.views.generic.list.MultipleObjectMixin.paginator_class).

#### `get_paginate_orphans()`

Ett heltal som anger antalet ”overflow”-objekt som den sista sidan kan innehålla. Som standard returnerar detta värdet för [`paginate_orphans`](#django.views.generic.list.MultipleObjectMixin.paginate_orphans).

#### `get_allow_empty()`

Returnerar en boolean som anger om sidan ska visas om inga objekt finns tillgängliga. Om denna metod returnerar `False` och inga objekt finns tillgängliga, kommer vyn att skicka en 404 istället för att visa en tom sida. Som standard är detta `True`.

#### `get_context_object_name(object_list)`

Returnerar namnet på den kontextvariabel som kommer att användas för att innehålla listan över data som denna vy manipulerar. Om `object_list` är en queryset av Django-objekt och [`context_object_name`](#django.views.generic.list.MultipleObjectMixin.context_object_name) inte är inställt, kommer kontextnamnet att vara `model_name` för den modell som queryset är sammansatt från, med postfixet `'_list` tillagt. Till exempel: skulle modellen `Article` ha ett kontextobjekt med namnet `article_list`.

#### `get_context_data(**kwargs)`

Returnerar kontextdata för visning av listan med objekt.

**Kontext**

- `object_list`: Listan över objekt som visas i den här vyn. Om `context_object_name` anges, kommer den variabeln också att ställas in i kontexten, med samma värde som `object_list`.
- `is_paginated`: En boolean som anger om resultaten är paginerade. Specifikt sätts detta till `False` om ingen sidstorlek har angetts, eller om de tillgängliga objekten inte sträcker sig över flera sidor.
- `paginator`: En instans av [`django.core.paginator.Paginator`](/sv/5.2/ref/paginator/#django.core.paginator.Paginator). Om sidan inte är paginerad kommer denna kontextvariabel att vara `None`.
- `page_obj`: En instans av [`django.core.paginator.Page`](/sv/5.2/ref/paginator/#django.core.paginator.Page). Om sidan inte är paginerad kommer denna kontextvariabel att vara `None`.

## `MultipleObjectTemplateResponseMixin`

#### `class django.views.generic.list.MultipleObjectTemplateResponseMixin`

En mixin-klass som utför mallbaserad svarsrendering för vyer som arbetar med en lista över objektinstanser. Kräver att vyn som den mixas med tillhandahåller `self.object_list`, listan över objektinstanser som vyn arbetar med. `self.object_list` kan vara, men behöver inte vara, en [`QuerySet`](/sv/5.2/ref/models/querysets/#django.db.models.query.QuerySet).

**Förlänger**

- [`TemplateResponseMixin`](/sv/5.2/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin)

**Metoder och egenskaper**

#### `template_name_suffix`

Suffixet som ska läggas till det autogenererade kandidatmallnamnet. Standardsuffixet är `_list`.

#### `get_template_names()`

Returnerar en lista med namn på kandidatmallar. Returnerar följande lista:

- värdet av `template_name` på vyn (om det anges)
- `<app_label>/<modell_namn><template_namn_suffix>.html`
