summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Rosner <brosner@gmail.com>2008-07-17 16:11:49 +0000
committerBrian Rosner <brosner@gmail.com>2008-07-17 16:11:49 +0000
commit81b185319c86d4770af88a6781cbbfcd1def7ab5 (patch)
treebf67716783fad7d081f22779c3b0032c0bccf9fe
parentdce7cfee16094cb1dd060fb4d90ab73f62069317 (diff)
newforms-admin: Fixed #7794 -- Allow BaseModelFormSet classes to work as an inline formset. This just loosens the validator checks. Thanks paltman for the report.
git-svn-id: http://code.djangoproject.com/svn/django/branches/newforms-admin@7942 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/contrib/admin/validation.py6
-rw-r--r--tests/regressiontests/modeladmin/models.py13
2 files changed, 15 insertions, 4 deletions
diff --git a/django/contrib/admin/validation.py b/django/contrib/admin/validation.py
index 0d4c2f5607..7814021cf9 100644
--- a/django/contrib/admin/validation.py
+++ b/django/contrib/admin/validation.py
@@ -1,7 +1,7 @@
from django.core.exceptions import ImproperlyConfigured
from django.db import models
-from django.newforms.models import BaseModelForm, BaseInlineFormset
+from django.newforms.models import BaseModelForm, BaseModelFormSet
from django.contrib.admin.options import flatten_fieldsets, BaseModelAdmin
from django.contrib.admin.options import HORIZONTAL, VERTICAL
@@ -129,9 +129,9 @@ def _validate_inline(cls):
% (cls.__name__, attr))
# formset
- if hasattr(cls, 'formset') and not issubclass(cls.formset, BaseInlineFormset):
+ if hasattr(cls, 'formset') and not issubclass(cls.formset, BaseModelFormSet):
raise ImproperlyConfigured("`%s.formset` does not inherit from "
- "BaseInlineFormset." % cls.__name__)
+ "BaseModelFormSet." % cls.__name__)
def _validate_base(cls, model):
opts = model._meta
diff --git a/tests/regressiontests/modeladmin/models.py b/tests/regressiontests/modeladmin/models.py
index feb9982786..5cd27dd3c1 100644
--- a/tests/regressiontests/modeladmin/models.py
+++ b/tests/regressiontests/modeladmin/models.py
@@ -797,6 +797,8 @@ ImproperlyConfigured: `ValidationTestInline.max_num` should be a integer.
# formset
+>>> from django.newforms.models import BaseModelFormSet
+
>>> class FakeFormSet(object):
... pass
>>> class ValidationTestInline(TabularInline):
@@ -807,7 +809,16 @@ ImproperlyConfigured: `ValidationTestInline.max_num` should be a integer.
>>> validate(ValidationTestModelAdmin, ValidationTestModel)
Traceback (most recent call last):
...
-ImproperlyConfigured: `ValidationTestInline.formset` does not inherit from BaseInlineFormset.
+ImproperlyConfigured: `ValidationTestInline.formset` does not inherit from BaseModelFormSet.
+
+>>> class RealModelFormSet(BaseModelFormSet):
+... pass
+>>> class ValidationTestInline(TabularInline):
+... model = ValidationTestInlineModel
+... formset = RealModelFormSet
+>>> class ValidationTestModelAdmin(ModelAdmin):
+... inlines = [ValidationTestInline]
+>>> validate(ValidationTestModelAdmin, ValidationTestModel)
"""
}