arrow for title

Come scoprire quali variabili sono disponibili in un template Django

03 Lug, 2019 Sviluppo
Come scoprire quali variabili sono disponibili in un template Django

Nella nostra sede di Roma capita spesso di lavorare in team a un progetto Django e di avere la necessità di coordinare il lavoro del backend col frontend. 

Uno dei problemi che spesso si presentano riguarda la possibilità di scoprire quali variabili sono disponibili nel template. Lo sviluppatore frontend, a volte, si trova ad essere dipendente dallo sviluppatore backend, che può comunicargli quali parametri sta inviando nel context.

Per fortuna Django viene incontro a questa esigenza in un modo molto semplice.

Ecco come fare

Immaginiamo di avere un template dentro il quale vogliamo scoprire che variabili abbiamo a disposizione. 

Ad esempio potremmo scrivere quanto segue:

index.hml

{{ view.get_context_data.view }}

Questo è possibile solo grazie al ContextMixin definito a questo link. Questo mixin viene usato praticamente da tutte le View di Django e, come si può notare, viene aggiunto al context data anche il riferimento alla view chiamante.


class ContextMixin:
    """A default context mixin that passes the keyword arguments received by get_context_data() as the template context."""
    extra_context = None

    def get_context_data(self, **kwargs):
        kwargs.setdefault('view', self)
        if self.extra_context is not None:
            kwargs.update(self.extra_context)
        return kwargs

Per cui, nel template quello che otterremo con la chiamata {{ view.get_context_data }} sarà qualcosa di questo tipo:

{'foo': 'bar', 'example_variable': True, 'view': <web.views.HomeView object at 0x1105a9f98>}

Niente di più facile per semplificare la vita agli sviluppatori frontend.

Si può ispezionare qualsiasi cosa, incluso il template, come si vede dall'immagine seguente:

template django variabili

Noi utilizziamo questo processo e questi strumenti in tutti i progetti che inizializziamo usando django-uwisgi-template: un boilerplate molto leggero e semplice per l'avvio rapido di progetti Django.


 

Raffaele Colace

Blog

Potrebbe interessarti anche:

contattaci

Hai una buona idea ma non sai che pesci prendere?

Parlaci del tuo progetto