Do you know if it is possible to know in a django template if the TEMPLATE_DEBUG flag is set?
I would like to disable my google analytics script when I am running my django app on my development machine. Something like a {% if debug %} template tag would be perfect. Unfortunately, I didn't find something like that in the documentation.
For sure, I can add this flag to the context but I would like to know if there is a better way to do that.
To use Django-Flags you first need to define the flag, use the flag, and define conditions for the flag to be enabled. Then visiting the URL /mypage? enable_my_flag=True should show you the flagged <div> in the template.
What does {{ name }} this mean in Django Templates? {{ name }} will be the output. It will be displayed as name in HTML. The name will be replaced with values of Python variable.
autoescape. Controls the current auto-escaping behavior. This tag takes either on or off as an argument and that determines whether auto-escaping is in effect inside the block. The block is closed with an endautoescape ending tag.
Assuming you haven't set TEMPLATE_CONTEXT_PROCESSORS to some other value in settings.py, Django will automatically load the debug context preprocessor (as noted here). This means that you will have access to a variable called debug in your templates if settings.DEBUG is true and your local machine's IP address (which can simply be 127.0.0.1) is set in the variable settings.INTERNAL_IPS (which is described here). settings.INTERNAL_IPS is a tuple or list of IP addresses that Django should recognize as "internal".
If modifying INTERNAL_IPS is not possible/suitable, you can do this with a context processor:
in myapp/context_processors.py:
from django.conf import settings
def debug(context):
return {'DEBUG': settings.DEBUG}
in settings.py:
TEMPLATE_CONTEXT_PROCESSORS = (
...
'myapp.context_processors.debug',
)
Then in my templates, simply:
{% if DEBUG %} .header { background:#f00; } {% endif %}
Django 1.9+
settings.py:
INTERNAL_IPS = (
'127.0.0.1',
)
Templates:
{% if debug %}
https://docs.djangoproject.com/en/dev/ref/settings/#internal-ips says:
A list of IP addresses, as strings, that:
- Allow the debug() context processor to add some variables to the template context.
The debug context processor is in the default settings.py.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With