Django Absolute provides context processors and template tags to use full absolute URLs in templates.
You can install Django Absolute with pip:
pip install django-absolute
or with easy_install:
easy_install django-absolute
Add absolute to your settings.INSTALLED_APPS.
Add absolute.context_processors.absolute to your settings.TEMPLATE_CONTEXT_PROCESSORS. Django Absolute context processor depends on request context processor:
from django.conf import global_settings
TEMPLATE_CONTEXT_PROCESSORS = global_settings.TEMPLATE_CONTEXT_PROCESSORS + (
'django.core.context_processors.request',
'absolute.context_processors.absolute',
)
Then you can access the following variables in your templates:
Django absolute provide 2 template tags:
To use theses template tags, you need to load the absolute template tag library.
{% load absolute %}
{% url index %}
{% absolute index %}
{% site index %}
These template tags have exactly the same syntax as url, including the “as” syntax:
{% absolute index as the_url %}
{{ the_url }}
If you use Django 1.5, you need to use the “new-style” url syntax (quoted parameters):
{% load absolute %}
{% url "index" %}
{% absolute "index" %}
{% site "index" %}
{% absolute "index" as the_url %}
{{ the_url }}
If you want to match the “new-style” syntax in Django < 1.5 you need to load absolute_future instead (same behavior as {% load url from future %}).
{% load url from future %}
{% load absolute_future %}
{% url "index" %}
{% absolute "index" %}
{% site "index" %}
{% absolute "index" as the_url %}
{{ the_url }}
For more informations, see the Django 1.5 release notes.