From 9a2759bb211bc3a7f6ac17102311f78962be9c3d Mon Sep 17 00:00:00 2001 From: Aroy-Art Date: Tue, 18 Mar 2025 22:05:12 +0100 Subject: [PATCH] Fix: title in post serializers --- backend/api/posts/serializers.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/backend/api/posts/serializers.py b/backend/api/posts/serializers.py index c26be2b..3f63d2c 100644 --- a/backend/api/posts/serializers.py +++ b/backend/api/posts/serializers.py @@ -8,6 +8,7 @@ from apps.archive.models import PostModel class PostPreviewSerializer(serializers.ModelSerializer): + title = serializers.SerializerMethodField() description = serializers.SerializerMethodField() date = serializers.SerializerMethodField() media = serializers.SerializerMethodField() @@ -33,6 +34,9 @@ class PostPreviewSerializer(serializers.ModelSerializer): "tags", ] + def get_title(self, obj: PostModel) -> Optional[str]: + return obj.title.first().content if obj.title.exists() else None + def get_description(self, obj: PostModel) -> Optional[str]: return obj.description.first().content if obj.description.exists() else None @@ -84,6 +88,7 @@ class PostPreviewSerializer(serializers.ModelSerializer): class PostSerializer(serializers.ModelSerializer): source_site = serializers.SerializerMethodField() + title = serializers.SerializerMethodField() description = serializers.SerializerMethodField() creator = serializers.SerializerMethodField() tags = serializers.SerializerMethodField() @@ -110,6 +115,18 @@ class PostSerializer(serializers.ModelSerializer): "name": obj.source_site.name, } + def get_title(self, obj) -> Dict[str, Optional[str]]: + title = obj.title.first().content if obj.title.exists() else None + if not title: + count = 0 + else: + count = obj.title.count() + + return { + "count": count, + "content": title, + } + def get_description(self, obj) -> Dict[str, str]: desc = obj.description.first().content if desc == "":