Django: Importer une classe depuis une chaîne

Importez une classe à partir d'une chaîne Django.

Voici un exemple de Repository. Veuillez noter que le référentiel sert également de Réglage pour chaque APP.

Il y a des moments où vous souhaitez importer une classe à partir d'une chaîne dans Django. Dans ce cas, utilisez import_string ** dans ** django.utils.module_loading.

from django.utils.module_loading import import_string

cl = import_string('rest_framework.permissions.IsAdminUser')

utilisation

J'ai défini Permission dans settings.py comme un tableau de chaînes et je l'ai utilisé lorsque je voulais l'utiliser dans l'ensemble de vues RestFrameWork.

project/settings.py


SAMPLE_PERMISSIONS = [
    'rest_framework.permissions.IsAuthenticated',
    'sample_app.permissions.SamplePermission'
]

sample_app/views.py


from django.conf import settings
from rest_framework.viewsets import ModelViewSet
from django.utils.module_loading import import_string

from .serializers import SampleSerializer
from .models import Sample


class SampleViewSet(ModelViewSet):
    serializer_class = SampleSerializer
    queryset = Sample.objects.all()
    
    #Utilisé ici.
    # IsAuthenticated,SamplePermission s'applique aux autorisations.
    permission_classes = [
        import_string(permission_class) for permission_class in settings.SAMPLE_PERMISSIONS]

Vous pouvez l'utiliser comme ça. Je pense qu'il y a des moments où je l'utilise, donc pour référence,

Voici un exemple de Repository. Veuillez noter que le référentiel sert également de Réglage pour chaque APP.

Eh bien, ayez une bonne vie Django.

Recommended Posts

Django: Importer une classe depuis une chaîne
Générer une classe à partir d'une chaîne en Python
Créez un Dataframe pandas à partir d'une chaîne.
L'histoire du champ de modèle Django disparaissant de la classe
Python --Fonction d'appel dynamique à partir d'une chaîne
Créer une instance d'une classe prédéfinie à partir d'une chaîne en Python
# 5 [python3] Extraire des caractères d'une chaîne de caractères
Utiliser Django à partir d'un script Python local
Comment créer un objet fonction à partir d'une chaîne
DJango Memo: depuis le début (création d'une vue)
Créer un objet datetime à partir d'une chaîne en Python (Python 3.3)
Exécutez des fichiers Python à partir de HTML en utilisant Django
Créer un planning Django
Python depuis ou import
Django memo n ° 1 à partir de zéro
Remarque DJango: depuis le début (en utilisant une vue générique)
Remarque DJango: depuis le début (création d'une vue à partir d'un modèle)
Étapes de l'installation de Python 3 à la création d'une application Django
Faire du modèle une chaîne sur le modèle HTML Django
impossible d'importer django
Démarrer un projet Django
[Django] Donne à Form une valeur initiale dynamique de Model
Différent du type d'importation de python. Signification de depuis A import B
Créez une application de tableau d'affichage à partir de zéro avec Django. (Partie 2)
Créez une application de tableau d'affichage à partir de zéro avec Django. (Partie 3)
Python> Lire à partir d'une chaîne multiligne au lieu d'un fichier> io.StringIO ()
Django à partir de zéro (partie: 2)
Django à partir de zéro (partie: 1)
[Python] Utiliser une séquence de chaînes
Créer une page d'accueil avec django
Cette chaîne est-elle une fraction?
[Django] Créer un menu déroulant
depuis sklearn.datasets import fetch_mldata-> fetch_openml
Créer un écran de connexion Django
Utiliser le modèle django de l'interpréteur
Enregistrement du modèle depuis Django Bootstrap
Profil dans une méthode de la classe
Déployer Django + React à partir de zéro vers GKE (3) Créer un projet GCP
Essayez d'extraire une chaîne de caractères d'une image avec Python3
Comment obtenir une chaîne à partir d'un argument de ligne de commande en python
Création d'une classe pour télécharger et analyser XBRL à partir d'UFO Catcher
Sortie de la ligne contenant la chaîne de caractères spécifiée à partir du fichier texte
Comment extraire la chaîne de caractères souhaitée à partir d'une ligne 4 commandes
Une histoire d'une personne qui voulait importer django depuis le shell interactif de python et enregistrer des choses dans la base de données