Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create new FieldTracker that works well with foreign keys #52

Merged
merged 15 commits into from
Jun 3, 2013
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion model_utils/__init__.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
from .choices import Choices
from .tracker import ModelTracker
from .tracker import FieldTracker, ModelTracker
44 changes: 41 additions & 3 deletions model_utils/tests/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from django.utils.translation import ugettext_lazy as _

from model_utils.models import TimeStampedModel, StatusModel, TimeFramedModel
from model_utils.tracker import ModelTracker
from model_utils.tracker import FieldTracker, ModelTracker
from model_utils.managers import QueryManager, InheritanceManager, PassThroughManager
from model_utils.fields import SplitField, MonitorField, StatusField
from model_utils import Choices
Expand Down Expand Up @@ -225,20 +225,58 @@ class Tracked(models.Model):
name = models.CharField(max_length=20)
number = models.IntegerField()

tracker = ModelTracker()
tracker = FieldTracker()


class TrackedFK(models.Model):
fk = models.ForeignKey('Tracked')

tracker = FieldTracker()
custom_tracker = FieldTracker(fields=['fk_id'])
custom_tracker_without_id = FieldTracker(fields=['fk'])


class TrackedNotDefault(models.Model):
name = models.CharField(max_length=20)
number = models.IntegerField()

name_tracker = ModelTracker(fields=['name'])
name_tracker = FieldTracker(fields=['name'])


class TrackedMultiple(models.Model):
name = models.CharField(max_length=20)
number = models.IntegerField()

name_tracker = FieldTracker(fields=['name'])
number_tracker = FieldTracker(fields=['number'])


class ModelTracked(models.Model):
name = models.CharField(max_length=20)
number = models.IntegerField()

tracker = ModelTracker()


class ModelTrackedFK(models.Model):
fk = models.ForeignKey('ModelTracked')

tracker = ModelTracker()
custom_tracker = ModelTracker(fields=['fk_id'])
custom_tracker_without_id = ModelTracker(fields=['fk'])


class ModelTrackedNotDefault(models.Model):
name = models.CharField(max_length=20)
number = models.IntegerField()

name_tracker = ModelTracker(fields=['name'])


class ModelTrackedMultiple(models.Model):
name = models.CharField(max_length=20)
number = models.IntegerField()

name_tracker = ModelTracker(fields=['name'])
number_tracker = ModelTracker(fields=['number'])

Expand Down
Loading