Skip to content

Commit 9bfbe22

Browse files
committed
Add support for dynamic attrs with attr_dict
1 parent 84db553 commit 9bfbe22

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

widget_tweaks/templatetags/widget_tweaks.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,11 +215,20 @@ def render(self, context):
215215
bounded_field = append_attr(
216216
bounded_field, f"class:{context['WIDGET_REQUIRED_CLASS']}"
217217
)
218+
attr_dict = {}
218219
for k, v in self.set_attrs:
220+
if k == "attr_dict":
221+
resolved_dict = v.resolve(context)
222+
if not isinstance(resolved_dict, dict):
223+
raise ValueError(f"{k} must be of type dict.")
224+
attr_dict.update(resolved_dict)
225+
else:
226+
attr_dict[k] = v.resolve(context)
227+
for k, v in attr_dict.items():
219228
if k == "type":
220-
bounded_field.field.widget.input_type = v.resolve(context)
229+
bounded_field.field.widget.input_type = v
221230
else:
222-
bounded_field = set_attr(bounded_field, f"{k}:{v.resolve(context)}")
231+
bounded_field = set_attr(bounded_field, f"{k}:{v}")
223232
for k, v in self.append_attrs:
224233
bounded_field = append_attr(bounded_field, f"{k}:{v.resolve(context)}")
225234
return str(bounded_field)

0 commit comments

Comments
 (0)