Enkla mixins

KontextMixin

class django.views.generic.base.ContextMixin

Attribut

extra_context

En ordbok som ska inkluderas i sammanhanget. Detta är ett bekvämt sätt att ange en kontext i as_view(). Exempel på användning:

from django.views.generic import TemplateView

TemplateView.as_view(extra_context={"title": "Custom Title"})

Metoder

get_context_data(**kwargs)

Returnerar en ordbok som representerar mallkontexten. De nyckelordsargument som anges kommer att utgöra den returnerade kontexten. Exempel på användning:

def get_context_data(self, **kwargs):
    context = super().get_context_data(**kwargs)
    context["number"] = random.randrange(1, 100)
    return context

Mallkontexten för alla klassbaserade generiska vyer innehåller en variabel view som pekar på instansen View.

Använd alters_data där det är lämpligt

Note that having the view instance in the template context may expose potentially hazardous methods to template authors. To prevent methods like this from being called in the template, set alters_data=True on those methods. For more information, read the documentation on rendering a template context.

TemplateResponseMixin

class django.views.generic.base.TemplateResponseMixin

Tillhandahåller en mekanism för att konstruera en TemplateResponse, givet lämpligt sammanhang. Den mall som ska användas är konfigurerbar och kan anpassas ytterligare av underklasser.

Attribut

template_name

Det fullständiga namnet på en mall som ska användas, definierat av en sträng. Om du inte definierar ett template_name kommer ett undantag av django.core.exceptions.ImproperlyConfigured` att uppstå.

template_engine

NAME för en mallmotor som ska användas för att ladda mallen. template_engine skickas som using nyckelordsargument till response_class. Standard är None, vilket säger till Django att söka efter mallen i alla konfigurerade motorer.

response_class

Den svarsklass som ska returneras av metoden render_to_response. Standard är TemplateResponse. Mallen och kontexten för TemplateResponse-instanser kan ändras senare (t.ex. i template response middleware).

Om du behöver anpassad laddning av mallar eller anpassad instansiering av kontextobjekt skapar du en subklass av TemplateResponse och tilldelar den till response_class.

content_type

Den innehållstyp som ska användas för svaret. content_type skickas som ett nyckelordsargument till response_class. Standard är None - vilket innebär att Django använder 'text/html.

Metoder

render_to_response(context, **response_kwargs)

Returnerar en instans av self.response_class.

Om några nyckelordsargument anges kommer de att skickas till konstruktören för svarsklassen.

Calls get_template_names() to obtain the list of template names that will be searched looking for an existent template.

get_template_names()

Returnerar en lista med mallnamn att söka efter vid rendering av mallen. Den första mallen som hittas kommer att användas.

Standardimplementeringen returnerar en lista som innehåller template_name (om det anges).