Openerp 如何为odoo中的按钮提供导入操作?

Openerp 如何为odoo中的按钮提供导入操作?,openerp,python-import,odoo-10,import-from-excel,Openerp,Python Import,Odoo 10,Import From Excel,我想在odoo 10、csv文件或excel文件中为自定义按钮提供导入/导出操作。 怎么做 谢谢单击按钮导出时调用的方法是export\u data 您可以在/odoo/odoo/models.py文件夹中的models.py文件中看到代码 @api.multi def export_data(self, fields_to_export, raw_data=False): """ Export fields for selected objects :param fi

我想在odoo 10、csv文件或excel文件中为自定义按钮提供导入/导出操作。 怎么做


谢谢

单击按钮导出时调用的方法是
export\u data

您可以在/odoo/odoo/models.py文件夹中的models.py文件中看到代码

@api.multi
def export_data(self, fields_to_export, raw_data=False):
    """ Export fields for selected objects

        :param fields_to_export: list of fields
        :param raw_data: True to return value in native Python type
        :rtype: dictionary with a *datas* matrix

        This method is used when exporting data via client menu
    """
    fields_to_export = map(fix_import_export_id_paths, fields_to_export)
    if raw_data:
        self = self.with_context(export_raw_data=True)
    return {'datas': self._export_rows(fields_to_export)}
我不尝试,但我认为你必须这样做

@api.multi
def execute(self):
    model = "name_of_your_model_want_export"
    export_datas = self.env[model].export_data(['field1', 'field2'])
    # code to write to a file CSV of EXCEL
为了进口。您必须使用模型的create方法

@api.multi
def execute(self):
    # This function return list of dict like this 
    # [{'field1': 'Value1','field2': 'value2}, {'field1': 'Value1','field2': 'value2}]
    datas = data_from_your_csv(self.file) 
    model = "name_of_your_model_want_import"
    for data in datas:
        record = self.env[model].create(data)

单击“导出”按钮时调用的方法是
export\u data

您可以在/odoo/odoo/models.py文件夹中的models.py文件中看到代码

@api.multi
def export_data(self, fields_to_export, raw_data=False):
    """ Export fields for selected objects

        :param fields_to_export: list of fields
        :param raw_data: True to return value in native Python type
        :rtype: dictionary with a *datas* matrix

        This method is used when exporting data via client menu
    """
    fields_to_export = map(fix_import_export_id_paths, fields_to_export)
    if raw_data:
        self = self.with_context(export_raw_data=True)
    return {'datas': self._export_rows(fields_to_export)}
我不尝试,但我认为你必须这样做

@api.multi
def execute(self):
    model = "name_of_your_model_want_export"
    export_datas = self.env[model].export_data(['field1', 'field2'])
    # code to write to a file CSV of EXCEL
为了进口。您必须使用模型的create方法

@api.multi
def execute(self):
    # This function return list of dict like this 
    # [{'field1': 'Value1','field2': 'value2}, {'field1': 'Value1','field2': 'value2}]
    datas = data_from_your_csv(self.file) 
    model = "name_of_your_model_want_import"
    for data in datas:
        record = self.env[model].create(data)

为什么不想使用Odoo的默认导出csv?我可以使用默认导入按钮导入/导出文件。但我想将导入按钮放在向导中@JO541为什么不想使用Odoo的默认导出csv?我可以使用默认导入按钮导入/导出文件。但我想将导入按钮放在向导中@JO541进口怎么样@Jo541谢谢。但是我不能理解这行代码:datas=data\u from\u your\u csv(self.file)@jo541这行代码用于从您的csv获取所有信息。您需要读取CSV格式的数据[{'field1':'Value1','field2':'value2},{'field1':'Value1','field2':'value2}]导入呢@Jo541谢谢。但是我不能理解这行代码:datas=data\u from\u your\u csv(self.file)@jo541这行代码用于从您的csv获取所有信息。您需要读取CSV,格式数据如下[{'field1':'Value1','field2':'value2},{'field1':'Value1','field2':'value2}]