Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Changing the Filename of a Uploaded Binary File Field

I'm using Odoo8

I have a question I used the fields.binary to upload a file/s in Odoo. But when I try to download it the filename of the uploaded file is the model name.

Is it possible to change the filename of the file?

And second the filters attribute in fields does not work.

like image 421
Black and White Avatar asked Sep 26 '22 15:09

Black and White


2 Answers

My Solution to this matter/problem, create first a compute field and its function

.py

filename = fields.Char('file name', readonly = True,store = False,compute ='legacy_doc1_getFilename')

@api.one
def legacy_doc1_getFilename(self):

    if len(self.employee_number) > 0:
        self.filename = str(self.employee_number) + '_ConfidentialReports.pdf'
    else:
        self.filename = 'filename_ConfidentialReports.pdf'

and in XML file just add the attribute file and the field

<page string="Legacy Documents">
    <group>
        <field name="filename" readonly="1" invisible="1"/>
        <field name="legacy_doc_1" filename="filename"/>
    </group>
</page>
like image 96
Black and White Avatar answered Oct 22 '22 02:10

Black and White


I had the same problem and the following solution sovled it:

class MyModel(models.Model):
    _name = 'my.model'

    name = fields.Char(string='Name')
    image = fields.Binary(string='Image', required=True)
    image_filename = fields.Char(string='Image Filename')

in xml:

<field name="name" />
<field name="image_filename" invisible="1"/>
<field widget="binary" height="64" name="image" filename="image_filename" />

And, here is the result:

enter image description here

like image 36
Andromida Avatar answered Oct 22 '22 03:10

Andromida