|
|
|
|
@ -3,13 +3,13 @@ import base64 |
|
|
|
|
import six |
|
|
|
|
import uuid |
|
|
|
|
|
|
|
|
|
from django.conf import settings |
|
|
|
|
from django.core.files.base import ContentFile |
|
|
|
|
|
|
|
|
|
from rest_framework import serializers |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Base64ImageField(serializers.ImageField): |
|
|
|
|
|
|
|
|
|
use_url = False |
|
|
|
|
def to_internal_value(self, data): |
|
|
|
|
if isinstance(data, six.string_types): |
|
|
|
|
if 'data:' in data and ';base64,' in data: |
|
|
|
|
@ -30,3 +30,8 @@ class Base64ImageField(serializers.ImageField): |
|
|
|
|
extension = imghdr.what(file_name, decoded_file) |
|
|
|
|
extension = "jpg" if extension == "jpeg" else extension |
|
|
|
|
return extension |
|
|
|
|
|
|
|
|
|
def to_representation(self, value): |
|
|
|
|
file = "%s%s" % (settings.MEDIA_URL, super().to_representation(value),) |
|
|
|
|
|
|
|
|
|
return file |
|
|
|
|
|