/tests/regressiontests/custom_managers_regress/models.py
Python | 40 lines | 24 code | 10 blank | 6 comment | 0 complexity | c9c3784a0d7c346d9cf9eb47510834e5 MD5 | raw file
Possible License(s): BSD-3-Clause
- """
- Regression tests for custom manager classes.
- """
- from django.db import models
- class RestrictedManager(models.Manager):
- """
- A manager that filters out non-public instances.
- """
- def get_query_set(self):
- return super(RestrictedManager, self).get_query_set().filter(is_public=True)
- class RelatedModel(models.Model):
- name = models.CharField(max_length=50)
- def __unicode__(self):
- return self.name
- class RestrictedModel(models.Model):
- name = models.CharField(max_length=50)
- is_public = models.BooleanField(default=False)
- related = models.ForeignKey(RelatedModel)
- objects = RestrictedManager()
- plain_manager = models.Manager()
- def __unicode__(self):
- return self.name
- class OneToOneRestrictedModel(models.Model):
- name = models.CharField(max_length=50)
- is_public = models.BooleanField(default=False)
- related = models.OneToOneField(RelatedModel)
- objects = RestrictedManager()
- plain_manager = models.Manager()
- def __unicode__(self):
- return self.name