Mixins för enskilda objektLink to this heading

SingleObjectMixinLink to this heading

class django.views.generic.detail.SingleObjectMixinLink to this definition

Tillhandahåller en mekanism för att leta upp ett objekt som är associerat med den aktuella HTTP-begäran.

Metoder och egenskaper

modelLink to this definition

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>`.

querysetLink to this definition

En QuerySet som representerar objekten. Om det anges ersätter värdet för queryset det värde som anges för model.

slug_fieldLink to this definition

Namnet på det fält i modellen som innehåller sluggen. Som standard är slug_field 'slug'.

slug_url_kwargLink to this definition

Namnet på URLConf-nyckelordsargumentet som innehåller sluggen. Som standard är slug_url_kwarg 'slug'.

pk_url_kwargLink to this definition

Namnet på URLConf-nyckelordsargumentet som innehåller den primära nyckeln. Som standard är pk_url_kwarg 'pk.

context_object_nameLink to this definition

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

query_pk_and_slugLink to this definition

If True, causes get_object() to perform its lookup using both the primary key and the slug. Defaults to False.

Detta attribut kan bidra till att mildra attacker med ”osäker direkt objektreferens”. När applikationer ger åtkomst till enskilda objekt med en sekventiell primärnyckel kan en angripare med brutalt våld gissa sig till alla URL:er och därigenom få en lista över alla objekt i applikationen. Om användare med åtkomst till enskilda objekt ska hindras från att få fram den här listan, kan inställningen query_pk_and_slug till True hjälpa till att förhindra gissning av webbadresser eftersom varje webbadress kräver två korrekta, icke sekventiella argument. Att använda en unik slug kan tjäna samma syfte, men det här schemat tillåter dig att ha icke-unika slugs.

get_object(queryset=None)Link to this definition

Returnerar det enskilda objekt som denna vy kommer att visa. Om queryset anges kommer denna queryset att användas som källa för objekten; annars kommer get_queryset() att användas. get_object() letar efter ett pk_url_kwarg-argument i argumenten till vyn; om detta argument hittas utför denna metod en primärnyckelbaserad sökning med hjälp av detta värde. Om detta argument inte hittas letar den efter ett slug_url_kwarg-argument och utför en slug-uppslagning med hjälp av slug_field.

När query_pk_and_slug är True kommer get_object() att utföra sin sökning med hjälp av både primärnyckeln och sluggen.

get_queryset()Link to this definition

Returnerar den queryset som kommer att användas för att hämta objektet som denna vy kommer att visa. Som standard returnerar get_queryset() värdet på attributet queryset om det är inställt, annars konstruerar det en QuerySet genom att anropa metoden all() på attributet model standardhanterare.

get_context_object_name(obj)Link to this definition

Returnerar det kontextvariabelnamn som kommer att användas för att innehålla de data som denna vy manipulerar. Om context_object_name inte anges kommer kontextnamnet att konstrueras från model_name för den modell som frågeuppsättningen är sammansatt av. Till exempel: skulle modellen Article ha ett kontextobjekt med namnet 'article'.

get_context_data(**kwargs)Link to this definition

Returnerar kontextdata för visning av objektet.

Basimplementeringen av denna metod kräver att attributet self.object ställs in av vyn (även om det är None). Var noga med att göra detta om du använder denna mixin utan en av de inbyggda vyerna som gör det.

Den returnerar en ordbok med detta innehåll:

  • object: Det objekt som denna vy visar (self.object).

  • context_object_name: self.object kommer också att lagras under det namn som returneras av get_context_object_name(), vilket som standard är den gemena versionen av modellnamnet.

get_slug_field()Link to this definition

Returnerar namnet på ett slug-fält som ska användas för att söka efter slug. Som standard returneras värdet för slug_field.

SingleObjectTemplateResponseMixinLink to this heading

class django.views.generic.detail.SingleObjectTemplateResponseMixinLink to this definition

En mixin-klass som utför mallbaserad svarsrendering för vyer som arbetar med en enda objektinstans. Kräver att vyn som den blandas med tillhandahåller self.object, den objektinstans som vyn arbetar med. self.object kommer vanligtvis att vara, men behöver inte vara, en instans av en Django-modell. Det kan vara None om vyn håller på att konstruera en ny instans.

Förlänger

Metoder och egenskaper

template_name_fieldLink to this definition

Det fält i den aktuella objektinstansen som kan användas för att bestämma namnet på en kandidatmall. Om antingen template_name_field självt eller värdet på template_name_field på den aktuella objektinstansen är None, kommer objektet inte att användas för ett kandidatmallnamn.

template_name_suffixLink to this definition

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

get_template_names()Link to this definition

Returnerar en lista med kandidatmallnamn. Returnerar en lista som innehåller template_name, om värdet är inställt på det. Annars returneras en lista som innehåller:

  • innehållet i fältet template_name_field i den objektinstans som vyn arbetar med (om tillgängligt)

  • <app_label>/<modell_namn><template_namn_suffix>.html