|
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