Loading tests/regressiontests/aggregation_regress/models.py +2 −2 Original line number Diff line number Diff line Loading @@ -24,7 +24,7 @@ class Publisher(models.Model): return self.name class TaggedItem(models.Model): class ItemTag(models.Model): tag = models.CharField(max_length=100) content_type = models.ForeignKey(ContentType) object_id = models.PositiveIntegerField() Loading @@ -42,7 +42,7 @@ class Book(models.Model): contact = models.ForeignKey(Author, related_name='book_contact_set') publisher = models.ForeignKey(Publisher) pubdate = models.DateField() tags = generic.GenericRelation(TaggedItem) tags = generic.GenericRelation(ItemTag) class Meta: ordering = ('name',) Loading tests/regressiontests/aggregation_regress/tests.py +5 −5 Original line number Diff line number Diff line Loading @@ -12,7 +12,7 @@ from django.test import TestCase, Approximate, skipUnlessDBFeature from django.utils import six from .models import (Author, Book, Publisher, Clues, Entries, HardbackBook, TaggedItem, WithManualPK) ItemTag, WithManualPK) class AggregationTests(TestCase): Loading Loading @@ -993,18 +993,18 @@ class AggregationTests(TestCase): tests aggregations with generic reverse relations """ b = Book.objects.get(name='Practical Django Projects') TaggedItem.objects.create(object_id=b.id, tag='intermediate', ItemTag.objects.create(object_id=b.id, tag='intermediate', content_type=ContentType.objects.get_for_model(b)) TaggedItem.objects.create(object_id=b.id, tag='django', ItemTag.objects.create(object_id=b.id, tag='django', content_type=ContentType.objects.get_for_model(b)) # Assign a tag to model with same PK as the book above. If the JOIN # used in aggregation doesn't have content type as part of the # condition the annotation will also count the 'hi mom' tag for b. wmpk = WithManualPK.objects.create(id=b.pk) TaggedItem.objects.create(object_id=wmpk.id, tag='hi mom', ItemTag.objects.create(object_id=wmpk.id, tag='hi mom', content_type=ContentType.objects.get_for_model(wmpk)) b = Book.objects.get(name__startswith='Paradigms of Artificial Intelligence') TaggedItem.objects.create(object_id=b.id, tag='intermediate', ItemTag.objects.create(object_id=b.id, tag='intermediate', content_type=ContentType.objects.get_for_model(b)) self.assertEqual(Book.objects.aggregate(Count('tags')), {'tags__count': 3}) Loading Loading
tests/regressiontests/aggregation_regress/models.py +2 −2 Original line number Diff line number Diff line Loading @@ -24,7 +24,7 @@ class Publisher(models.Model): return self.name class TaggedItem(models.Model): class ItemTag(models.Model): tag = models.CharField(max_length=100) content_type = models.ForeignKey(ContentType) object_id = models.PositiveIntegerField() Loading @@ -42,7 +42,7 @@ class Book(models.Model): contact = models.ForeignKey(Author, related_name='book_contact_set') publisher = models.ForeignKey(Publisher) pubdate = models.DateField() tags = generic.GenericRelation(TaggedItem) tags = generic.GenericRelation(ItemTag) class Meta: ordering = ('name',) Loading
tests/regressiontests/aggregation_regress/tests.py +5 −5 Original line number Diff line number Diff line Loading @@ -12,7 +12,7 @@ from django.test import TestCase, Approximate, skipUnlessDBFeature from django.utils import six from .models import (Author, Book, Publisher, Clues, Entries, HardbackBook, TaggedItem, WithManualPK) ItemTag, WithManualPK) class AggregationTests(TestCase): Loading Loading @@ -993,18 +993,18 @@ class AggregationTests(TestCase): tests aggregations with generic reverse relations """ b = Book.objects.get(name='Practical Django Projects') TaggedItem.objects.create(object_id=b.id, tag='intermediate', ItemTag.objects.create(object_id=b.id, tag='intermediate', content_type=ContentType.objects.get_for_model(b)) TaggedItem.objects.create(object_id=b.id, tag='django', ItemTag.objects.create(object_id=b.id, tag='django', content_type=ContentType.objects.get_for_model(b)) # Assign a tag to model with same PK as the book above. If the JOIN # used in aggregation doesn't have content type as part of the # condition the annotation will also count the 'hi mom' tag for b. wmpk = WithManualPK.objects.create(id=b.pk) TaggedItem.objects.create(object_id=wmpk.id, tag='hi mom', ItemTag.objects.create(object_id=wmpk.id, tag='hi mom', content_type=ContentType.objects.get_for_model(wmpk)) b = Book.objects.get(name__startswith='Paradigms of Artificial Intelligence') TaggedItem.objects.create(object_id=b.id, tag='intermediate', ItemTag.objects.create(object_id=b.id, tag='intermediate', content_type=ContentType.objects.get_for_model(b)) self.assertEqual(Book.objects.aggregate(Count('tags')), {'tags__count': 3}) Loading