Skip to Content
Menú
This question has been flagged
1 Respondre
3436 Vistes

hello guys.. im using odoo 13 and i want to know is there a way to add validation before we insert image on image/binary field? 


i have these requirements for image

1. maximum 500 x 500

2. maximum 250 kb


if more than that user cant save the image..


thank you

Avatar
Descartar
Autor Best Answer

i found the way
i solved it by this way

@api.constrains('image_1024')
    def check_insert_image_product(self):
        if self.image_1024:
            file_image = base64.b64decode(self.image_1024)
            stream = io.BytesIO(file_image)
            img = Image.open(stream)
            width, height = img.size
            if width > 500 or height > 500:
                raise ValidationError(_("You can't insert image with height or width more than 500 (500 x 500).\nHeight: %s \nWidth: %s" % (height, width)))
            image_size = sys.getsizeof(file_image) * 0.0009765625
            if image_size > 250:
                raise ValidationError(_("You can't insert image with size more than 250 KB.\nSize: %s" % (image_size)))
        else:
            raise UserError(_('You must include a Product Image to be able to save this data.'))
Avatar
Descartar
Related Posts Respostes Vistes Activitat
1
de set. 21
4768
1
de jul. 25
1920
0
d’oct. 24
1358
4
de maig 24
12546
1
d’abr. 24
3163