Comment vérifier l'TEMPLATE_DEBUG drapeau dans un django template?
Savez-vous si il est possible de savoir à l'un de django template si le TEMPLATE_DEBUG drapeau est réglé?
Je tiens à désactiver mon google analytics script quand je suis en cours d'exécution de mon django app sur ma machine de développement. Quelque chose comme un {% if debug %} balise de modèle, ce serait parfait. Malheureusement, je n'ai pas trouver quelque chose comme ça dans la documentation.
Pour sûr, je peux ajouter cet indicateur pour le contexte, mais je voudrais savoir si il y a une meilleure façon de le faire.
- Ci-dessous réponse à l'amortissement. Maintenant, avec django, vous pouvez faire beaucoup plus simple: stackoverflow.com/questions/25783459/...
Vous devez vous connecter pour publier un commentaire.
En supposant que vous n'avez pas défini de
TEMPLATE_CONTEXT_PROCESSORS
à une autre valeur danssettings.py
, Django va automatiquement charger ledebug
contexte de préprocesseur (comme indiqué ici). Cela signifie que vous aurez accès à une variable appeléedebug
dans vos templates sisettings.DEBUG
est vrai et votre ordinateur local, l'adresse IP (qui peut être simplement 127.0.0.1) est définie dans la variablesettings.INTERNAL_IPS
(qui est décrit ici).settings.INTERNAL_IPS
est un tuple ou une liste d'adresses IP que Django reconnaître comme "interne".RequestContext
pour le modèle.if
balise doit de travail. Du Django docs: "La{% if %}
balise permet d'évaluer une variable, et si cette variable est "vrai" (c'est à dire il existe, n'est pas vide, et n'est pas une valeur booléenne faux) le contenu de ce bloc sont de sortie."Si la modification de
INTERNAL_IPS
n'est pas possible ou approprié, vous pouvez le faire avec un contexte de processeur:dans
myapp/context_processors.py
:dans
settings.py
:Puis dans mes modèles, il suffit de:
Django 1.9
settings.py:
Modèles:
https://docs.djangoproject.com/en/1.9/ref/settings/#std:setting-INTERNAL_IPS dit:
La
debug
contexte processeur est la valeur par défautsettings.py
.Si vous ne l'avez pas déjà, il est toujours utile de voir si/comment les autres ont traité avec le même problème sur djangosnippets. Le plus récent extrait de travailler avec google analytics, tag est 1656:
http://www.djangosnippets.org/snippets/1656/
Ce qui est bien avec cette solution est qu'il vous permet de garder votre
GOOGLE_ANALYTICS_CODE = xxxxxx
dans local_settings.py dans le cas de repos de votre source est public, votre clé reste privé. En outre, il va une étape supplémentaire pour ne pas utiliser google analytics pour les utilisateurs enregistrés.{% if debug %}
peut faire l'affaire, mais seulement si vous passezRequestContext
au lieu deContext
. En outre,debug
n'est pas un indicateur booléen, c'est une fonction que lors de l'évaluation, tandis queDEBUG = True
retour des informations de débogage. Cela peut être une surcharge inutile pour votre modèle.Personnellement, j'ai fais ce truc à la place.
Ce le sera toujours, mais au lieu de s'appuyer sur les deux DEBUG et INTERNAL_IP, il travail juste pour le codage en dur IP.
takes_context=True
de ne pas enfreindre SÈCHE.Vous aurez besoin d'ajouter les
DEBUG
drapeau de votrecontext_processors
.Il peut même ne pas être d'une autre manière. Au moins, aucun que je sache.