From 98f078d718aca346d26a38eb1efc79b1be3598c9 Mon Sep 17 00:00:00 2001 From: Trey Hunner Date: Mon, 29 Jul 2013 12:54:49 -0700 Subject: [PATCH] Allow FieldTracker to work in child models Fixes #57. --- model_utils/tracker.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/model_utils/tracker.py b/model_utils/tracker.py index 31fd0f2..39db70c 100644 --- a/model_utils/tracker.py +++ b/model_utils/tracker.py @@ -70,10 +70,13 @@ class FieldTracker(object): if self.fields is None: self.fields = [field.attname for field in sender._meta.local_fields] self.field_map = self.get_field_map(sender) - models.signals.post_init.connect(self.initialize_tracker, sender=sender) + models.signals.post_init.connect(self.initialize_tracker) + self.model_class = sender setattr(sender, self.name, self) def initialize_tracker(self, sender, instance, **kwargs): + if not isinstance(instance, self.model_class): + return # Only init instances of given model (including children) tracker = self.tracker_class(instance, self.fields, self.field_map) setattr(instance, self.attname, tracker) tracker.set_saved_fields()