Невозможно сохранить строку base64 в том же поле изображения, переопределив метод сохранения с помощью django

models.py

class Organisation(models.Model):
    """
    Organisation model
    """
    org_id = models.CharField(max_length=50,default=uuid.uuid4, editable=False, unique=True, primary_key=True)
    org_name = models.CharField(unique=True,max_length=100)
    org_code = models.CharField(unique=True,max_length=20)
    org_mail_id = models.EmailField(max_length=100)
    org_phone_number = models.CharField(max_length=20)
    org_address = models.JSONField(max_length=500, null=True)
    product = models.ManyToManyField(Product, related_name='products')
    org_logo = models.ImageField(upload_to=upload_org_logo, null=True, blank=True,)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    org_logo_b64 = models.BinaryField(null=True, blank=True)


    def save(self, *args, **kwargs):
        if self.org_logo:
            logo = self.org_logo.open()
            self.org_logo_b64 = base64.b64encode(logo.read())
            super(Organisation, self).save(*args, **kwargs)

        else:
            super(Organisation, self).save(*args, **kwargs)

Мне нужно переопределить метод save для сохранения данных base64 в поле image. Но org_logo должно быть полем image, так как мне нужно получить как объект файл при POST и сохранить его как base64 в том же поле org_logo и в базе данных. Возможно ли это? Или возможно ли изменить имя поля org_logo_b64 на org_logo при выполнении операции GET?

Вернуться на верх