From dd78a1cdca2c27bad74bcebf74de7310aed78547 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Wed, 21 Sep 2022 13:58:56 -0500 Subject: [PATCH 1/2] _safe_revert: Add a logging traceback for IntegrityError This will be helpful @reversion.register users that explicitly declare their fields. Fixes #750 --- reversion/models.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/reversion/models.py b/reversion/models.py index 45767cd2..9948f378 100644 --- a/reversion/models.py +++ b/reversion/models.py @@ -1,5 +1,6 @@ from collections import defaultdict from itertools import chain, groupby +import logging import django from django.apps import apps @@ -22,6 +23,9 @@ _get_content_type, _get_options) +logger = logging.getLogger(__name__) + + def _safe_revert(versions): unreverted_versions = [] for version in versions: @@ -29,6 +33,7 @@ def _safe_revert(versions): with transaction.atomic(using=version.db): version.revert() except (IntegrityError, ObjectDoesNotExist): + logger.exception('Could not revert to {version}') unreverted_versions.append(version) if len(unreverted_versions) == len(versions): raise RevertError(gettext("Could not save %(object_repr)s version - missing dependency.") % { From 7546b25c605bf038df3b6f8f856c12fd94ae57b1 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sat, 24 Sep 2022 17:49:07 -0500 Subject: [PATCH 2/2] _safe_revert: Decrease log level to warning Co-authored-by: Dave Hall --- reversion/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reversion/models.py b/reversion/models.py index 9948f378..f93a34d0 100644 --- a/reversion/models.py +++ b/reversion/models.py @@ -33,7 +33,7 @@ def _safe_revert(versions): with transaction.atomic(using=version.db): version.revert() except (IntegrityError, ObjectDoesNotExist): - logger.exception('Could not revert to {version}') + logger.warning('Could not revert to {version}', exc_info=True) unreverted_versions.append(version) if len(unreverted_versions) == len(versions): raise RevertError(gettext("Could not save %(object_repr)s version - missing dependency.") % {