Как отправить объекты ImageFieldFile, извлеченные из базы данных с помощью django, на фронтенд и отобразить их на экране
При использовании django в качестве бэкенда, у меня есть изображение, сохраненное в базе данных в формате ImageField, и в слое представления я получаю объект через orm, как я могу вернуть его моему vue фронтенду.
Я превратил объект ImageField в строку, чтобы вернуть JsonResponse, но внешний интерфейс получает только имя изображения при чтении
def getContent(request):
mtitle=request.GET.get('title')
row_obj=models.content.objects.filter(title=mtitle).first()
res={
"pic":str(row_obj.img),
}
print(type(row_obj.img))
return JsonResponse(res, json_dumps_params={"ensure_ascii": False})
Как запросить изображение для отображения на лицевой стороне?
В поле image field будет содержаться путь к изображению.
Вы должны использовать <img src="image path">
во фронтенде
Или конвертировать изображение в base64.
https://stackoverflow.com/a/3715530
Вы должны сами изменить путь к изображению, это просто пример.
with open(f'{static_path}/{row_obj.img}', "rb") as image_file:
res = {
"pic": base64.b64encode(image_file.read())
}