如何在Django without the Sites module中获取完整/绝对网址(例如https://example.com/some/path
)?这太傻了..。我应该不需要查询我的数据库来抓取URL!
我想在reverse()
中使用它。
发布于 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()的抽象类(或将其添加到已在使用的抽象类中)。它可以像下面这样简单:
def get_truly_absolute_url(self):
return BASE_URL + self.get_absolute_url()
子类化它,现在你可以在任何地方使用它。
https://stackoverflow.com/questions/2345708
复制相似问题