From b11c2cc207cd3c456bccef3fcb6dc131342dc751 Mon Sep 17 00:00:00 2001 From: Ernesto Rico Schmidt <ernesto@helsinki.at> Date: Tue, 5 Sep 2023 21:14:35 -0400 Subject: [PATCH] feat: add ownerIds --- program/serializers.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/program/serializers.py b/program/serializers.py index 1c3d2d83..c4006ef5 100644 --- a/program/serializers.py +++ b/program/serializers.py @@ -296,6 +296,9 @@ class HostSerializer(serializers.ModelSerializer): allow_null=True, queryset=Image.objects.all(), required=False, source="image" ) links = HostLinkSerializer(many=True, required=False) + owner_ids = serializers.PrimaryKeyRelatedField( + allow_null=True, many=True, queryset=User.objects.all(), source="owners" + ) class Meta: model = Host @@ -313,6 +316,7 @@ class HostSerializer(serializers.ModelSerializer): "is_active", "links", "name", + "owner_ids", ) + read_only_fields def create(self, validated_data): @@ -321,7 +325,7 @@ class HostSerializer(serializers.ModelSerializer): """ links_data = validated_data.pop("links", []) - + owners = validated_data.pop("owners", []) validated_data["image"] = validated_data.pop("image_id", None) host = Host.objects.create( @@ -331,6 +335,8 @@ class HostSerializer(serializers.ModelSerializer): for link_data in links_data: HostLink.objects.create(host=host, **link_data) + host.owners.set(owners) + host.save() return host @@ -352,6 +358,8 @@ class HostSerializer(serializers.ModelSerializer): for link_data in links_data: HostLink.objects.create(host=instance, **link_data) + instance.owners.set(validated_data.get("owners", instance.owners)) + instance.updated_by = self.context.get("request").user.username instance.save() -- GitLab