首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Django中获取完整/绝对URL (带域)?

如何在Django中获取完整/绝对URL (带域)?
EN

Stack Overflow用户
提问于 2010-02-27 08:29:00
回答 23查看 347.8K关注 0票数 447

如何在Django without the Sites module中获取完整/绝对网址(例如https://example.com/some/path)?这太傻了..。我应该不需要查询我的数据库来抓取URL!

我想在reverse()中使用它。

EN

Stack Overflow用户

发布于 2019-01-18 02:59:48

也可以使用ABSOLUTE_URL_OVERRIDES作为设置

https://docs.djangoproject.com/en/2.1/ref/settings/#absolute-url-overrides

但这会覆盖get_absolute_url(),这可能并不可取。

我认为更好的解决方案是将其放在models.py中,而不是仅仅为此安装sites框架或执行这里提到的依赖于request对象的其他事情

在settings.py中定义BASE_URL,然后将其导入到models.py中,并创建一个定义get_truly_absolute_url()的抽象类(或将其添加到已在使用的抽象类中)。它可以像下面这样简单:

代码语言:javascript
运行
复制
def get_truly_absolute_url(self):
    return BASE_URL + self.get_absolute_url()

子类化它,现在你可以在任何地方使用它。

票数 1
EN
查看全部 23 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2345708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档