ir.attachment в другой модели может смотреть по-разному - PullRequest
2 голосов
/ 24 января 2020

Я работаю с модулем хранения файлов и мне нужно загрузить файлы в модуль. В моем определении я использую

class TestClass(models.TransientModel):
_name = "module_name.test_class"

  attachment_id = fields.Many2one(
    comodel_name='ir.attachment',
    string="newFileVersion",
    index=True,
    copy=False
 )

Когда я использую в xml

<field name="attachment_id"/>

, он показывает элемент выпадающего ввода с уже загруженными в файлы БД файлами, но мне нужно выбрать файлы из моего локальный компьютер. Что я сделал не так. (Извините за плохой английский sh)

Ответы [ 2 ]

1 голос
/ 27 января 2020

CZoellner, я нашел еще одно решение: в py

file = fields.Binary("Attachment")
file_name = fields.Char("File Name")

в xml

<field name="file" filename="file_name"/>
<field name="file_name"/>

в этом случае file_name хранит реальное имя файла, как оно хранится на компьютере. А затем просто напишите () в ir.attachment правильное имя. Reely Wize Mans сказал, что чтобы задать правильный вопрос, вам нужно знать, по крайней мере, половину ответа

1 голос
/ 24 января 2020

Вы должны использовать Binary тип поля и attachment=True, чтобы позволить Odoo использовать файлы как обычные вложения (используя хранилище файлов Odoo).

my_file = fields.Binary(string="My File", attachment=True)

attachment=True по умолчанию в Odoo 13 поэтому, если вы хотите сохранить двоичные данные в базе данных, вы должны установить их на False.

Для изображений есть поле типа Image.

...