How can I get the domain name of my site within a Django template?


Question

How do I get the domain name of my current site from within a Django template? I've tried looking in the tag and filters but nothing there.

1
143
3/10/2019 3:13:38 PM

Accepted Answer

I think what you want is to have access to the request context, see RequestContext.

60
9/20/2009 2:35:03 PM

If you want the actual HTTP Host header, see Daniel Roseman's comment on @Phsiao's answer. The other alternative is if you're using the contrib.sites framework, you can set a canonical domain name for a Site in the database (mapping the request domain to a settings file with the proper SITE_ID is something you have to do yourself via your webserver setup). In that case you're looking for:

from django.contrib.sites.models import Site

current_site = Site.objects.get_current()
current_site.domain

you'd have to put the current_site object into a template context yourself if you want to use it. If you're using it all over the place, you could package that up in a template context processor.


Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon