From e0c96635b45b4a20d76c3e7592c0fd7628f35b8f Mon Sep 17 00:00:00 2001 From: Samuel Pattuzzi Date: Wed, 22 Nov 2023 11:49:16 +0000 Subject: [PATCH] Handle errors with no message_dict Some ValidationErrors will not have a message_dict. Currently this code throws if this is the case. This will allow the error to be properly logged. --- import_export_celery/tasks.py | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/import_export_celery/tasks.py b/import_export_celery/tasks.py index 8869a4c..621c5b9 100644 --- a/import_export_celery/tasks.py +++ b/import_export_celery/tasks.py @@ -142,17 +142,24 @@ def before_import_row(self, row, **kwargs): cols = lambda row: "".join( [str(field) for field in row.values] ) - cols_error = lambda row: "".join( - [ - "" - + key - + "" - + "
" - + row.error.message_dict[key][0] - + "
" - for key in row.error.message_dict.keys() - ] - ) + + def cols_error(row): + if hasattr(row.error, 'message_dict'): + return "".join( + [ + "" + + key + + "" + + "
" + + row.error + + row.error.message_dict[key][0] + + "
" + for key in row.error.message_dict.keys() + ] + ) + else: + return str(row.error) + summary += ( "row" + "errors"