How to Get Current URL in Django Template

Django, is a powerful Python web framework, provides various tools and features to assist web developers. Occasionally, you may need to access and display the current URL within template for tasks like creating dynamic links or providing contextual information. In this blog post we will explore how to retrieve the current URL within a Django template.

Using the request Context Processor

Django’s request object contains information about the current request, including the URL. To access this object within a template you can use request context processor. Heres how you can enable it:

Step 1: Add ‘django.core.context_processors.request’ to context_processors in settings.py:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                # ...
                'django.template.context_processors.request',
            ],
        },
    },
]

Step 2: Retrieve the Current URL in Your Template:

Now you have enabled the request context processor, you can access the request object in your template. To display the current URL, use:

<p>Current URL: {{ request.get_full_path }}</p>

This code will output the complete URL for the current page.

Accessing Specific URL Components

If you need to access specific components of the URL, such as the path, query parameters, or the domain, you can use the following attributes:

  • request.path: The path of the URL (e.g., “/example/”)
  • request.get_full_path: The full path, including query parameters (e.g., “/example/?param=value”)
  • request.build_absolute_uri: The complete URL, including the domain (e.g., “https://www.example.com/example/?param=value”)

You can use these attributes as needed in your templates to display an relevant URL components.

Use Cases

Retrieving the current URL in a template can be helpful for various use cases:

  • Creating dynamic links or buttons based on the current URL.
  • Displaying the current URL as contextual information to users.
  • Customizing the appearance or behavior of the page based on the URL.