2

我使用文件存储模块,需要将文件上传到模块。在我的定义中,我使用

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"/>

它显示了已经加载到数据库文件中的输入下拉项,但我需要从本地计算机中选择文件。我做错了什么。(抱歉英语不好)

4

2 回答 2

2

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 存储真实的文件名,因为它存储在计算机上。然后只需将 write() 写入 ir.attachment 正确名称。Reely wize mans 说,要提出正确的问题,您至少需要知道一半的答案

于 2020-01-27T10:34:03.363 回答
1

您应该使用Binary字段类型并attachment=True让 Odoo 将文件作为普通附件处理(使用 Odoo 文件存储)。

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

attachment=True是 Odoo 13 中的默认设置,因此如果要将二进制数据保存在数据库中,则必须将其设置为False.

对于图像,有一个字段类型Image

于 2020-01-24T11:02:00.557 回答