summaryrefslogtreecommitdiff
path: root/tests/custom_managers/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/custom_managers/models.py')
-rw-r--r--tests/custom_managers/models.py14
1 files changed, 13 insertions, 1 deletions
diff --git a/tests/custom_managers/models.py b/tests/custom_managers/models.py
index f90425db3c..ca2e14b047 100644
--- a/tests/custom_managers/models.py
+++ b/tests/custom_managers/models.py
@@ -25,6 +25,13 @@ class PublishedBookManager(models.Manager):
return super().get_queryset().filter(is_published=True)
+class AnnotatedBookManager(models.Manager):
+ def get_queryset(self):
+ return super().get_queryset().annotate(
+ favorite_avg=models.Avg('favorite_books__favorite_thing_id')
+ )
+
+
class CustomQuerySet(models.QuerySet):
def filter(self, *args, **kwargs):
queryset = super().filter(fun=True)
@@ -131,7 +138,6 @@ class Book(models.Model):
title = models.CharField(max_length=50)
author = models.CharField(max_length=30)
is_published = models.BooleanField(default=False)
- published_objects = PublishedBookManager()
authors = models.ManyToManyField(Person, related_name='books')
fun_authors = models.ManyToManyField(FunPerson, related_name='books')
favorite_things = GenericRelation(
@@ -145,6 +151,12 @@ class Book(models.Model):
object_id_field='favorite_thing_id',
)
+ published_objects = PublishedBookManager()
+ annotated_objects = AnnotatedBookManager()
+
+ class Meta:
+ base_manager_name = 'annotated_objects'
+
def __str__(self):
return self.title