限制ir.attachment字段odoo 12中数据的大小和类型

限制ir.attachment字段odoo 12中数据的大小和类型,odoo,Odoo,我需要创建一个ir.attachment字段来上传用户端的数据,但是我必须限制数据类型和大小,我如何实现它 我的python字段是:- test=fields.Many2many('ir.attachment',string='test')您可以使用它来检查test字段 使用mimetype和file\u size字段检查数据类型和大小,使用core/utils.js中的binaryToBinsize函数计算many2many列表中显示的附件大小,该函数将长度除以1.37,然后将其转换为人类大小

我需要创建一个ir.attachment字段来上传用户端的数据,但是我必须限制数据类型和大小,我如何实现它

我的python字段是:-

test=fields.Many2many('ir.attachment',string='test')

您可以使用它来检查
test
字段

使用
mimetype
file\u size
字段检查数据类型和大小,使用
core/utils.js
中的
binaryToBinsize
函数计算many2many列表中显示的附件大小,该函数将长度除以
1.37
,然后将其转换为人类大小(反复除以1024)

示例:

强制用户仅选择小于10M的文本文件

@api.one
@api.Constraints(‘测试’)
def检查附件(自身):
对于自检中的附件:
如果attachment.mimetype!='text/plain'或attachment.file_大小>10*1024*1024:
raise ValidationError(“仅允许小于10M的文本文件!”)
要防止用户使用测试字段列表创建不是小于10M的纯文本文件的附件,请执行以下操作:

在上下文中传递
file\u size
mimetype


并在
ir.attachment
模型中添加约束

示例:

def人体尺寸(尺寸):
units=“字节,Kb,Mb,Gb,Tb,Pb,Eb,Zb,Yb”。拆分(','))
i=0
当大小>=1024时:
大小/=1024
i+=1
返回“%.4g%s”%(大小,单位[i])
类IrAttachment(models.Model):
_inherit='ir.attachment'
@api.1
@api.constraints('mimetype','file\u size')
定义检查mimetype文件大小(自身):
如果self.env.context和self.env.context['mimetype']中的'mimetype'!=self.mimetype:
引发ValidationError(“只能上载文本文件!”)
如果self.env.context和self.env.context['file\u size']
感谢您分享我的知识,我很感激。很高兴您能赏识我