Fixed #33656 -- Fixed MultiWidget crash when compressed value is a tuple.
This commit is contained in:
parent
4282fd468f
commit
37602e4948
|
@ -884,9 +884,9 @@ class MultiWidget(Widget):
|
|||
if self.is_localized:
|
||||
for widget in self.widgets:
|
||||
widget.is_localized = self.is_localized
|
||||
# value is a list of values, each corresponding to a widget
|
||||
# value is a list/tuple of values, each corresponding to a widget
|
||||
# in self.widgets.
|
||||
if not isinstance(value, list):
|
||||
if not isinstance(value, (list, tuple)):
|
||||
value = self.decompress(value)
|
||||
|
||||
final_attrs = context["widget"]["attrs"]
|
||||
|
|
|
@ -130,6 +130,15 @@ class MultiWidgetTest(WidgetTest):
|
|||
'<input type="text" class="small" value="lennon" name="name_1">'
|
||||
),
|
||||
)
|
||||
self.check_html(
|
||||
widget,
|
||||
"name",
|
||||
("john", "lennon"),
|
||||
html=(
|
||||
'<input type="text" class="big" value="john" name="name_0">'
|
||||
'<input type="text" class="small" value="lennon" name="name_1">'
|
||||
),
|
||||
)
|
||||
self.check_html(
|
||||
widget,
|
||||
"name",
|
||||
|
|
|
@ -1094,3 +1094,15 @@ class TestWidget(PostgreSQLSimpleTestCase):
|
|||
'<input type="text" name="datetimerange_0" value="2006-01-10 07:30:00">'
|
||||
'<input type="text" name="datetimerange_1" value="2006-02-12 09:50:00">',
|
||||
)
|
||||
|
||||
def test_range_widget_render_tuple_value(self):
|
||||
field = pg_forms.ranges.DateTimeRangeField()
|
||||
dt_range_tuple = (
|
||||
datetime.datetime(2022, 4, 22, 10, 24),
|
||||
datetime.datetime(2022, 5, 12, 9, 25),
|
||||
)
|
||||
self.assertHTMLEqual(
|
||||
field.widget.render("datetimerange", dt_range_tuple),
|
||||
'<input type="text" name="datetimerange_0" value="2022-04-22 10:24:00">'
|
||||
'<input type="text" name="datetimerange_1" value="2022-05-12 09:25:00">',
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue