Skip to main content

Django Absolute

https://secure.travis-ci.org/noirbizarre/django-absolute.png

Django Absolute provides context processors and template tags to use full absolute URLs in templates.

Installation

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.

Context processor

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 request

  • ABSOLUTE_ROOT_URL: full absolute root URL (with trailing slash) based on incoming request

  • SITE_ROOT: full absolute root URL (without trailing slash) based on current Django Site

  • SITE_ROOT_URL: full absolute root URL (with trailing slash) based on current Django site

Template tags

Django absolute provide 2 template tags:

  • absolute: acts like url but provide a full URL based on incoming request.

  • site: acts like url but 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.

Changelog

0.3 (2013-03-03)

  • Check if django.contrib.sites is enabled (thanks to Rodrigo Primo)

  • Django 1.5 compatibility (Documentation and tests)

  • Added absolute_future template tag library (match {% load url from future %} syntax).

  • drop support for Python 2.6 (test only)

0.2.2 (2012-11-18)

  • Handle template tag as syntax

0.2.1 (2012-11-10)

  • Fix packaging

0.2 (2012-11-10)

  • {% site %} fallback on http protocol if request is missing.

0.1 (2012-06-10)

  • Initial release

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-absolute-0.3.tar.gz (10.0 kB view details)

Uploaded Source

File details

Details for the file django-absolute-0.3.tar.gz.

File metadata

  • Download URL: django-absolute-0.3.tar.gz
  • Upload date:
  • Size: 10.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for django-absolute-0.3.tar.gz
Algorithm Hash digest
SHA256 41ad9c819c80539cd604b9dea5c735252476616f071d739a8638aa9307df5857
MD5 bd17b1cecc6e7a9db96e550ec373426d
BLAKE2b-256 180277ed5333f547ac95243bd0598372a338340536dfa5bfee3ed5753fa01b75

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.3 This release

1 file

0.2.2

1 file

0.2.1

1 file

0.1

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page