2017-10-20 168 views
0

我想給導入/導出操作給odoo 10中的自定義按鈕,在csv文件或excel文件中。 如何做到這一點?如何將導入動作賦予odoo中的按鈕?

謝謝

+0

爲什麼你不想使用Odoo的默認導出csv? – jo541

+0

我可以使用默認導入按鈕導入/導出文件。但我想將導入按鈕放入嚮導中。 @ jo541 – Naveen

回答

2

當你點擊該按鈕出口的方法調用是export_data

你可以看到在文件夾中的文件models.py代碼/odoo/odoo/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 

用於導入。您必須使用模型的創建方法。

@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) 
+0

進口呢? @ jo541 – Naveen

+0

我編輯我的答案 – jo541

+0

謝謝。但我無法理解這一行: datas = data_from_your_csv(self.file)@ jo541 – Naveen