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.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/custom_managers/models.py b/tests/custom_managers/models.py
index cba375f4d7..26d848b7c0 100644
--- a/tests/custom_managers/models.py
+++ b/tests/custom_managers/models.py
@@ -11,6 +11,7 @@ returns.
from __future__ import unicode_literals
+from django.contrib.contenttypes import generic
from django.db import models
from django.utils.encoding import python_2_unicode_compatible
@@ -63,12 +64,28 @@ class BaseCustomManager(models.Manager):
CustomManager = BaseCustomManager.from_queryset(CustomQuerySet)
+class FunPeopleManager(models.Manager):
+ def get_queryset(self):
+ return super(FunPeopleManager, self).get_queryset().filter(fun=True)
+
+class BoringPeopleManager(models.Manager):
+ def get_queryset(self):
+ return super(BoringPeopleManager, self).get_queryset().filter(fun=False)
+
@python_2_unicode_compatible
class Person(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
fun = models.BooleanField(default=False)
+
+ favorite_book = models.ForeignKey('Book', null=True, related_name='favorite_books')
+ favorite_thing_type = models.ForeignKey('contenttypes.ContentType', null=True)
+ favorite_thing_id = models.IntegerField(null=True)
+ favorite_thing = generic.GenericForeignKey('favorite_thing_type', 'favorite_thing_id')
+
objects = PersonManager()
+ fun_people = FunPeopleManager()
+ boring_people = BoringPeopleManager()
custom_queryset_default_manager = CustomQuerySet.as_manager()
custom_queryset_custom_manager = CustomManager('hello')
@@ -84,6 +101,9 @@ class Book(models.Model):
published_objects = PublishedBookManager()
authors = models.ManyToManyField(Person, related_name='books')
+ favorite_things = generic.GenericRelation(Person,
+ content_type_field='favorite_thing_type', object_id_field='favorite_thing_id')
+
def __str__(self):
return self.title