"TypeError: не удается сериализовать объект 'ContentFile'".
import base64
from django.core.files.base import ContentFile
file = "data:image/png;base64,iVBORw0KGgoAAAANSUhEU..."
format, imgstr = file.split(';base64,')
ext = format.split('/')[-1]
data = ContentFile(base64.b64decode(imgstr), name='temp.' + ext)
somemodel.save(data)
я хочу сохранить base64 файл-носитель в файловом поле модели Django, я ожидаю сохранить данные, но получаю typeerror cannot serialize 'ContentFile' object", пожалуйста, кто-нибудь скажите мне, где я сделал неправильно
Django не может сериализовать ContentFile
объекты напрямую. Запишите ContentFile
в временный файл и затем сохраните этот файл в модели в поле :
import base64
import uuid
from django.core.files.base import ContentFile
from django.core.files.storage import default_storage
file = "data:image/png;base64,iVBORw0KGgoAAAANSUhEU..."
format, imgstr = file.split(';base64,')
ext = format.split('/')[-1]
data = ContentFile(base64.b64decode(imgstr))
file_name = '{}.{}'.format(uuid.uuid4(), ext)
path = default_storage.save('tmp/' + file_name, data)
somemodel.filefield = path
somemodel.save()