2020-06-29 11:50:06 +00:00
|
|
|
from rest_framework.utils.encoders import JSONEncoder as DRFJSONEncoder
|
|
|
|
from rest_framework.renderers import JSONRenderer as DRFJSONRenderer
|
|
|
|
|
|
|
|
from .serializers import b64encode
|
|
|
|
|
|
|
|
|
|
|
|
class JSONEncoder(DRFJSONEncoder):
|
|
|
|
def default(self, obj):
|
|
|
|
if isinstance(obj, bytes) or isinstance(obj, memoryview):
|
|
|
|
return b64encode(obj)
|
|
|
|
return super().default(obj)
|
|
|
|
|
|
|
|
|
|
|
|
class JSONRenderer(DRFJSONRenderer):
|
|
|
|
"""
|
|
|
|
Renderer which serializes to JSON with support for our base64
|
|
|
|
"""
|
2020-11-14 15:04:41 +00:00
|
|
|
|
2020-06-29 11:50:06 +00:00
|
|
|
encoder_class = JSONEncoder
|