Python Django重定向到自定义URL

Python Django重定向到自定义URL,python,ios,django,oauth-2.0,custom-url,Python,Ios,Django,Oauth 2.0,Custom Url,在我的Django应用程序中,如何将用户重定向到omescheme://someurl.com? 为了给您提供一些上下文以备不时之需,我有一个用Python/Django编写的工作中的oauth2服务器,我需要允许用户注册具有自定义URL方案的重定向URI。此自定义URL方案用于 我的第一反应是使用HttpResponseRedirect,但这个URL有一个自定义方案,不是HTTP,所以我猜这不是我想要的。提前感谢您提供的任何建议 编辑: 我确实试过了,Django正确返回了响应重定向,没有抛出

在我的Django应用程序中,如何将用户重定向到omescheme://someurl.com?

为了给您提供一些上下文以备不时之需,我有一个用Python/Django编写的工作中的oauth2服务器,我需要允许用户注册具有自定义URL方案的重定向URI。此自定义URL方案用于

我的第一反应是使用HttpResponseRedirect,但这个URL有一个自定义方案,不是HTTP,所以我猜这不是我想要的。提前感谢您提供的任何建议

编辑: 我确实试过了,Django正确返回了响应重定向,没有抛出错误,但是浏览器没有重定向到此URL。我用Chrome来测试这个

编辑2: HttpResponseRedirect在safari中运行良好

类HttpResponseRedirect

构造函数的第一个参数是必需的——重定向到的路径。这可以是一个完全限定的URL(例如'http://www.yahoo.com/search/“)或不带>域的绝对路径(例如,“/search/”)。有关其他可选构造函数参数,请参见HttpResponse。注意>这将返回HTTP状态代码302

这里是:


不管怎样,从我所读的内容来看,它应该是有效的

由于安全原因,Django默认情况下只允许重定向到
http
https
ftp
,因此这实际上不应该起作用:

我在OAuth和重定向到自定义方案时遇到了同样的问题。
Django(在Apache上)在重定向到自定义方案时抛出500(
Django.core.exceptions.suspectious操作
)。解决方案是创建自己的
HttpResponseRedirect
子类,或者只执行以下操作:

location = < your redirect URL >
res = HttpResponse(location, status=302)
res['Location'] = location
return res
location=
res=HttpResponse(位置,状态=302)
res['Location']=位置
返回res

您试过了吗?重定向响应返回到客户端,因此它可能会正常工作。谢谢提醒!我还没有尝试过这个,但如果我尝试了,它会正确标记,并且有效。我在Django 1.4.0上,这可能是我没有注意到这个问题的原因。除此之外,我发现(对于Django 1.6),如果你将HttpResponseRedirect子类化,你还需要将你的自定义协议添加到
allowed_schemes
类变量中,否则Django仍然会引发
可疑操作