Added blurbs to the model unit tests that didn't have them
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3028 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
1bf991abb3
commit
3daae59aab
|
@ -1,5 +1,12 @@
|
||||||
"""
|
"""
|
||||||
23. Giving models a custom manager
|
23. Giving models a custom manager
|
||||||
|
|
||||||
|
You can use a custom ``Manager`` in a particular model by extending the base
|
||||||
|
``Manager`` class and instantiating your custom ``Manager`` in your model.
|
||||||
|
|
||||||
|
There are two reasons you might want to customize a ``Manager``: to add extra
|
||||||
|
``Manager`` methods, and/or to modify the initial ``QuerySet`` the ``Manager``
|
||||||
|
returns.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
@ -19,7 +26,7 @@ class Person(models.Model):
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "%s %s" % (self.first_name, self.last_name)
|
return "%s %s" % (self.first_name, self.last_name)
|
||||||
|
|
||||||
# An example of a custom manager that sets a core_filter on its lookups.
|
# An example of a custom manager that sets get_query_set().
|
||||||
|
|
||||||
class PublishedBookManager(models.Manager):
|
class PublishedBookManager(models.Manager):
|
||||||
def get_query_set(self):
|
def get_query_set(self):
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
"""
|
"""
|
||||||
26. A test to check that the model validator works can correctly identify errors in a model.
|
26. Invalid models
|
||||||
|
|
||||||
|
This example exists purely to point out errors in models.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
@ -11,16 +13,16 @@ class FieldErrors(models.Model):
|
||||||
prepopulate = models.CharField(maxlength=10, prepopulate_from='bad')
|
prepopulate = models.CharField(maxlength=10, prepopulate_from='bad')
|
||||||
choices = models.CharField(maxlength=10, choices='bad')
|
choices = models.CharField(maxlength=10, choices='bad')
|
||||||
choices2 = models.CharField(maxlength=10, choices=[(1,2,3),(1,2,3)])
|
choices2 = models.CharField(maxlength=10, choices=[(1,2,3),(1,2,3)])
|
||||||
index = models.CharField(maxlength=10, db_index='bad')
|
index = models.CharField(maxlength=10, db_index='bad')
|
||||||
|
|
||||||
class Target(models.Model):
|
class Target(models.Model):
|
||||||
tgt_safe = models.CharField(maxlength=10)
|
tgt_safe = models.CharField(maxlength=10)
|
||||||
|
|
||||||
clash1_set = models.CharField(maxlength=10)
|
clash1_set = models.CharField(maxlength=10)
|
||||||
|
|
||||||
class Clash1(models.Model):
|
class Clash1(models.Model):
|
||||||
src_safe = models.CharField(maxlength=10)
|
src_safe = models.CharField(maxlength=10)
|
||||||
|
|
||||||
foreign = models.ForeignKey(Target)
|
foreign = models.ForeignKey(Target)
|
||||||
m2m = models.ManyToManyField(Target)
|
m2m = models.ManyToManyField(Target)
|
||||||
|
|
||||||
|
@ -36,27 +38,27 @@ class Clash2(models.Model):
|
||||||
class Target2(models.Model):
|
class Target2(models.Model):
|
||||||
foreign_tgt = models.ForeignKey(Target)
|
foreign_tgt = models.ForeignKey(Target)
|
||||||
clashforeign_set = models.ForeignKey(Target)
|
clashforeign_set = models.ForeignKey(Target)
|
||||||
|
|
||||||
m2m_tgt = models.ManyToManyField(Target)
|
m2m_tgt = models.ManyToManyField(Target)
|
||||||
clashm2m_set = models.ManyToManyField(Target)
|
clashm2m_set = models.ManyToManyField(Target)
|
||||||
|
|
||||||
class Clash3(models.Model):
|
class Clash3(models.Model):
|
||||||
foreign_1 = models.ForeignKey(Target2, related_name='foreign_tgt')
|
foreign_1 = models.ForeignKey(Target2, related_name='foreign_tgt')
|
||||||
foreign_2 = models.ForeignKey(Target2, related_name='m2m_tgt')
|
foreign_2 = models.ForeignKey(Target2, related_name='m2m_tgt')
|
||||||
|
|
||||||
m2m_1 = models.ManyToManyField(Target2, related_name='foreign_tgt')
|
m2m_1 = models.ManyToManyField(Target2, related_name='foreign_tgt')
|
||||||
m2m_2 = models.ManyToManyField(Target2, related_name='m2m_tgt')
|
m2m_2 = models.ManyToManyField(Target2, related_name='m2m_tgt')
|
||||||
|
|
||||||
class ClashForeign(models.Model):
|
class ClashForeign(models.Model):
|
||||||
foreign = models.ForeignKey(Target2)
|
foreign = models.ForeignKey(Target2)
|
||||||
|
|
||||||
class ClashM2M(models.Model):
|
class ClashM2M(models.Model):
|
||||||
m2m = models.ManyToManyField(Target2)
|
m2m = models.ManyToManyField(Target2)
|
||||||
|
|
||||||
class SelfClashForeign(models.Model):
|
class SelfClashForeign(models.Model):
|
||||||
src_safe = models.CharField(maxlength=10)
|
src_safe = models.CharField(maxlength=10)
|
||||||
|
|
||||||
selfclashforeign_set = models.ForeignKey("SelfClashForeign")
|
selfclashforeign_set = models.ForeignKey("SelfClashForeign")
|
||||||
foreign_1 = models.ForeignKey("SelfClashForeign", related_name='id')
|
foreign_1 = models.ForeignKey("SelfClashForeign", related_name='id')
|
||||||
foreign_2 = models.ForeignKey("SelfClashForeign", related_name='src_safe')
|
foreign_2 = models.ForeignKey("SelfClashForeign", related_name='src_safe')
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
"""
|
"""
|
||||||
25. Default manipulators
|
25. Default manipulators
|
||||||
|
|
||||||
|
Each model gets an AddManipulator and ChangeManipulator by default.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
"""
|
"""
|
||||||
XX. Model inheritance
|
XX. Model inheritance
|
||||||
|
|
||||||
|
Model inheritance isn't yet supported.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
"""
|
"""
|
||||||
22. Using properties on models
|
22. Using properties on models
|
||||||
|
|
||||||
|
Use properties on models just like on any other Python object.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
|
Loading…
Reference in New Issue