diff options
| author | David Sanders <shang.xiao.sanders@gmail.com> | 2022-10-26 19:05:27 +1100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2022-11-18 13:12:15 +0100 |
| commit | 25904db9154c5be3ecda9585d96f536841af9126 (patch) | |
| tree | 393ebc9d13c8d87bd323b59717478c2ab6a914c8 /django/forms | |
| parent | 04b15022e8d1f49af69d8a1e6cd678f31f1280ff (diff) | |
Fixed #34119 -- Prevented callable default hidden widget value from being overridden.
Thanks to Benjamin Rigaud for the report.
Diffstat (limited to 'django/forms')
| -rw-r--r-- | django/forms/boundfield.py | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/django/forms/boundfield.py b/django/forms/boundfield.py index 9f2ae59ab4..6764276148 100644 --- a/django/forms/boundfield.py +++ b/django/forms/boundfield.py @@ -96,9 +96,17 @@ class BoundField: attrs.setdefault( "id", self.html_initial_id if only_initial else self.auto_id ) + if only_initial and self.html_initial_name in self.form.data: + # Propagate the hidden initial value. + value = self.form._widget_data_value( + self.field.hidden_widget(), + self.html_initial_name, + ) + else: + value = self.value() return widget.render( name=self.html_initial_name if only_initial else self.html_name, - value=self.value(), + value=value, attrs=attrs, renderer=self.form.renderer, ) |
