Sommario
Le viste e gli URL non vengono richiamati direttamente dal nostro codice, questo è dovuto alla natura dinamica delle applicazioni, il motivo è che più generico è il form, è possibile utilizzarlo in molti più casi.Quindi il modo corretto è utilizzare le varie funzioni che ci permettono di risolvere i percorsi sia da una vista a un URL che da un URL a una vista, per questo abbiamo degli strumenti chiamati decoratori.
Risoluzione da URL a Visualizzazioni
Il visualizzazioni, dalle pratiche consigliate non vengono richiamati direttamente dal nostro codice, ma piuttosto vengono invocati tramite chiamate nell'URL, queste chiamate vengono elaborate e servite dal sistema di dispacciamento di Django.
Uno degli aspetti chiave a questo punto è che Django usa espressioni regolari per fare la costruzione dell'URL che chiamerà la nostra vista, grazie a questo possiamo passare diversi parametri e quindi aggiungere funzionalità alle nostre viste.
UN modello di URL contiene i seguenti aspetti:
- L'espressione regolare che ci consente di acquisire l'URL che abbiamo inserito come pattern.
- Un riferimento alla vista che verrà chiamata.
- Un dizionario di argomenti che verranno passati ogni volta che viene chiamata la vista.
- Un nome che verrà utilizzato come riferimento per poter effettuare chiamate inverse della vista.
All'interno delle nostre applicazioni molte volte dobbiamo chiamare altre viste o risorse tramite URL, tuttavia copiare o codificare rigidamente tali URL non è una buona pratica, poiché se ad esempio c'è un cambiamento nel nostro programma, immagina di dover cambiare 20 o 30 riferimenti a un URL, per questo possiamo usare diversi metodi per fare in modo che la nostra applicazione cerchi l'URL senza doverlo copiare, uno di questi metodi è usare il Permalink decoratore che possiamo vedere nel prossimo punto.
Il decoratore di Permalink
All'interno di ogni modello abbiamo accesso al metodo get_absolute_url () che ci consente di accedere direttamente a una pagina di dettaglio di un oggetto senza dover sapere come deve essere costruito l'URL, tuttavia questo metodo non ci consente di passare argomenti poiché è solo un collegamento restituito.
Per estendere la funzionalità abbiamo la possibilità di utilizzare e restituire parametri come se provenissero dal metodo get_absolute_url().
Per fare ciò, è necessario seguire la seguente struttura:
- Il primo valore è il nome della vista da chiamare, se la vista ha un nome deve essere usata, altrimenti possiamo usare il percorso di importazione di vista. Questo valore è sempre obbligatorio.
- Il secondo valore È una tupla di argomenti posizionali che dovrebbero essere applicati alla vista, in caso contrario, possiamo lasciare vuoto questo parametro.
- Il terzo valore è un dizionario che unisce argomenti con i rispettivi valori, questi valori devono essere passati alla vista, nel caso la vista non riceva nulla possiamo escludere questo valore dalla chiamata.