コンテンツへスキップ
メニュー
この質問にフラグが付けられました
1 返信
3110 ビュー

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

アバター
破棄
著作者 最善の回答

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.'))
アバター
破棄
関連投稿 返信 ビュー 活動
1
9月 21
4280
1
5月 25
1132
0
10月 24
818
4
5月 24
11372
1
4月 24
2255