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.