这是我的目标:
- 用户想要登录
- 我在每个页面上创建一个按钮,并将 urlback 作为参数,例如,如果我们在页面
http://olivier.life/today
上,登录按钮将有一个 url像http://olivier.life/login?back=today
- 用户登录
- 一旦用户登录,我检查“
GET
”请求中是否有“back
”。如果是这样,那么我将重定向到GET
中的 url
我的问题是安全问题:我只想知道 GET
中的 URL 是否是我的应用程序的一部分(对 urls.py
文件)。
如何做到这一点?
最佳答案
使用resolve
.文档中有一个非常接近此用例的示例。我认为对于您的情况,您需要类似的东西:
def some_view(request):
redirect_target = request.GET.get('back')
if redirect_target:
try:
resolve_match = django.core.urlresolvers.resolve(redirect_target)
except django.core.urlresolvers.Resolver404:
# do something on bad input
else:
return django.shortcuts.redirect(redirect_target)
else:
# empty string redirect target, or not provided at all
# do something else
关于python - Django:有没有办法知道 url 在应用程序中是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32705698/