1
0
mirror of https://github.com/django/django.git synced 2025-07-19 17:19:12 +00:00

[1.9.x] Fixed #26129 -- Made invalid forms display initial values of disabled fields.

Backport of 04564eb74d2d92eaf88b22ab8cec7ef45978111e from master
This commit is contained in:
Tim Graham 2016-01-28 13:49:51 -05:00
parent efd8554815
commit 01db3249e5
3 changed files with 13 additions and 0 deletions

View File

@ -177,6 +177,8 @@ class Field(six.with_metaclass(RenameFieldMethods, object)):
For most fields, this will simply be data; FileFields need to handle it
a bit differently.
"""
if self.disabled:
return initial
return data
def widget_attrs(self, widget):

View File

@ -91,3 +91,6 @@ Bugfixes
* Fixed the ``contrib.gis`` map widgets when using
``USE_THOUSAND_SEPARATOR=True`` (:ticket:`20415`).
* Made invalid forms display the initial of values of their disabled fields
(:ticket:`26129`).

View File

@ -718,6 +718,14 @@ class FormsTestCase(SimpleTestCase):
{'birthday': datetime.date(1974, 8, 16), 'name': 'John Doe'}
)
# Initial data remains present on invalid forms.
data = {}
f1 = PersonForm(data, initial={'birthday': datetime.date(1974, 8, 16)})
f2 = PersonFormFieldInitial(data)
for form in (f1, f2):
self.assertFalse(form.is_valid())
self.assertEqual(form['birthday'].value(), datetime.date(1974, 8, 16))
def test_hidden_data(self):
class SongForm(Form):
name = CharField()