Files
chengshishouce/city-manual/backend/content/serializers.py

66 lines
2.1 KiB
Python
Raw Normal View History

from rest_framework import serializers
from .models import Article, Comment, Like, Rating, Favorite
from users.serializers import UserSerializer
from regions.serializers import RegionSerializer
class ArticleSerializer(serializers.ModelSerializer):
author = UserSerializer(read_only=True)
region = RegionSerializer(read_only=True)
region_id = serializers.PrimaryKeyRelatedField(
queryset='regions.Region.objects.all()',
source='region',
write_only=True,
required=False
)
class Meta:
model = Article
fields = [
'id', 'title', 'content', 'region', 'region_id', 'content_type',
'author', 'moderator_status', 'ai_status', 'publish_status',
'created_at', 'updated_at'
]
read_only_fields = ['author', 'moderator_status', 'ai_status', 'publish_status', 'created_at', 'updated_at']
class CommentSerializer(serializers.ModelSerializer):
author = UserSerializer(read_only=True)
class Meta:
model = Comment
fields = [
'id', 'content', 'article', 'service', 'author',
'ai_status', 'is_visible', 'created_at'
]
read_only_fields = ['author', 'ai_status', 'is_visible', 'created_at']
class LikeSerializer(serializers.ModelSerializer):
user = UserSerializer(read_only=True)
class Meta:
model = Like
fields = ['id', 'user', 'article', 'service', 'created_at']
read_only_fields = ['user', 'created_at']
class RatingSerializer(serializers.ModelSerializer):
user = UserSerializer(read_only=True)
region = RegionSerializer(read_only=True)
class Meta:
model = Rating
fields = ['id', 'user', 'region', 'service', 'score', 'comment', 'created_at']
read_only_fields = ['user', 'created_at']
class FavoriteSerializer(serializers.ModelSerializer):
user = UserSerializer(read_only=True)
region = RegionSerializer(read_only=True)
class Meta:
model = Favorite
fields = ['id', 'user', 'region', 'service', 'created_at']
read_only_fields = ['user', 'created_at']