Skip to content

Commit 780602d

Browse files
committed
Handle None values in serializer
1 parent d1ffda1 commit 780602d

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

django_features/custom_fields/serializers.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -152,11 +152,17 @@ def _create_or_update_custom_value(
152152
value_object = instance.custom_values.select_related("field").get(
153153
field_id=field.id
154154
)
155-
value_object.value = value
156-
value_object.save()
155+
if value is None:
156+
value_object.delete()
157+
else:
158+
value_object.value = value
159+
value_object.save()
157160
except CustomValue.DoesNotExist:
158-
value_object = CustomValue.objects.create(field_id=field.id, value=value)
159-
instance.custom_values.add(value_object)
161+
if value is not None:
162+
value_object = CustomValue.objects.create(
163+
field_id=field.id, value=value
164+
)
165+
instance.custom_values.add(value_object)
160166

161167
def update(self, instance: Any, validated_data: dict) -> Any:
162168
for field in self._custom_fields:
@@ -165,6 +171,8 @@ def update(self, instance: Any, validated_data: dict) -> Any:
165171
value = validated_data.pop(field.identifier, None)
166172
if field.choice_field:
167173
instance.custom_values.remove(*field.choices)
174+
if value is None:
175+
continue
168176
if field.multiple:
169177
instance.custom_values.add(*value)
170178
else:

0 commit comments

Comments
 (0)