Add @expect_json to help with parsing JSON request

This commit is contained in:
Prem Sichanugrist
2012-06-18 14:15:23 -04:00
parent 5c85412dfa
commit 0f60459709

View File

@@ -0,0 +1,16 @@
from functools import wraps
import copy
import json
def expect_json(view_function):
@wraps(view_function)
def expect_json_with_cloned_request(request, *args, **kwargs):
if request.META['CONTENT_TYPE'] == "application/json":
cloned_request = copy.copy(request)
cloned_request.POST = cloned_request.POST.copy()
cloned_request.POST.update(json.loads(request.raw_post_data))
return view_function(cloned_request, *args, **kwargs)
else:
return view_function(request, *args, **kwargs)
return expect_json_with_cloned_request