Sommario
Nel Django le classi sono oggetti Pitone, Come qualsiasi altro oggetto, possiamo ottenere molti effetti interessanti al momento dell'esecuzione del programma, grazie al fatto che disponiamo di tutte le Funzioni e metodi Python disponibile in Django possiamo costruire classi in grado di generare classi dinamiche.La creazione di una classe dinamica può fornirci alcuni vantaggi, come la creazione di un modello da una classe, generando così nuove funzionalità.
Come funzionano le classi nel Framework?
Per arrivare al punto di generare modelli dinamici, dobbiamo prima assicurarci di capire come funzionano le classi in Python.
Sappiamo che le classi in Pitone sono oggetti che possono essere creati in fase di esecuzione utilizzando il costruttore interno genere () e ricevere i dettagli su come dovrebbero essere definiti.
Modelli in Django
Poiché sappiamo come funzionano le classi in Python, dobbiamo sottolineare che il modelli a Django sono classi Python standard, solo che sono dichiarate nel modo in cui Django puoi usarli e che sono classi standard ci permette di generare modelli in fase di runtime.
Prima implementazione
Vediamo la seguente immagine con un piccolo codice:
Qui vediamo come il quadro Django Importiamo il modulo dei modelli, quindi creiamo un metodo per creare i modelli con il tipo di costruttore () che avevamo menzionato nel punto precedente del tutorial.
Tuttavia questo approccio semplicistico che abbiamo applicato ovviamente non funzionerà, il problema è che Django si aspetta che un dizionario includa un modulo con il suo codice.
Vediamo ora un codice con cui risolviamo questo problema:
def create_model (nome, percorso_modulo): tipo restituito (nome, (modelli.Modello,), {'__module__': percorso_modulo})
Con questa implementazione abbiamo eliminato il primo errore che usciva con il primo esempio.
Aggiungi opzioni di configurazione
Stiamo per completare il nostro codice per la generazione di modelli dinamici, inclusa la possibilità di includere le opzioni di configurazione django, per questo useremo il Meta classe e andremo a sovrascrivere la sua operazione in modo che la nostra nuova implementazione ci permetta di ridefinire il modo in cui gestiremo le opzioni, vediamo nell'immagine seguente il codice già completato per raggiungere questo obiettivo:
In questo codice abbiamo chiaramente modificato alcuni aspetti del nostro codice iniziale, iniziamo definendo che il percorso del modulo è: Django.db.models, da qui andremo a prendere le definizioni iniziali, una volta che questo accade creiamo un dizionario dove lo assegniamo a __modulo__ il valore del percorso che abbiamo definito.
Quindi rielaboriamo la classe Meta, con questa salviamo i possibili problemi che avevamo discusso all'inizio di questo punto, finalmente possiamo chiamare il nostro tipo () metodo, passando i dati necessari e non errore.
Con questa nuova conoscenza che abbiamo generato, abbiamo già una solida base con cui possiamo interagire con il codice di Django in modo più sicuro, che ci mette in una posizione vantaggiosa per lo sviluppo delle nostre applicazioni e la generazione di modelli dinamicamente nel tempo di esecuzione del nostro programma.Ti è piaciuto e hai aiutato questo Tutorial?Puoi premiare l'autore premendo questo pulsante per dargli un punto positivo