posts are done
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
from django.contrib.auth import get_user_model
|
||||
from rest_framework import serializers
|
||||
from .models import Post, PostContent, PostVote
|
||||
from .models import Post, PostContent, PostVote, PostSave
|
||||
from social.hubs.serializers import TagsSerializer
|
||||
|
||||
User = get_user_model()
|
||||
@@ -28,6 +28,8 @@ class PostSerializer(serializers.ModelSerializer):
|
||||
vote_score = serializers.SerializerMethodField()
|
||||
user_vote = serializers.SerializerMethodField()
|
||||
reply_count = serializers.IntegerField(read_only=True, default=0)
|
||||
is_saved = serializers.SerializerMethodField()
|
||||
save_count = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = Post
|
||||
@@ -36,7 +38,7 @@ class PostSerializer(serializers.ModelSerializer):
|
||||
'author', 'author_detail',
|
||||
'hub', 'reply_to',
|
||||
'tags', 'contents',
|
||||
'vote_score', 'user_vote', 'reply_count',
|
||||
'vote_score', 'user_vote', 'reply_count', 'is_saved', 'save_count',
|
||||
]
|
||||
read_only_fields = ['author', 'created_at', 'updated_at']
|
||||
|
||||
@@ -50,6 +52,15 @@ class PostSerializer(serializers.ModelSerializer):
|
||||
vote = obj.votes.filter(user=request.user).first()
|
||||
return vote.vote if vote else 0
|
||||
|
||||
def get_is_saved(self, obj):
|
||||
request = self.context.get('request')
|
||||
if not request or not request.user.is_authenticated:
|
||||
return False
|
||||
return obj.saves.filter(user=request.user).exists()
|
||||
|
||||
def get_save_count(self, obj):
|
||||
return obj.saves.count()
|
||||
|
||||
|
||||
class PostVoteSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
|
||||
Reference in New Issue
Block a user