diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index aa9e24b50ca411a7bce65883b66b41fc262a17c2..244647562a60cfc052a98175d3e2482351260bd0 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 edc92c0fc68a7b495e844cf3f24821eafe2bfc95..d8f63e606073f92e8db799206012cfc9a998a5d8 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)