summaryrefslogtreecommitdiff
path: root/django/forms
diff options
context:
space:
mode:
authorDavid Sanders <shang.xiao.sanders@gmail.com>2022-10-26 19:05:27 +1100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2022-11-18 13:12:15 +0100
commit25904db9154c5be3ecda9585d96f536841af9126 (patch)
tree393ebc9d13c8d87bd323b59717478c2ab6a914c8 /django/forms
parent04b15022e8d1f49af69d8a1e6cd678f31f1280ff (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.py10
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,
)