summaryrefslogtreecommitdiff
path: root/tests/regressiontests/modeladmin/models.py
diff options
context:
space:
mode:
authorBrian Rosner <brosner@gmail.com>2008-03-24 23:46:24 +0000
committerBrian Rosner <brosner@gmail.com>2008-03-24 23:46:24 +0000
commit937c6e1054d6d561b585abe1040a401dac3941ce (patch)
treef3b91b9c1612f3a99c84d0a7e572741e17819490 /tests/regressiontests/modeladmin/models.py
parent1d46d20038a8473fc2e75f832c770f17d558d0fc (diff)
newforms-admin: Fixed #6866 -- ModelAdmin.get_form and InlineModelAdmin.get_formset now uses BaseModelAdmin.form so the form class can be changed out very easily.
git-svn-id: http://code.djangoproject.com/svn/django/branches/newforms-admin@7360 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests/regressiontests/modeladmin/models.py')
-rw-r--r--tests/regressiontests/modeladmin/models.py24
1 files changed, 21 insertions, 3 deletions
diff --git a/tests/regressiontests/modeladmin/models.py b/tests/regressiontests/modeladmin/models.py
index 1036037dfb..5e67c873cd 100644
--- a/tests/regressiontests/modeladmin/models.py
+++ b/tests/regressiontests/modeladmin/models.py
@@ -4,6 +4,7 @@ from django.db import models
class Band(models.Model):
name = models.CharField(max_length=100)
bio = models.TextField()
+ sign_date = models.DateField()
__test__ = {'API_TESTS': """
@@ -26,7 +27,7 @@ for testing.
>>> ma = ModelAdmin(Band, site)
>>> ma.get_form(request).base_fields.keys()
-['name', 'bio']
+['name', 'bio', 'sign_date']
# form/fields/fieldsets interaction ##########################################
@@ -40,9 +41,9 @@ no fields argument, and no fieldsets argument.
>>> ma = ModelAdmin(Band, site)
>>> ma.get_fieldsets(request)
-[(None, {'fields': ['name', 'bio']})]
+[(None, {'fields': ['name', 'bio', 'sign_date']})]
>>> ma.get_fieldsets(request, band)
-[(None, {'fields': ['name', 'bio']})]
+[(None, {'fields': ['name', 'bio', 'sign_date']})]
If we specify the fields argument, fieldsets_add and fielsets_change should
@@ -85,7 +86,24 @@ displayed because you forgot to add it to fields/fielsets
['name']
+If we specify a form, it should use it allowing custom validation to work
+properly. This won't, however, break any of the admin widgets or media.
+>>> from django import newforms as forms
+>>> class AdminBandForm(forms.ModelForm):
+... delete = forms.BooleanField()
+...
+... class Meta:
+... model = Band
+
+>>> class BandAdmin(ModelAdmin):
+... form = AdminBandForm
+
+>>> ma = BandAdmin(Band, site)
+>>> ma.get_form(request).base_fields.keys()
+['name', 'bio', 'sign_date', 'delete']
+>>> type(ma.get_form(request).base_fields['sign_date'].widget)
+<class 'django.contrib.admin.widgets.AdminDateWidget'>
"""
}