Fixed wrong function, now wrapping content_type

This commit is contained in:
seba 2011-10-17 20:06:20 +02:00
parent 2d11431e63
commit 16a0686b03
2 changed files with 9 additions and 8 deletions

View File

@ -88,11 +88,12 @@ def requirePlugin(apiFunc):
def fix_mime(mime_func): def fix_mime(mime_func):
""" Fix mimetype by truncating everything behind a ';'. """ Fix mimetype by truncating everything behind a ';'.
This is used to fix pistons ``piston.utils.Mimer.loader_for_type``.""" This is used to fix pistons ``piston.utils.Mimer.content_type``."""
@wraps(mime_func) @wraps(mime_func)
def wrapper(self, ctype): def wrapper(self):
ctype = self.request.META.get('CONTENT_TYPE', None)
if ctype and ctype.find(";") >= 0: if ctype and ctype.find(";") >= 0:
ctype = ctype.split(";")[0] ctype = self.request.META['CONTENT_TYPE'] = ctype.split(";")[0]
return mime_func(self, ctype) return mime_func(self)
return wrapper return wrapper

View File

@ -6,17 +6,17 @@ from api2.handlers import *
from api2.decorators import fix_mime from api2.decorators import fix_mime
import piston.utils import piston.utils
# piston does not understand mimetypes with charsets, HACK: fix loader_for_type # piston does not understand mimetypes with charsets, HACK: fix content_type
piston.utils.Mimer.loader_for_type = fix_mime(piston.utils.Mimer.loader_for_type) piston.utils.Mimer.content_type = fix_mime(piston.utils.Mimer.content_type)
class CsrfExemptResource( Resource ): class CsrfExemptResource(Resource):
""" Except a :class:`Resource` from djangos CSRF-Framework. """ Except a :class:`Resource` from djangos CSRF-Framework.
This idea is taken from This idea is taken from
http://www.robertshady.com/content/creating-very-basic-api-using-python-django-and-piston http://www.robertshady.com/content/creating-very-basic-api-using-python-django-and-piston
""" """
def __init__( self, handler, authentication = None ): def __init__(self, handler, authentication = None):
super( CsrfExemptResource, self ).__init__( handler, authentication ) super( CsrfExemptResource, self ).__init__( handler, authentication )
self.csrf_exempt = getattr( self.handler, 'csrf_exempt', True ) self.csrf_exempt = getattr( self.handler, 'csrf_exempt', True )