From 81b185319c86d4770af88a6781cbbfcd1def7ab5 Mon Sep 17 00:00:00 2001 From: Brian Rosner Date: Thu, 17 Jul 2008 16:11:49 +0000 Subject: [PATCH] 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 --- django/contrib/admin/validation.py | 6 +++--- tests/regressiontests/modeladmin/models.py | 13 ++++++++++++- 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) """ }