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_byanges 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
pagei URLconf. Så här kan till exempel din URLconf se ut:path("objects/page<int:page>/", PaginatedView.as_view()),
Skicka sidnumret via parametern
pagequery-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
lastsom 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
pagemåste vara antingen ett giltigt sidnummer eller värdetlast; alla andra värden förpagekommer 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
Falseoch 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ärobjectsstår förFoodefault manager <default-managers>`.
- queryset¶
En
QuerySetsom representerar objekten. Om det anges ersätter värdet förquerysetdet 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 enpageparameter i frågesträngen (viarequest.GET) eller enpagevariabel 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
orderingsom standard.
- paginate_queryset(queryset, page_size)¶
Returnerar en 4-tupel som innehåller (
paginator,page,object_list,is_paginated).Konstruerad genom att paginera
queryseti sidor av storlekenpage_size. Om begäran innehåller ettpage-argument, antingen som ett URL-argument eller som ett GET-argument, kommerobject_listatt motsvara objekten från den sidan.
- get_paginate_by(queryset)¶
Returnerar antalet objekt som ska pagineras efter, eller
Nonefö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
Falseoch 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_nameinte är inställt, kommer kontextnamnet att varamodel_nameför den modell som queryset är sammansatt från, med postfixet'_listtillagt. Till exempel: skulle modellenArticleha 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_nameanges, 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 tillFalseom 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_listkan 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_namepå vyn (om det anges)<app_label>/<modell_namn><template_namn_suffix>.html