66 lines
2.1 KiB
Python
66 lines
2.1 KiB
Python
|
|
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']
|