diff --git a/apps/news/serializers.py b/apps/news/serializers.py index 791879ca..e7d2e6d3 100644 --- a/apps/news/serializers.py +++ b/apps/news/serializers.py @@ -251,11 +251,14 @@ class NewsBackOfficeBaseSerializer(NewsBaseSerializer): user = request.user validated_data['created_by'] = user - agenda_data = validated_data.pop('agenda') - agenda_data['address_id'] = agenda_data.pop('address').pk - agenda_serializer = AgendaSerializer(data=agenda_data) - agenda_serializer.is_valid(raise_exception=True) - agenda = agenda_serializer.save() + agenda_data = validated_data.get('agenda') + agenda = None + + if agenda_data is not None: + agenda_data['address_id'] = agenda_data.pop('address').pk + agenda_serializer = AgendaSerializer(data=agenda_data) + agenda_serializer.is_valid(raise_exception=True) + agenda = agenda_serializer.save() instance = super().create(validated_data) instance.agenda = agenda @@ -276,13 +279,13 @@ class NewsBackOfficeBaseSerializer(NewsBaseSerializer): agenda_data = validated_data.get('agenda') agenda = instance.agenda - if agenda is None: + if agenda is None and agenda_data is not None: agenda_data['address_id'] = agenda_data.pop('address').pk agenda_serializer = AgendaSerializer(data=agenda_data) agenda_serializer.is_valid(raise_exception=True) agenda_serializer.save() - else: + elif agenda_data is not None: agenda.start_datetime = agenda_data.pop( 'start_datetime') if 'start_datetime' in agenda_data else agenda.start_datetime agenda.end_datetime = agenda_data.pop(