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-absoluteor with easy_install:
easy_install django-absoluteAdd 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:
ABSOLUTE_ROOT: full absolute root URL (without trailing slash) based on incoming requestABSOLUTE_ROOT_URL: full absolute root URL (with trailing slash) based on incoming requestSITE_ROOT: full absolute root URL (without trailing slash) based on current Django SiteSITE_ROOT_URL: full absolute root URL (with trailing slash) based on current Django site
Django absolute provide 2 template tags:
absolute: acts likeurlbut provide a full URL based on incoming request.site: acts likeurlbut provide a full URL based on current Django Site.
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.