summaryrefslogtreecommitdiff
path: root/tests/regressiontests/forms/models.py
diff options
context:
space:
mode:
authorMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2007-10-20 13:01:40 +0000
committerMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2007-10-20 13:01:40 +0000
commitf20b254cccfecccaf81df8851790a0e033245d47 (patch)
tree32ebee9876fd87db70bfbee331daae028b430670 /tests/regressiontests/forms/models.py
parentb7687fae2d04c3cee88b0c707f9f2c2176e3f515 (diff)
Fixed #899 -- Use model field default values as formfield initial values in
form_for_model(). Patch from David Danier and PhiR. Thanks. git-svn-id: http://code.djangoproject.com/svn/django/trunk@6568 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests/regressiontests/forms/models.py')
-rw-r--r--tests/regressiontests/forms/models.py50
1 files changed, 39 insertions, 11 deletions
diff --git a/tests/regressiontests/forms/models.py b/tests/regressiontests/forms/models.py
index f4f8607193..71dfff0a80 100644
--- a/tests/regressiontests/forms/models.py
+++ b/tests/regressiontests/forms/models.py
@@ -1,21 +1,49 @@
+import datetime
+
from django.db import models
-class BoundaryModel(models.Model):
+class BoundaryModel(models.Model):
positive_integer = models.PositiveIntegerField(null=True, blank=True)
-
+
+class Defaults(models.Model):
+ name = models.CharField(max_length=256, default='class default value')
+ date = models.DateField(default = datetime.date(1980, 1, 1))
+ value = models.IntegerField(default=42)
+
__test__ = {'API_TESTS': """
->>> from django.newforms import form_for_model
+>>> from django.newforms import form_for_model, form_for_instance
# Boundary conditions on a PostitiveIntegerField #########################
->>> BoundaryForm = form_for_model(BoundaryModel)
->>> f = BoundaryForm({'positive_integer':100})
->>> f.is_valid()
+>>> BoundaryForm = form_for_model(BoundaryModel)
+>>> f = BoundaryForm({'positive_integer':100})
+>>> f.is_valid()
True
->>> f = BoundaryForm({'positive_integer':0})
->>> f.is_valid()
+>>> f = BoundaryForm({'positive_integer':0})
+>>> f.is_valid()
True
->>> f = BoundaryForm({'positive_integer':-100})
->>> f.is_valid()
+>>> f = BoundaryForm({'positive_integer':-100})
+>>> f.is_valid()
False
-"""} \ No newline at end of file
+# Formfield initial values ########
+If the model has default values for some fields, they are used as the formfield
+initial values.
+>>> DefaultsForm = form_for_model(Defaults)
+>>> DefaultsForm().fields['name'].initial
+u'class default value'
+>>> DefaultsForm().fields['date'].initial
+datetime.date(1980, 1, 1)
+>>> DefaultsForm().fields['value'].initial
+42
+
+In form_for_instance(), the initial values come from the instance's values, not
+the model's defaults.
+>>> foo_instance = Defaults(name=u'instance value', date = datetime.date(1969, 4, 4), value = 12)
+>>> InstanceForm = form_for_instance(foo_instance)
+>>> InstanceForm().fields['name'].initial
+u'instance value'
+>>> InstanceForm().fields['date'].initial
+datetime.date(1969, 4, 4)
+>>> InstanceForm().fields['value'].initial
+12
+"""}