with this you can have context variables which know the media url and the urls of all your applications, if you need it.
save the code as myapp/context_processors.py and add the following line to TEMPLATE_CONTEXT_PROCESSORS
setting
"mysite.myapp.context_processors.url_info",
For each application you need to know the url set MYAPP_URL
and add it to dict.
1 2 3 4 5 6 7 8 9 10 | from django.conf import settings
def url_info(request):
"""Return useful variables to know the media url and, if you
need it, your apps url."""
return {
'myapp_url': settings.MYAPP_URL,
'media_url': settings.MEDIA_URL,
}
|
More like this
- Template tag - list punctuation for a list of items by shapiromatron 10 months, 1 week ago
- JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 10 months, 2 weeks ago
- Serializer factory with Django Rest Framework by julio 1 year, 5 months ago
- Image compression before saving the new model / work with JPG, PNG by Schleidens 1 year, 6 months ago
- Help text hyperlinks by sa2812 1 year, 6 months ago
Comments
I've been using a similar context processor for a while now and one caveat to be aware of is that error 500 templates aren't rendered with request context by default. This means that context processors are not applied and may lead to broken media references (style sheets/images).
You can work around this by pointing to your own handler500 view from your urlconf and using RequestContext instead of Context to render the template.
#
Please login first before commenting.