mirror of
https://github.com/django/django.git
synced 2025-10-24 22:26:08 +00:00
Fixed #12698. Model.clean() used with a ModelForm no longer causes a KeyError when raising a ValidationError.
Note that previously it was possible to raise a ValidationError in the same place with a message_dict attribute. That behavior was a bug and will no longer have the same behavior. git-svn-id: http://code.djangoproject.com/svn/django/trunk@12402 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
@@ -6,7 +6,8 @@ from django.forms.models import modelform_factory
|
||||
from django.conf import settings
|
||||
from django.test import TestCase
|
||||
|
||||
from models import Person, Triple, FilePathModel, Article, Publication, CustomFF
|
||||
from models import Person, RealPerson, Triple, FilePathModel, Article, Publication, CustomFF
|
||||
|
||||
|
||||
class ModelMultipleChoiceFieldTests(TestCase):
|
||||
|
||||
@@ -117,7 +118,7 @@ class CFFForm(forms.ModelForm):
|
||||
class CustomFieldSaveTests(TestCase):
|
||||
def test_save(self):
|
||||
"Regression for #11149: save_form_data should be called only once"
|
||||
|
||||
|
||||
# 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})
|
||||
@@ -129,8 +130,20 @@ class ModelChoiceIteratorTests(TestCase):
|
||||
class Meta:
|
||||
model = Article
|
||||
fields = ["publications"]
|
||||
|
||||
|
||||
Publication.objects.create(title="Pravda",
|
||||
date_published=date(1991, 8, 22))
|
||||
f = Form()
|
||||
self.assertEqual(len(f.fields["publications"].choices), 1)
|
||||
|
||||
class RealPersonForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = RealPerson
|
||||
|
||||
class CustomModelFormSaveMethod(TestCase):
|
||||
def test_string_message(self):
|
||||
data = {'name': 'anonymous'}
|
||||
form = RealPersonForm(data)
|
||||
self.assertEqual(form.is_valid(), False)
|
||||
self.assertEqual(form.errors['__all__'], ['Please specify a real name.'])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user