Loading django/forms/models.py +2 −2 Original line number Diff line number Diff line Loading @@ -233,9 +233,9 @@ class BaseModelForm(BaseForm): initial=None, error_class=ErrorList, label_suffix=':', 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 instance is None: # if we didn't get an instance, instantiate a new one self.instance = opts.model() object_data = {} Loading tests/modeltests/model_forms/tests.py +16 −0 Original line number Diff line number Diff line Loading @@ -133,6 +133,9 @@ class ShortCategory(forms.ModelForm): slug = forms.CharField(max_length=5) url = forms.CharField(max_length=3) class Meta: model = Category class ImprovedArticleForm(forms.ModelForm): class Meta: model = ImprovedArticle Loading Loading @@ -277,6 +280,19 @@ class ModelFormBaseTest(TestCase): ['headline', 'slug', 'pub_date', 'writer', 'article', 'categories', 'status'] ) def test_invalid_meta_model(self): class InvalidModelForm(forms.ModelForm): class Meta: pass # no model # Can't create new form with self.assertRaises(ValueError): f = InvalidModelForm() # Even if you provide a model instance with self.assertRaises(ValueError): f = InvalidModelForm(instance=Category) def test_subcategory_form(self): class SubCategoryForm(BaseCategoryForm): """ Subclassing without specifying a Meta on the class will use Loading Loading
django/forms/models.py +2 −2 Original line number Diff line number Diff line Loading @@ -233,9 +233,9 @@ class BaseModelForm(BaseForm): initial=None, error_class=ErrorList, label_suffix=':', 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 instance is None: # if we didn't get an instance, instantiate a new one self.instance = opts.model() object_data = {} Loading
tests/modeltests/model_forms/tests.py +16 −0 Original line number Diff line number Diff line Loading @@ -133,6 +133,9 @@ class ShortCategory(forms.ModelForm): slug = forms.CharField(max_length=5) url = forms.CharField(max_length=3) class Meta: model = Category class ImprovedArticleForm(forms.ModelForm): class Meta: model = ImprovedArticle Loading Loading @@ -277,6 +280,19 @@ class ModelFormBaseTest(TestCase): ['headline', 'slug', 'pub_date', 'writer', 'article', 'categories', 'status'] ) def test_invalid_meta_model(self): class InvalidModelForm(forms.ModelForm): class Meta: pass # no model # Can't create new form with self.assertRaises(ValueError): f = InvalidModelForm() # Even if you provide a model instance with self.assertRaises(ValueError): f = InvalidModelForm(instance=Category) def test_subcategory_form(self): class SubCategoryForm(BaseCategoryForm): """ Subclassing without specifying a Meta on the class will use Loading