2016-05-15 12 views
8

Sto usando la versione Odoo 8.collegamento binario per il download del campo utilizzare in treeview o listview all'interno di un unico campo in Odoo

ho creato un nuovo modello chiamato enquiry_customer_date

In quel modello, ho impostato seguendo quattro campi.

  • partner_id (many2one),
  • enquiry_date (data),
  • file_name (char) e
  • excel_file (binario)

ho dato modello menzione rapporto One2Many con res .partner modello

Ho usato sotto il codice per i record di visualizzazione.

<field name="enquiry_from_customer_ids"> 
    <tree string="Enquiry Lines"> 
     <field name="enquiry_date"/> 
     <field name="file_name" invisible="1"/> 
     <field name="excel_file" filename="file_name"/> 
    </tree>  
</field> 

Questo visualizzerà il nome file corretto nella visualizzazione elenco.

Viso Problema:

Quando scarico collegamento, memorizza con il nome del file = base64 con .bin estensione.

Domanda:

Come arrivare a lavorare link di download uguale al nome file caricato con l'estensione in One2Many campo?

AGGIORNATO

Ho provato con risposta @danidee. parametro di configurazione

Sistema:

System configuration parameter

Treeview/Listview campo One2Many

Treeview/Listview one2many field

OUTPUT:

enter image description here

Uscita prevista:

Il file deve essere scaricato con "Openerp_Customization_Needed.txt"

risposta

1

Con i file e le attachements predefiniti vengono memorizzati nel DB come file binari, ma è possibile modificare questo comportamento impostando il ir_attachement.location parametro

Got a Settings/Parameters/System Parameters, cercare ir_attachment.location esso deve essere impostato su db cambiamento a

file:///filestore

nota che gli allegati ei file esistenti verranno comunque memorizzati nel database, ma qualsiasi nuovo allegato o file caricato verranno archiviati nel file system, che dovrebbe consentire di scaricare il file nella sua forma originale come desiderato

+0

Grazie per la risposta. Ho controllato sul mio server. Non ho valore come descrivi. Ho creato manualmente secondo il tuo suggerimento. E non sta funzionando. Sto ancora ricevendo qualcosa * nome * base64 * con estensione * .bin *. –

+0

hai controllato il percorso del tuo server (dove è installato odoo), se la cartella 'filestore' è stata generata? e hai caricato un nuovo file per testarlo di nuovo ... perché quelli esistenti non verranno automaticamente convertiti nella loro forma originale. come per il nome del file 'Openerp_Customization_Needed.txt' non è possibile ottenere automaticamente che come vudù utilizza 'SHA1' per generare nomi di file univoci in modo da evitare duplicati – danidee

+0

non funziona. C'è qualche altro trucco nell'usare il codice Python? –

1

Sì, è possibile esportare il file come si è caricato tramite l'aggiunta di un pulsante nella vista ad albero invece di assegnare direttamente il nome del campo binario in treeview . Si prega di aggiungere sotto il codice nel modello enquiry_customer_date

@api.multi 
def export_file(self): 
    return { 
     'type' : 'ir.actions.act_url', 
     'url': '/web/binary/saveas?model=ir.attachment&field=datas&filename_field=self.file_name&id=%s' % (self.excel_file.id), 
     'target': 'self', 
     } 

Aggiungere il codice qui sotto nel file XML,

<field name="enquiry_from_customer_ids"> 
    <tree string="Enquiry Lines"> 
     <field name="enquiry_date"/> 
     <field name="file_name" invisible="1"/> 
     <field name="excel_file" filename="file_name"/> 
     <button name="export_file" string="Download" type="object" icon="gtk-ok" class="oe_highlight" /> 
    </tree>  
</field>  
+0

Grazie a @Niliesh per la tua risposta. Sì, possiamo farlo aggiungendo un nuovo pulsante. Per favore, leggi attentamente la mia domanda. Riguarda * "Donwload link" * Apri il modulo ir.attachment. Nella vista modulo è possibile visualizzare il file come * "Donwload File_name" * Se si fa clic su di esso, verrà salvato nel computer locale. Questo comportamento non è lo stesso con il campo * one2many * –

Problemi correlati