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:/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.
Som ett specialfall är det också tillåtet att använda
last
som värde förpage
:/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ärdetlast
; alla andra värden förpage
kommer att resultera i ett 404-fel.Förlänger
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 dettaTrue
.
- model¶
Den modell som denna vy ska visa data för. Att ange
model = Foo
är i praktiken detsamma som att angequeryset = Foo.objects.all()
, därobjects
står förFoo
default manager <default-managers>`.
- queryset¶
En
QuerySet
som representerar objekten. Om det anges ersätter värdet förqueryset
det värde som anges förmodel
.Varning
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 dessall()
-metod eller hämta det medget_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örorder_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 enpage
parameter i frågesträngen (viarequest.GET
) eller enpage
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
-gränsen på den sista sidan med upp tillpaginate_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 ärpage
.
- paginator_class¶
Den paginatorklass som ska användas för paginering. Som standard används
django.core.paginator.Paginator
. Om den anpassade paginatorklassen inte har samma konstruktörsgränssnitt somdjango.core.paginator.Paginator
, måste du också tillhandahålla en implementering förget_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
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 storlekenpage_size
. Om begäran innehåller ettpage
-argument, antingen som ett URL-argument eller som ett GET-argument, kommerobject_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örpaginate_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
.
- 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
.
- 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 dettaTrue
.
- 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 ochcontext_object_name
inte är inställt, kommer kontextnamnet att varamodel_name
för den modell som queryset är sammansatt från, med postfixet'_list
tillagt. Till exempel: skulle modellenArticle
ha ett kontextobjekt med namnetarticle_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. Omcontext_object_name
anges, kommer den variabeln också att ställas in i kontexten, med samma värde somobject_list
.is_paginated
: En boolean som anger om resultaten är paginerade. Specifikt sätts detta tillFalse
om ingen sidstorlek har angetts, eller om de tillgängliga objekten inte sträcker sig över flera sidor.paginator
: En instans avdjango.core.paginator.Paginator
. Om sidan inte är paginerad kommer denna kontextvariabel att varaNone
.page_obj
: En instans avdjango.core.paginator.Page
. Om sidan inte är paginerad kommer denna kontextvariabel att varaNone
.
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, enQuerySet
.Förlänger
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`