我用以下命令启动了django服务器:
python manage.py runserver 192.168.31.79:8030
当我使用以下代码时,
from django.contrib.sites.models import Site
current_site = Site.objects.get_current()
print (current_site.domain)
结果将是192.168.31.79: 8000 ,为什么端口不是8030?谁能为我解释一下?我怎么能通过编码检索192.168.31.79:8030。非常感谢。
答案 0 :(得分:0)
使用Site
解析get_current
时,Django将首先检查设置文件中是否设置了SITE_ID
。如果有SITE_ID
,它将返回domain
字段中存储的内容(在SITE_CACHE
中获取缓存版本或将其添加到缓存并返回)。
如果SITE_ID
不存在,Django将使用request.get_host()
解析主机并首先查询缓存中是否存在domain
,然后检查它是否在{{1}中对象。
如果这不会产生结果,则会删除Site
并以相同方式再次检查。
我会尝试查看每个port
个对象,看看该端口是否已进入Site
。如果没有查看domain
中存储的内容。