Django - 获取正在运行的服务器绝对URL

时间:2014-11-06 11:48:52

标签: django django-rest-framework

有什么方法可以在settings.py中设置变量来指向当前网址吗?

例如,如果我在http://0.0.0.0:8080http://127.0.0.1:9000https://www.mydomain.com上运行调试服务器。

我基本上需要为从API返回的图像字段生成完整路径。诀窍是我并不总是有一个请求对象(例如POST上的DRF - 当调用transform_xxx时,请求在上下文中不存在。

感谢您的任何帮助。

1 个答案:

答案 0 :(得分:0)

假设您正在使用contrib.sites框架,则可以从那里提取网站网址。

good example in the docs for when you don't have access to the request

current_site = Site.objects.get_current()
if current_site.domain == 'foo.com':
    # Do something
    pass
else:
    # Do something else.
    pass

希望这就是你所需要的。

更新:我从正确使用的评论中看到您可以获得请求。当你不这样做的时候,我会把它留在这里来回答挑战。