Vous pouvez récupérer l'URL dans votre modèle comme ceci:
<p>URL of this page: {{ request.get_full_path }}</p>
ou par
{{ request.path }}
si vous n'avez pas besoin des paramètres supplémentaires.
Quelques précisions et corrections devraient être apportées aux réponses d' Hypete et d' Igancio , je résumerai simplement l'idée ici, pour référence future.
Si vous avez besoin de la request
variable dans le modèle, vous devez ajouter le 'django.core.context_processors.request' aux TEMPLATE_CONTEXT_PROCESSORS
paramètres, ce n'est pas par défaut (Django 1.4).
Vous ne devez pas non plus oublier les autres processeurs de contexte utilisés par vos applications. Donc, pour ajouter la demande aux autres processeurs par défaut, vous pouvez l'ajouter dans vos paramètres, pour éviter de coder en dur la liste des processeurs par défaut (qui pourrait très bien changer dans les versions ultérieures):
from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS as TCP
TEMPLATE_CONTEXT_PROCESSORS = TCP + (
'django.core.context_processors.request',
)
Ensuite, à condition d' envoyer le request
contenu dans votre réponse , par exemple comme ceci:
from django.shortcuts import render_to_response
from django.template import RequestContext
def index(request):
return render_to_response(
'user/profile.html',
{ 'title': 'User profile' },
context_instance=RequestContext(request)
)