import base64, os from django.conf import settings from django.core.files.base import ContentFile def decode_base64(my_str, upload_to=None): if "data:" in my_str: my_str = my_str[my_str.index("base64,") + 7:] if not upload_to: ext = my_str.split('/')[-1] return ContentFile(base64.b64decode(my_str), name='temp.' + ext) path = "%s/%s" % (settings.MEDIA_ROOT, upload_to) os.makedirs(os.path.dirname(path), exist_ok=True) url = "%s%s" % (settings.MEDIA_URL, upload_to) with open(path, "wb") as fh: fh.write(base64.b64decode(my_str)) return url return my_str def get_real_name(array, elem): for i, j in array: if i and (i == elem or j == elem): return i def get_empty_list(): return [] EXAMPLE_BASE64 = "data:image/png;base64,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"