Django: Is There A Way To Know If A Url Is Valid In The Application?
Here's my goal: the user wants to login I make a button on each page with the urlback as a parameter, for example if we are on the page http://olivier.life/today, the button to lo
Solution 1:
Use resolve
. There's an example that's very close to this use case in the docs. I think for your case you want something like:
defsome_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 inputelse:
return django.shortcuts.redirect(redirect_target)
else:
# empty string redirect target, or not provided at all# do something else
Solution 2:
You can use the urlresolver's resolve method, the method throws an exception if it can't resolve an URL, you can read more about urlresolver here:
from django.core.urlresolvers import resolve, Resolver404
defyourView(request):
try:
ifhasattr(request.GET, 'back'):
resolve(request.GET['back'])
return HttpResponseRedirect(request.GET['back'])
except Resolver404:
return Response('some other thing')
Post a Comment for "Django: Is There A Way To Know If A Url Is Valid In The Application?"