Fixed #12285. ModelForm raises a more informative error if it doesn't have a model class defined. Thanks, tobias.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@12526 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
7aeb37d610
commit
8da76ffeaa
|
@ -236,6 +236,8 @@ class BaseModelForm(BaseForm):
|
||||||
empty_permitted=False, instance=None):
|
empty_permitted=False, instance=None):
|
||||||
opts = self._meta
|
opts = self._meta
|
||||||
if instance is None:
|
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
|
# if we didn't get an instance, instantiate a new one
|
||||||
self.instance = opts.model()
|
self.instance = opts.model()
|
||||||
object_data = {}
|
object_data = {}
|
||||||
|
|
|
@ -145,5 +145,10 @@ class CustomModelFormSaveMethod(TestCase):
|
||||||
data = {'name': 'anonymous'}
|
data = {'name': 'anonymous'}
|
||||||
form = RealPersonForm(data)
|
form = RealPersonForm(data)
|
||||||
self.assertEqual(form.is_valid(), False)
|
self.assertEqual(form.is_valid(), False)
|
||||||
self.assertEqual(form.errors['__all__'], ['Please specify a real name.'])
|
self.assertEqual(form.errors['__all__'], ['Please specify a real name.'])
|
||||||
|
|
||||||
|
class ModelClassTests(TestCase):
|
||||||
|
def test_no_model_class(self):
|
||||||
|
class NoModelModelForm(forms.ModelForm):
|
||||||
|
pass
|
||||||
|
self.assertRaises(ValueError, NoModelModelForm)
|
||||||
|
|
Loading…
Reference in New Issue