From ba5f9a9f3676f02ebf4d390d6a5610a09e8da636 Mon Sep 17 00:00:00 2001 From: Jonathan Weth <git@jonathanweth.de> Date: Tue, 1 Feb 2022 23:48:24 +0100 Subject: [PATCH] Use raw field name instead of relation name for field tracker django-model-utils' documentation states that using the relation is not stable in all situations. --- CHANGELOG.rst | 5 +++++ aleksis/core/models.py | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index aa9e24b50..244647562 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -9,6 +9,11 @@ and this project adheres to `Semantic Versioning`_. Unreleased ---------- +Fixed +~~~~~ + +* Apps which track changes to models didn't work. + `2.7.2`_ - 2022-01-31 --------------------- diff --git a/aleksis/core/models.py b/aleksis/core/models.py index edc92c0fc..d8f63e606 100644 --- a/aleksis/core/models.py +++ b/aleksis/core/models.py @@ -316,7 +316,7 @@ class Person(ExtensibleModel): def initials(self): return f"{self.first_name[0]}{self.last_name[0]}".upper() - user_info_tracker = FieldTracker(fields=("first_name", "last_name", "email", "user")) + user_info_tracker = FieldTracker(fields=("first_name", "last_name", "email", "user_id")) @property def member_of_recursive(self) -> QuerySet: @@ -341,9 +341,9 @@ class Person(ExtensibleModel): super().save(*args, **kwargs) if self.pk is None or bool(changed): - if "user" in changed: + if "user_id" in changed: # Clear groups of previous Django user - previous_user = changed["user"] + previous_user = changed["user_id"] if previous_user is not None: get_user_model().objects.get(pk=previous_user).groups.clear() @@ -355,7 +355,7 @@ class Person(ExtensibleModel): self.user.email = self.email self.user.save() - if "user" in changed: + if "user_id" in changed: # Synchronise groups to Django groups for group in self.member_of.union(self.owner_of.all()).all(): group.save(force=True) -- GitLab