Commit beb75715 by benjaoming

Do not use HttpResponseRedirectBase anyways, just check status_code

parent 6da0fd98
...@@ -2,10 +2,6 @@ ...@@ -2,10 +2,6 @@
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.http import HttpResponse, HttpResponseNotFound, \ from django.http import HttpResponse, HttpResponseNotFound, \
HttpResponseForbidden HttpResponseForbidden
try:
from django.http import HttpResponseRedirectBase
except ImportError:
from django.http.response import HttpResponseRedirectBase
from django.shortcuts import redirect, get_object_or_404 from django.shortcuts import redirect, get_object_or_404
from django.template.context import RequestContext from django.template.context import RequestContext
...@@ -20,11 +16,12 @@ from django.utils.http import urlquote ...@@ -20,11 +16,12 @@ from django.utils.http import urlquote
def json_view(func): def json_view(func):
def wrap(request, *args, **kwargs): def wrap(request, *args, **kwargs):
obj = func(request, *args, **kwargs) obj = func(request, *args, **kwargs)
if isinstance(obj, HttpResponseRedirectBase): if isinstance(obj, HttpResponse):
# Special behaviour: If it's a redirect, for instance # Special behaviour: If it's a redirect, for instance
# because of login protection etc. just return # because of login protection etc. just return
# the redirect # the redirect
return obj if obj.status_code == 301 or obj.status_code == 302:
return obj
data = json.dumps(obj, ensure_ascii=False) data = json.dumps(obj, ensure_ascii=False)
status = kwargs.get('status', 200) status = kwargs.get('status', 200)
response = HttpResponse(mimetype='application/json', status=status) response = HttpResponse(mimetype='application/json', status=status)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment