Я сейчас нахожусь в odoo 11 Я занимаюсь разработкой пользовательского модуля. Я создал кнопку, которая выполняет рендеринг вида мастера, в этом окне мастера есть двоичное поле .... Я хочу, чтобы когда я нажимал кнопку Я сгенерирую изображение или текст и добавлю его в двоичное поле, которое позволит мне загрузить текст или изображение ниже. Я покажу вам следующий пример:
Это кнопка, которую я создал:
введите описание изображения здесь
При указании клика muentra следующее:
введите описание изображения здесь
Ну, проблема в следующем:
Когда я создаю свое двоичное поле в моей модели:
class RegisterBulk (models.Model):
_name = 'stock.order.package'
n_bulk = fields.Integer(string = 'n° Nulto')
n_order = fields.Char(string = 'n° Pedido')
weight = fields.Float(string = 'Peso' , required = True)
context_products = fields.Many2many('stock.table.products',string = 'Productos')
bar_bulk = fields.Char(string = 'Codigo del Bulto')
file = fields.Binary('Etiqueta' ,readonly = True)
который называется file, и в моем xml я думаю это следующим образом:
<div class="col-xs-6">
<field name="file" filename="sale_order_data" />
</div>
Я хочу, чтобы при открытии мастера файл загружался, чтобы иметь возможность его скачать, я пытаюсь сделать это способом, созданным моей кнопкой:
pdf_file = open('data.txt', 'w+')
if pdf_file:
print "paso"
salida = 'PRuebaaaaaaaaaa'
pdf_file.write(salida)
return {
'name': ('Regsitro de Bulto'),
'view_type': 'form',
'view_mode': 'form',
'res_model': 'stock.order.package',
'view_id': False,
'type': 'ir.actions.act_window',
'target': 'new',
'context': {
'default_n_order': self.name,
'default_n_bulk': t_bulk ,
'default_context_products': products,
'default_bar_bulk': code,
'default_file': base64.encodestring(pdf_file),
},
}
но когда я нажимаю кнопку, я получаю эту ошибку:
File "c:\python27\Lib\base64.py", line 320, in encodestring
for i in range(0, len(s), MAXBINSIZE):
TypeError: object of type 'file' has no len()
наконец, сейчас я просто пытаюсь передать txt, идеал - это изображение, которое я создам с помощью библиотеки pillow и zpl, но чтобы иметь представление о том, что я делаю с txt, но я получаю упомянутую ошибку выше.