Нужна помощь в сохранении изображения base64 в поле изображения django
Я работаю над проектом django, который возвращает изображение в кодировке base64, и я хочу сохранить изображение в поле django image. Однако я что-то упустил и буду благодарен за любую помощь. Вот модель:
class Catalogue(models.Model):
products = models.ForeignKey(Product, on_delete=models.CASCADE)
name = models.CharField(max_length=255, blank=True)
description = models.CharField(max_length=255, blank=True)
image_link = models.CharField(max_length=255, blank=True)
image = models.ImageField(blank=True, null=True, default=None)
def save(self, *args, **kwargs):
self.name = self.products.name
self.description = self.products.description
super(Catalogue, self).save(*args, **kwargs)
def __str__(self):
return str(self.products)
в файле views.py, в котором я получаю изображение из api
cat_name = []
for e in Catalogue.objects.all():
cat_name.append(e.name)
print(cat_name)
for prod_id in cat_name:
print(prod_id)
image_url = f"API URL HERE"
b64 = requests.get(image_url, headers=headers).json()
b64_img_code = b64['data']
Catalogue.image = base64_to_image(b64_img_code)
Catalogue.save()
messages.success(request, "Product Added")
return redirect('home')
Это файл утилиты, который декодирует переданную строку base64:
def base64_to_image(base64_string):
return ContentFile(base64.b64decode(base64_string), name=uuid4().hex + ".png")
Заранее спасибо