Skip to content
Snippets Groups Projects
Commit 5408fe00 authored by Ernesto Rico Schmidt's avatar Ernesto Rico Schmidt
Browse files

Fix HostSerializer, add missing fields & read-only fields

- `HostLinkSerializer` is a `serializers.ModelSerializer` again.
parent c06dbb61
No related branches found
No related tags found
No related merge requests found
...@@ -167,9 +167,10 @@ class LinkSerializer(serializers.ModelSerializer): ...@@ -167,9 +167,10 @@ class LinkSerializer(serializers.ModelSerializer):
fields = ("description", "url") fields = ("description", "url")
class HostLinkSerializer(LinkSerializer): class HostLinkSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = HostLink model = HostLink
fields = ("description", "url")
class HostSerializer(serializers.ModelSerializer): class HostSerializer(serializers.ModelSerializer):
...@@ -194,6 +195,8 @@ class HostSerializer(serializers.ModelSerializer): ...@@ -194,6 +195,8 @@ class HostSerializer(serializers.ModelSerializer):
"email", "email",
"biography", "biography",
"is_active", "is_active",
"links",
"thumbnails",
# ModelWithImageFields # ModelWithImageFields
"image", "image",
"image_ppoi", "image_ppoi",
...@@ -207,11 +210,16 @@ class HostSerializer(serializers.ModelSerializer): ...@@ -207,11 +210,16 @@ class HostSerializer(serializers.ModelSerializer):
"updated_at", "updated_at",
"updated_by", "updated_by",
) )
read_only_fields = (
"created_at",
"created_by",
"updated_at",
"updated_by",
)
def create(self, validated_data): def create(self, validated_data):
links_data = validated_data.pop("links", []) 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: for link_data in links_data:
HostLink.objects.create(host=host, **link_data) HostLink.objects.create(host=host, **link_data)
host.save() host.save()
...@@ -234,6 +242,7 @@ class HostSerializer(serializers.ModelSerializer): ...@@ -234,6 +242,7 @@ class HostSerializer(serializers.ModelSerializer):
instance.image_alt_text = validated_data.get( instance.image_alt_text = validated_data.get(
"image_alt_text", instance.image_alt_text "image_alt_text", instance.image_alt_text
) )
instance.updated_by = self.context.get("updated_by")
if instance.links.count() > 0: if instance.links.count() > 0:
for link in instance.links.all(): for link in instance.links.all():
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment