2

我想在 django 中获取服务器 url。所以我浏览了stackoverflow,发现为了做到这一点,我必须执行以下操作:

>>> from django.contrib.sites.models import Site
>>> mysite = Site.objects.get_current()

我在生产服务器中尝试了上述内容python manage.py shell,并期望 mysite 给我生产服务器的 url,但它给了 example.com

>>> mysite
<Site: example.com>

我错过了一些配置还是什么?

4

2 回答 2

8

Site对象存储在数据库中。在那里改变它,你就完成了。

from django.contrib.sites.models import Site
mysite = Site.objects.get_current()
mysite.domain = 'mysite.com'
mysite.name = 'My Site'
mysite.save()

或者,您可以在/admin/您网站的部分更改它/admin/sites/site/1/

这允许您从同一个代码库运行多个站点

于 2013-08-02T14:21:13.650 回答
2

您可以尝试build_absolute_uri - 请参阅如何在 Django 中获取完整/绝对 URL(带域)?

于 2013-08-02T14:25:57.270 回答