|
5 | 5 | from django.forms import BooleanField, Form, ModelForm, ModelMultipleChoiceField, MultipleChoiceField, NullBooleanField
|
6 | 6 |
|
7 | 7 |
|
8 |
| -def convert_multiple_choice_fields(data: dict[str, Any], initialized_form: Form | ModelForm) -> None: |
9 |
| - multi_choice_fields = { |
10 |
| - field_name |
11 |
| - for field_name, field in initialized_form.fields.items() |
12 |
| - if isinstance(field, (MultipleChoiceField, ModelMultipleChoiceField)) |
13 |
| - } |
| 8 | +def convert_form_fields(data: dict[str, Any], initialized_form: Form | ModelForm) -> None: |
| 9 | + for field_name, field in initialized_form.fields.items(): |
| 10 | + value = data.get(field_name) |
14 | 11 |
|
15 |
| - # Convert multiple choice field text into a list of values |
16 |
| - for choice_field_name in multi_choice_fields: |
17 |
| - value = data.get(choice_field_name) |
18 |
| - if value is not None and not isinstance(value, list): |
19 |
| - data[choice_field_name] = [value] |
| 12 | + if isinstance(field, (MultipleChoiceField, ModelMultipleChoiceField)) and value is not None: |
| 13 | + data[field_name] = value if isinstance(value, list) else [value] |
20 | 14 |
|
21 |
| - |
22 |
| -def convert_boolean_fields(data: dict[str, Any], initialized_form: Form | ModelForm) -> None: |
23 |
| - boolean_fields = { |
24 |
| - field_name |
25 |
| - for field_name, field in initialized_form.fields.items() |
26 |
| - if isinstance(field, BooleanField) and not isinstance(field, NullBooleanField) |
27 |
| - } |
28 |
| - |
29 |
| - # Convert boolean field text into actual booleans |
30 |
| - for boolean_field_name in boolean_fields: |
31 |
| - data[boolean_field_name] = boolean_field_name in data |
| 15 | + elif isinstance(field, BooleanField) and not isinstance(field, NullBooleanField): |
| 16 | + data[field_name] = field_name in data |
0 commit comments