Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
1 Trả lời
11961 Lượt xem

I have a binary field, and I want to allow the user to upload only zip files to it. I'm trying to do it this way:

source_file = fields.Binary('Source File', filters='*.zip')

But I've read that this only worked for the old GTK Client. Is there a great way to manage this on version 8?

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

Hi,

I'm with the same problem and don't find a solution as simple as the one you mention. But there is a solution as i think simple enough : use the api.constrains. Here is my modus operandi:


1) I save the file's name

My model:

files = fields.Binary(string="Download Zip")
filename = fields.Char()

My view:

<field name="filename" invisible="1" />
<field name="files" filename="filename" />


2) I use the api.constrains to verify the extension

@api.one
@api.constrains('filename')
def _check_filename(self):
    if self.files:
        if not self.filename:
	    raise exceptions.ValidationError(_("There is no file"))
	else:
	    # Check the file's extension
	    tmp = self.filename.split('.')
	    ext = tmp[len(tmp)-1]
	    if ext != 'zip':
	        raise exceptions.ValidationError(_("The file must be a zip file"))


I know, it's not a very beautiful way to do it but it's an alternative solution to your problem.

Hope that help you.

Ảnh đại diện
Huỷ bỏ

Yes nice ....post its working...

Bài viết liên quan Trả lời Lượt xem Hoạt động
1
thg 8 17
7630
0
thg 4 18
5545
0
thg 6 16
3782
1
thg 3 15
7095
0
thg 7 25
714