2014-10-27 3 views

ответ

0

@Hassan Zaheer

Если вы используете fields.binary, то вы можете иметь эту функцию, при использовании двоичного поля, не используйте любой виджет с полем, и вы заметите, что odoo будет конвертировать ваш закачанный изображение в URL-адрес, который вы можете щелкнуть и загрузить.

Здесь приведен пример самовычислимого двоичного поля.

import base64 
from osv import osv, fields 

class my_class(osv.osv_memory): 

    def get_file(self, cr, uid, ids, field_name=None, arg=None, context=None): 
     result = dict.fromkeys(ids) 
     for record_browse in self.browse(cr, uid, ids): 
      f = open(record_browse.file_path) 
      result[record_browse.id] = base64.encodestring(f.read()) 
      f.close() 
     return result 

    _name = 'my.class' 

    _columns = { 
     'file_path': fields.char('File Location', size=128), 
     'file': fields.function(get_file, method=True, store=False, type='binary', string="Download File"), 
    } 

или вы можете добавить простой field.binary как:

'filedata': fields.binary('Label',filters='*.xml'), 

И добавить поле на просмотр, который будет отображаться как загружаемое URL.

+1

Что такое фильтры = '*. Xml' в определении двоичного поля? – StackUP

+0

Когда я это делаю, изображение загрузки не находится в формате png. Когда я пытаюсь открыть загруженный файл, я должен выбрать, через какую программу я хочу его открыть. –

Смежные вопросы