Zugriff auf die aktuelle URL im Django Template

Zugriff auf die aktuelle URL im Django Template

Wie lässt sich die aktuelle URL der Webseite im Django Template abfragen?

Da ich das immer wieder benötige (Facebook Like Buttons, …) brauche ich auch einen schnellen Zugriff darauf, ohne auf das Sites Framework zuzugreifen.

Die integrierte Template-Methode “build_abslolute_uri” läßt sich hierfür zusammen mit dem “request object” verwenden:

In settings.py:

TEMPLATE_CONTEXT_PROCESSORS = (
  # ...
  'django.core.context_processors.request',
  # ...
)

Dadurch wird {{ request }} in den Templates verfügbar. Und nun kann ich in jedem Template auf die aktuelle URL zugreifen:

{{ request.build_absolute_uri }}

Damit erhalte ich die vollständige URL inklusive dem Präfix http:// und der Domain.

Für die Verwendung in einem Facebook Like Button ist es noch ratsam, die URL sicherheitshalber entsprechend zu codieren:

{{ request.build_absolute_uri|urlencode }}

Fertig!

Es sind weder eine Middleware noch andere umständliche Klimmzüge über das Site-Framework nötig. 

Happy Coding :-)

Aktuell nicht bewertet

Sind Sie bereit für Ihren SEO Erfolg?

Starten Sie mit uns gemeinsam durch.

  Jetzt unverbindlich anfragen!