diff options
| author | Joseph Kocherhans <joseph@jkocherhans.com> | 2010-02-23 15:12:29 +0000 |
|---|---|---|
| committer | Joseph Kocherhans <joseph@jkocherhans.com> | 2010-02-23 15:12:29 +0000 |
| commit | d23f2249ea9ec4563ba18cf0c9de4d53d138113b (patch) | |
| tree | c677803bfca78d7f8503695ae94bcb28f4644129 | |
| parent | c702e262ff7258773424b2842f49ae472d0c9f7b (diff) | |
[1.1.X] Fixed #12285. ModelForm raises a more informative error if it doesn't have a model class defined. Backport of [12526] from trunk.
git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.1.X@12530 bcc190cf-cafb-0310-a4f2-bffc1f526a37
| -rw-r--r-- | django/forms/models.py | 2 | ||||
| -rw-r--r-- | tests/regressiontests/model_forms_regress/tests.py | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/django/forms/models.py b/django/forms/models.py index 4e8578e55e..1cbfba9602 100644 --- a/django/forms/models.py +++ b/django/forms/models.py @@ -214,6 +214,8 @@ class BaseModelForm(BaseForm): empty_permitted=False, instance=None): opts = self._meta if instance is None: + if opts.model is None: + raise ValueError('ModelForm has no model class specified.') # if we didn't get an instance, instantiate a new one self.instance = opts.model() object_data = {} diff --git a/tests/regressiontests/model_forms_regress/tests.py b/tests/regressiontests/model_forms_regress/tests.py index 85e284b639..862c39c8d4 100644 --- a/tests/regressiontests/model_forms_regress/tests.py +++ b/tests/regressiontests/model_forms_regress/tests.py @@ -100,4 +100,10 @@ class CustomFieldSaveTests(TestCase): # It's enough that the form saves without error -- the custom save routine will # generate an AssertionError if it is called more than once during save. form = CFFForm(data = {'f': None}) - form.save()
\ No newline at end of file + form.save() + +class ModelClassTests(TestCase): + def test_no_model_class(self): + class NoModelModelForm(forms.ModelForm): + pass + self.assertRaises(ValueError, NoModelModelForm) |
