feat: 城市手册后端完成 - 用户/区域/内容/服务/审核系统
This commit is contained in:
65
city-manual/backend/content/serializers.py
Normal file
65
city-manual/backend/content/serializers.py
Normal file
@@ -0,0 +1,65 @@
|
||||
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']
|
||||
Reference in New Issue
Block a user