我有一个二进制字段,我想将上传文件的大小限制在1MB以下。我该怎么做。
binary_field = fields.Binary(string="Upload Image")
二进制字段的文件大小受max_upload_size的限制,max_upload _size设置为会话max_file_upload_size
或默认值128 Mb,可以使用系统参数web.max_file_pload_sze 进行更改
最大上传大小是硬编码的,不能从二进制字段中指定
您可以扩展现有的二进制字段,并根据字段属性设置最大文件大小。
示例:
/** @odoo-module */
import fieldRegistry from 'web.field_registry';
import basicFields from 'web.basic_fields';
import session from 'web.session';
var CustomFieldBinaryFile = basicFields.FieldBinaryFile.extend({
init: function (parent, name, record) {
this._super.apply(this, arguments);
if(this.attrs.max_upload_size) {
this.max_upload_size = this.attrs.max_upload_size;
}
},
});
var CustomFieldBinaryImage = basicFields.FieldBinaryImage.extend({
init: function (parent, name, record) {
this._super.apply(this, arguments);
if(this.attrs.max_upload_size) {
this.max_upload_size = this.attrs.max_upload_size;
}
},
});
fieldRegistry.add('custom_binary', CustomFieldBinaryFile);
fieldRegistry.add('custom_binary_image', CustomFieldBinaryImage);
将js文件添加到web.assets_backend
下的清单文件中的assets
条目
要使用它,请在二进制字段标签上设置以下属性:widget
和max_upload_size
示例:
<field name="binary_field" widget='custom_binary' max_upload_size="1048576"/>