Skip to Content
Meniu
Trebuie să fiți înregistrat pentru a interacționa cu comunitatea.
Această întrebare a fost marcată
1 Răspunde
11841 Vizualizări

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?

Imagine profil
Abandonează
Cel mai bun răspuns

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.

Imagine profil
Abandonează

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

Related Posts Răspunsuri Vizualizări Activitate
1
aug. 17
7525
0
apr. 18
5445
0
iun. 16
3693
1
mar. 15
7004
1
mai 25
1046