mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2025-12-27 17:27:01 -05:00
feat: Add blog, media, and support apps, implement ride credits and image API, and remove toplist feature.
This commit is contained in:
60
backend/apps/blog/serializers.py
Normal file
60
backend/apps/blog/serializers.py
Normal file
@@ -0,0 +1,60 @@
|
||||
from rest_framework import serializers
|
||||
from .models import Post, Tag
|
||||
from apps.accounts.serializers import UserSerializer
|
||||
from apps.media.serializers import CloudflareImageSerializer
|
||||
from django_cloudflareimages_toolkit.models import CloudflareImage
|
||||
|
||||
class TagSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Tag
|
||||
fields = ["id", "name", "slug"]
|
||||
|
||||
class PostListSerializer(serializers.ModelSerializer):
|
||||
"""Lighter serializer for lists"""
|
||||
author = UserSerializer(read_only=True)
|
||||
tags = TagSerializer(many=True, read_only=True)
|
||||
image = CloudflareImageSerializer(read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = Post
|
||||
fields = [
|
||||
"id",
|
||||
"title",
|
||||
"slug",
|
||||
"excerpt",
|
||||
"image",
|
||||
"author",
|
||||
"published_at",
|
||||
"tags",
|
||||
]
|
||||
|
||||
class PostDetailSerializer(serializers.ModelSerializer):
|
||||
author = UserSerializer(read_only=True)
|
||||
tags = TagSerializer(many=True, read_only=True)
|
||||
image = CloudflareImageSerializer(read_only=True)
|
||||
image_id = serializers.PrimaryKeyRelatedField(
|
||||
queryset=CloudflareImage.objects.all(),
|
||||
source='image',
|
||||
write_only=True,
|
||||
required=False,
|
||||
allow_null=True
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = Post
|
||||
fields = [
|
||||
"id",
|
||||
"title",
|
||||
"slug",
|
||||
"content",
|
||||
"excerpt",
|
||||
"image",
|
||||
"image_id",
|
||||
"author",
|
||||
"published_at",
|
||||
"is_published",
|
||||
"tags",
|
||||
"created_at",
|
||||
"updated_at",
|
||||
]
|
||||
read_only_fields = ["id", "slug", "created_at", "updated_at", "author"]
|
||||
Reference in New Issue
Block a user