This tip outlines a simple way to get the full URL for the current page in your Django template.
Make sure you have django.template.context_processors.request listed in your context_processors
Django 1.8 or above
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'project/templates/')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
Django 1.7 or below
TEMPLATE_CONTEXT_PROCESSORS = (
# ...
'django.core.context_processors.request',
# ...
)
Which makes {{ request }} available in your templates. Then in your template you can do
{{ request.build_absolute_uri }}