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

Django-获取正在运行的服务器绝对url,django,django-rest-framework,Django,Django Rest Framework,有没有办法在settings.py中设置一个变量来指向当前url 例如,如果我在上运行调试服务器http://0.0.0.0:8080 或http://127.0.0.1:9000 或https://www.mydomain.com. 我基本上需要为API返回的图像字段生成完整路径。诀窍在于,我并不总是在DRF上发布请求对象——例如,调用transform_xxx时,请求在上下文中不存在 非常感谢您的帮助 假设您使用的是contrib.sites框架,您可以从那里提取站点URL 有一个: 希望这

有没有办法在settings.py中设置一个变量来指向当前url

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

我基本上需要为API返回的图像字段生成完整路径。诀窍在于,我并不总是在DRF上发布请求对象——例如,调用transform_xxx时,请求在上下文中不存在

非常感谢您的帮助

假设您使用的是contrib.sites框架,您可以从那里提取站点URL

有一个:

希望这就是你需要的


更新:我从正确使用的评论中看到,您将有可用的请求。我将把这个问题留在这里,在您不知道的时候回答您的问题。

我没有完全理解这个问题-是的,您当然可以在settings.py中设置一个变量。您还可以创建特定于环境的设置\u local.py。您还可以将域名存储在环境变量中,并在需要时读取它。我想在服务器启动时填充该变量。e、 g in settings.py set HOST\u URL=get\u HOST\u URL\u somehow如果没有请求对象,就没有合理的方法。你应该在关于站点框架、操作系统环境、本地设置等的上下文中设置它。它对GET有效,但显然对POST无效。我的问题是,我使用django作为API,我需要返回图像字段的完整路径,通常它将由django直接在模板中呈现,或者该文件将从同一来源提供-情况并非如此。我收回它。我忘了将上下文传递给嵌套序列化程序。
current_site = Site.objects.get_current()
if current_site.domain == 'foo.com':
    # Do something
    pass
else:
    # Do something else.
    pass