Django - Modèles dynamiques

Table des matières
Dans Django les classes sont des objets Python, Comme tout autre objet, nous pouvons obtenir de nombreux effets intéressants au moment de l'exécution du programme, grâce au fait que nous avons tous les Fonctions et méthodes Python disponible dans Django, nous pouvons construire des classes qui peuvent générer des classes dynamiques.
La création d'une classe dynamique peut nous apporter certains avantages, comme la création d'un modèle à partir d'une classe, générant ainsi de nouvelles fonctionnalités.
Comment les classes fonctionnent-elles dans le framework ?
Pour arriver à générer des modèles dynamiques, nous devons d'abord nous assurer que nous comprenons le fonctionnement des classes en Python.
Nous savons que les classes de Python sont des objets qui peuvent être créés à l'exécution à l'aide du constructeur interne taper () et recevoir les détails sur la façon dont ils devraient être définis.
Modèles à Django
Puisque nous savons comment fonctionnent les classes en Python, nous devons souligner que le modèles à Django ce sont des classes Python standard, seulement elles sont déclarées de la manière Django vous pouvez les utiliser et qu'il s'agit de classes standard nous permet de générer des modèles à l'exécution.
Première mise en œuvre
Voyons l'image suivante avec un petit code :

On voit ici comment le Framework Django On importe le module models, puis on crée une méthode pour créer les modèles avec le type de constructeur () que nous avions évoqué au point précédent du tutoriel.
Cependant cette approche simpliste que nous avons appliquée ne va évidemment pas fonctionner, le problème est que Django s'attend à ce qu'un dictionnaire inclue un module avec son code.
Voyons maintenant un code avec lequel nous résolvons ce problème :
 def create_model (name, module_path): type de retour (name, (models.Model,), {'__module__': module_path}) 

Avec cette implémentation, nous avons éliminé la première erreur qui est sortie avec le premier exemple.
Ajouter des options de configuration
Nous allons compléter notre code pour générer des modèles dynamiques, y compris la possibilité d'inclure les options de configuration django, pour cela nous utiliserons le Méta-classe et nous allons écraser son fonctionnement pour que notre nouvelle implémentation nous permette de redéfinir la façon dont nous allons gérer les options, voyons dans l'image suivante le code déjà complété pour y parvenir :

Dans ce code nous avons clairement modifié certains aspects de notre code initial, nous commençons par définir que le chemin du module est : Django.db.models, à partir de là, nous allons obtenir les définitions initiales, une fois que cela se produit, nous créons un dictionnaire où nous l'attribuons à __module__ la valeur du chemin que nous avons défini.
Ensuite, nous retravaillons la classe Meta, avec cela nous sauvegardons les problèmes possibles que nous avions discutés au début de ce point, enfin nous pouvons appeler notre type () méthode, en passant les données nécessaires et non l'erreur.
Avec ces nouvelles connaissances que nous avons générées, nous disposons déjà d'une base solide avec laquelle nous pouvons interagir avec le code de Django de manière plus sécurisée, ce qui nous place dans une position avantageuse pour le développement de nos applications et la génération de modèles de manière dynamique dans le temps d'exécution de notre programme.Avez-vous aimé et aidé ce tutoriel ?Vous pouvez récompenser l'auteur en appuyant sur ce bouton pour lui donner un point positif
wave wave wave wave wave