跳至內容
選單
此問題已被標幟
1 回覆
1692 瀏覽次數

I want to override/extend the execute_import from the model base_import.import.

Base Code:

class Import(models.TransientModel):
​_name = 'base_import.import'

​def execute_import(self, fields, columns, options, dryrun=False):
​//some code
import_result = model.load(import_fields, merged_data)
​return import_result​

From the above code, i want to override and do some of my own logic using 'import_result'.

Here's what I've done(Inherited code):

class Import(models.TransientModel):
​_inherit = 'base_import.import

​def execute_import(self, fields, columns, options, dryrun=False):
​res_import = super(Import, self).execute_import(fields, columns, options, dryrun)
​// here i need to use import_result values
result = import_result.get('ids')​

How to access import_result in inherited method.


Thank you


頭像
捨棄
最佳答案

To override the execute_import method and use the import_result in your inherited method, you need to ensure that you correctly call the super method and then perform your additional logic using the import_result returned by the super method.

Here's how you can achieve that:

class Import(models.TransientModel):
    _inherit = 'base_import.import'

    def execute_import(self, fields, columns, options, dryrun=False):
        # Call the super method and store the result
        import_result = super(Import, self).execute_import(fields, columns, options, dryrun)
        
        # Perform your custom logic with the import_result
        if 'ids' in import_result:
            result_ids = import_result['ids']
            # Your custom logic using result_ids
            # For example, log the imported IDs
            _logger.info(f"Imported IDs: {result_ids}")
        
        # Return the result of the import
        return import_result


頭像
捨棄
相關帖文 回覆 瀏覽次數 活動
2
5月 25
990
4
7月 25
1513
1
7月 25
778
4
5月 25
4619
1
4月 25
835