Kaydet (Commit) 3daae59a authored tarafından Adrian Holovaty's avatar Adrian Holovaty

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
üst 1bf991ab
""" """
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): ...@@ -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):
......
""" """
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): ...@@ -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): ...@@ -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')
......
""" """
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
......
""" """
XX. Model inheritance XX. Model inheritance
Model inheritance isn't yet supported.
""" """
from django.db import models from django.db import models
......
""" """
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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment