J'utilise barre d'outils de débogage avec Django et souhaitez l'ajouter au projet si deux conditions sont vraies:
settings.DEBUG
est True
Ce n'est pas difficile de faire le premier
# adding Django debug toolbar
if DEBUG:
MIDDLEWARE_CLASSES += 'debug_toolbar.middleware.DebugToolbarMiddleware',
INSTALLED_APPS += 'debug_toolbar',
Mais comment puis-je vérifier si le module existe?
J'ai trouvé cette solution:
try:
import debug_toolbar
except ImportError:
pass
Mais étant donné que l'importation se produit ailleurs à Django, j'ai besoin de la logique si/sinon pour vérifier si le module existe, donc je peux vérifier dans des paramètres.py
def module_exists(module_name):
# ??????
# adding Django debug toolbar
if DEBUG and module_exists('debug_toolbar'):
MIDDLEWARE_CLASSES += 'debug_toolbar.middleware.DebugToolbarMiddleware',
INSTALLED_APPS += 'debug_toolbar',
Y a-t-il un moyen de le faire?
Vous pouvez utiliser la même logique à l'intérieur de votre fonction:
def module_exists(module_name):
try:
__import__(module_name)
except ImportError:
return False
else:
return True
Il n'y a pas de pénalité de performance à cette solution car les modules ne sont importés qu'une seule fois.