You could try build_absolute_uri - see How can I get the full/absolute URL (with domain) in Django?
django.contrib.sites.models.Site gives example.com as the server url
-
21-06-2022 - |
Question
I want to get the server url in django. So I went through stackoverflow and found out that in order to do this I will have to do the following:
>>> from django.contrib.sites.models import Site
>>> mysite = Site.objects.get_current()
I tried the above inside python manage.py shell
in the production server and expected mysite to give me the production server's url but it gives example.com
>>> mysite
<Site: example.com>
Am I missing some configuration or something?
Solution 2
OTHER TIPS
The Site
object is stored in the database. Change it there, and you're done.
from django.contrib.sites.models import Site
mysite = Site.objects.get_current()
mysite.domain = 'mysite.com'
mysite.name = 'My Site'
mysite.save()
Alternatively, you can change it in the /admin/
section of your site at /admin/sites/site/1/
.
This allows you to run multiple sites from the same code-base.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow