1
0
mirror of https://github.com/django/django.git synced 2025-10-24 06:06:09 +00:00

Fixed #24428 -- Fixed has_changed for fields with coercion

Thanks Carsten Fuchs for the report.
This commit is contained in:
Claude Paroz
2015-03-04 20:19:02 +01:00
parent 767c33d1fa
commit 8714403614
4 changed files with 57 additions and 2 deletions

View File

@@ -28,8 +28,9 @@ from .models import (
CustomErrorMessage, CustomFF, CustomFieldForExclusionModel, DateTimePost,
DerivedBook, DerivedPost, Document, ExplicitPK, FilePathModel,
FlexibleDatePost, Homepage, ImprovedArticle, ImprovedArticleWithParentLink,
Inventory, Person, Photo, Post, Price, Product, Publication, Student,
StumpJoke, TextFile, Triple, Writer, WriterProfile, test_images,
Inventory, Person, Photo, Post, Price, Product, Publication,
PublicationDefaults, Student, StumpJoke, TextFile, Triple, Writer,
WriterProfile, test_images,
)
if test_images:
@@ -2282,6 +2283,41 @@ class OtherModelFormTests(TestCase):
</select></p>"""
% {'blue_pk': colour.pk})
def test_callable_field_default(self):
class PublicationDefaultsForm(forms.ModelForm):
class Meta:
model = PublicationDefaults
fields = '__all__'
form = PublicationDefaultsForm()
self.assertHTMLEqual(
form.as_p(),
"""<p><label for="id_title">Title:</label> <input id="id_title" maxlength="30" name="title" type="text" /></p>
<p><label for="id_date_published">Date published:</label>
<input id="id_date_published" name="date_published" type="text" value="2015-03-04" />
<input id="initial-id_date_published" name="initial-date_published" type="hidden" value="2015-03-04" /></p>
<p><label for="id_mode">Mode:</label> <select id="id_mode" name="mode">
<option value="di" selected="selected">direct</option>
<option value="de">delayed</option></select>
<input id="initial-id_mode" name="initial-mode" type="hidden" value="di" /></p>
<p><label for="id_category">Category:</label> <select id="id_category" name="category">
<option value="1">Games</option>
<option value="2">Comics</option>
<option value="3" selected="selected">Novel</option></select>
<input id="initial-id_category" name="initial-category" type="hidden" value="3" />"""
)
empty_data = {
'title': '',
'date_published': '2015-03-04',
'initial-date_published': '2015-03-04',
'mode': 'di',
'initial-mode': 'di',
'category': '3',
'initial-category': '3',
}
bound_form = PublicationDefaultsForm(empty_data)
self.assertFalse(bound_form.has_changed())
class ModelFormCustomErrorTests(TestCase):
def test_custom_error_messages(self):