如何从名称空间的 Django URL 中获取绝对字符串?
Posted
技术标签:
【中文标题】如何从名称空间的 Django URL 中获取绝对字符串?【英文标题】:How to get the absolute string from a name-spaced Django URL? 【发布时间】:2018-06-09 11:28:12 【问题描述】:您知道如何在 Django 应用程序中使用视图中的简单函数重定向到不同的视图吗?它通常是这样的:
return redirect('myapp:my_url')
上面的重定向会将我重定向到一个绝对 URL,可能是这样的:
https://example.com/my-url/
现在,我的问题是,如何在我的视图中使用函数将https://example.com/my-url/ 作为字符串获取?我不想重定向,我只想获取它,并将其保存在我的变量中。
所以,通过这样做:
print my_function('myapp:my_url')
我们会在终端中得到这样的输出:
https://example.com/my-url/
有什么帮助吗?谢谢!
【问题讨论】:
这对你有用吗? docs.djangoproject.com/en/2.0/ref/models/instances/… 其实我想你想要的:docs.djangoproject.com/en/2.0/ref/urlresolvers/… 【参考方案1】:您可以使用您已经提到的reverse
函数获取URL 的“路径”元素(即/my-url/
)。
可以使用request.build_absolute_uri()
添加网站的域名。
print(request.build_absolute_uri(reverse('myapp:my_url'))
请注意,我在此示例中使用的是 Python 3 打印语法。
【讨论】:
以上是关于如何从名称空间的 Django URL 中获取绝对字符串?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Django QuerySet 中获取绝对图像 URL 列表?
如何在 Django 中获取服务器名称以获得完整的 url?