Django - Risoluzione di visualizzazioni e URL

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.
Risoluzione delle visualizzazioni negli URL
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.
Vediamo in seguito come lo traduciamo in un codice in Django, per questo includeremo l'uso di decoratore in un modello:

Come vediamo nel codice nell'immagine, chiamiamo la vista libreria_articolo dettaglio, il secondo valore lo passiamo vuoto poiché non è necessario e nel terzo valore indichiamo che il object_id deve essere legato a self.id cioè all'id del modello stesso, quindi nell'ultima riga utilizziamo il decoratore.Ti è piaciuto e hai aiutato questo Tutorial?Puoi premiare l'autore premendo questo pulsante per dargli un punto positivo

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave