diff --git a/CHANGES.rst b/CHANGES.rst index e37c172..7e6039d 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -10,6 +10,7 @@ master (unreleased) always be set equal to created to make querying easier. Fixes GH-254 - Support `reversed` for all kinds of `Choices` objects, fixes GH-309 - Fix Model instance non picklable GH-330 +- Fix patched `save` in FieldTracker 3.1.2 (2018.05.09) ------------------ diff --git a/model_utils/tracker.py b/model_utils/tracker.py index 0059224..837e1ce 100644 --- a/model_utils/tracker.py +++ b/model_utils/tracker.py @@ -236,8 +236,8 @@ class FieldTracker(object): def patch_save(self, model): original_save = model.save - def save(instance, **kwargs): - ret = original_save(instance, **kwargs) + def save(instance, *args, **kwargs): + ret = original_save(instance, *args, **kwargs) update_fields = kwargs.get('update_fields') if not update_fields and update_fields is not None: # () or [] fields = update_fields diff --git a/tests/settings.py b/tests/settings.py index a8d231c..e34c891 100644 --- a/tests/settings.py +++ b/tests/settings.py @@ -10,6 +10,7 @@ DATABASES = { "NAME": os.environ.get("DJANGO_DATABASE_NAME_POSTGRES", "modelutils"), "USER": os.environ.get("DJANGO_DATABASE_USER_POSTGRES", 'postgres'), "PASSWORD": os.environ.get("DJANGO_DATABASE_PASSWORD_POSTGRES", ""), + "HOST": os.environ.get("DJANGO_DATABASE_HOST_POSTGRES", ""), }, } SECRET_KEY = 'dummy' diff --git a/tests/test_fields/test_field_tracker.py b/tests/test_fields/test_field_tracker.py index 65a2bfe..5b5d5c2 100644 --- a/tests/test_fields/test_field_tracker.py +++ b/tests/test_fields/test_field_tracker.py @@ -85,6 +85,11 @@ class FieldTrackerTests(FieldTrackerTestCase, FieldTrackerCommonTests): self.instance.mutable = [1, 2, 3] self.assertHasChanged(name=True, number=True, mutable=True) + def test_save_with_args(self): + self.instance.number = 1 + self.instance.save(False, False, None, None) + self.assertChanged() + def test_first_save(self): self.assertHasChanged(name=True, number=False, mutable=False) self.assertPrevious(name=None, number=None, mutable=None)