diff --git a/auditlog/models.py b/auditlog/models.py index 6811544..eccf6c7 100644 --- a/auditlog/models.py +++ b/auditlog/models.py @@ -240,7 +240,7 @@ class LogEntryManager(models.Manager): "fields", self._get_applicable_model_fields(instance, model_fields) ) - # safeguard: if fields explicitly set → only use them + # safeguard: if fields explicitly set → only use them if "fields" in kwargs: allowed_fields = set(kwargs["fields"]) else: @@ -248,9 +248,11 @@ class LogEntryManager(models.Manager): instance_copy = self._get_copy_with_python_typed_fields(instance) - # drop any deferred field not in allowed_fields + # drop any deferred field not in allowed_fields for f in instance_copy._meta.fields: - if f.name not in allowed_fields and f.name in getattr(instance_copy, "deferred_fields", []): + if f.name not in allowed_fields and f.name in getattr( + instance_copy, "deferred_fields", [] + ): setattr(instance_copy, f.name, None) data = dict( @@ -263,7 +265,6 @@ class LogEntryManager(models.Manager): return data - def _get_copy_with_python_typed_fields(self, instance): """ Attempt to create copy of instance and coerce types on instance fields diff --git a/auditlog_tests/tests.py b/auditlog_tests/tests.py index 1ce3dfd..d7f5546 100644 --- a/auditlog_tests/tests.py +++ b/auditlog_tests/tests.py @@ -21,11 +21,11 @@ from django.db.models import JSONField, Value from django.db.models.functions import Now from django.db.models.signals import pre_save from django.test import RequestFactory, TestCase, TransactionTestCase, override_settings +from django.test.utils import isolate_apps from django.urls import resolve, reverse from django.utils import dateformat, formats from django.utils import timezone as django_timezone from django.utils.encoding import smart_str -from django.test.utils import isolate_apps from django.utils.translation import gettext_lazy as _ from test_app.fixtures.custom_get_cid import get_cid as custom_get_cid from test_app.models import ( @@ -132,8 +132,9 @@ class SimpleModelTest(TestCase): class Book(models.Model): title = models.CharField(max_length=100) description = models.TextField() + class Meta: - app_label = "auditlog_tests" + app_label = "auditlog_tests" auditlog.register(Book, serialize_data=True) @@ -142,8 +143,6 @@ class SimpleModelTest(TestCase): b.delete() assert LogEntry.objects.filter(object_pk=b.pk).exists() - - def test_update_specific_field_supplied_via_save_method(self): obj = self.obj