From 5408fe006dc00c95bf6fddf97ed7dc6099741566 Mon Sep 17 00:00:00 2001 From: Ernesto Rico Schmidt <ernesto@helsinki.at> Date: Tue, 9 Aug 2022 15:56:45 -0400 Subject: [PATCH] Fix HostSerializer, add missing fields & read-only fields - `HostLinkSerializer` is a `serializers.ModelSerializer` again. --- program/serializers.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/program/serializers.py b/program/serializers.py index 5c882345..63cfa45a 100644 --- a/program/serializers.py +++ b/program/serializers.py @@ -167,9 +167,10 @@ class LinkSerializer(serializers.ModelSerializer): fields = ("description", "url") -class HostLinkSerializer(LinkSerializer): +class HostLinkSerializer(serializers.ModelSerializer): class Meta: model = HostLink + fields = ("description", "url") class HostSerializer(serializers.ModelSerializer): @@ -194,6 +195,8 @@ class HostSerializer(serializers.ModelSerializer): "email", "biography", "is_active", + "links", + "thumbnails", # ModelWithImageFields "image", "image_ppoi", @@ -207,11 +210,16 @@ class HostSerializer(serializers.ModelSerializer): "updated_at", "updated_by", ) + read_only_fields = ( + "created_at", + "created_by", + "updated_at", + "updated_by", + ) def create(self, validated_data): links_data = validated_data.pop("links", []) - host = Host.objects.create(**validated_data) - + host = Host.objects.create(**validated_data | self.context) for link_data in links_data: HostLink.objects.create(host=host, **link_data) host.save() @@ -234,6 +242,7 @@ class HostSerializer(serializers.ModelSerializer): instance.image_alt_text = validated_data.get( "image_alt_text", instance.image_alt_text ) + instance.updated_by = self.context.get("updated_by") if instance.links.count() > 0: for link in instance.links.all(): -- GitLab