diff options
| author | Brian Rosner <brosner@gmail.com> | 2008-03-24 23:46:24 +0000 |
|---|---|---|
| committer | Brian Rosner <brosner@gmail.com> | 2008-03-24 23:46:24 +0000 |
| commit | 937c6e1054d6d561b585abe1040a401dac3941ce (patch) | |
| tree | f3b91b9c1612f3a99c84d0a7e572741e17819490 /tests/regressiontests/modeladmin/models.py | |
| parent | 1d46d20038a8473fc2e75f832c770f17d558d0fc (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.py | 24 |
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'> """ } |
