Exemple #1
0
class CommentSerializer(serializers.ModelSerializer):
    user = UserSerializerForComment(source='cached_user')
    like_count = serializers.SerializerMethodField()
    has_liked = serializers.SerializerMethodField()

    class Meta:
        model = Comment
        fields = (
            'id',
            'tweet_id',
            'user',
            'created_at',
            'updated_at',
            'content',
            'like_count',
            'has_liked',
        )

    def get_like_count(self, obj):
        return obj.like_set.count()

    def get_has_liked(self, obj):
        return LikeService.get_has_liked(
            user=self.context['request'].user,
            obj=obj,
        )
Exemple #2
0
class CommentSerializer(serializers.ModelSerializer):
    # 如果不加user解析, 那么展示的user只是user_id
    # 加了解析之后,展示的user是一个hash
    # CommentSerializer嵌套了一个UserSerializer
    user = UserSerializerForComment(source='cached_user')
    has_liked = serializers.SerializerMethodField()
    likes_count = serializers.SerializerMethodField()

    class Meta:
        model = Comment
        fields = (
            'id',
            'tweet_id',
            'user',
            'content',
            'created_at',
            'updated_at',
            'has_liked',
            'likes_count',
        )

    def get_has_liked(self, obj):
        return LikeService.has_liked(self.context['request'].user, obj)

    def get_likes_count(self, obj):
        return obj.like_set.count()
Exemple #3
0
class CommentSerializer(serializers.ModelSerializer):
    user = UserSerializerForComment()
    likes_count = serializers.SerializerMethodField()
    has_liked = serializers.SerializerMethodField()

    class Meta:
        model = Comment
        # the below fields 用的是tuple ( 而不是 数组 【, 虽然数组也work,但是tuple更好,因为tuple不可更改
        fields = (
            'id',
            'tweet_id',
            'user',
            'content',
            'created_at',
            'updated_at',
            'likes_count',
            'has_liked',
        )

    def get_likes_count(self, obj):
        return obj.like_set.count()

    def get_has_liked(self, obj):
        # 这个request.user 只是当下发送请求的用户,可以是登录的也可以没有登录
        return LikeService.has_liked(self.context['request'].user, obj)
Exemple #4
0
class CommentSerializer(serializers.ModelSerializer):

    user = UserSerializerForComment(source='cached_user')

    class Meta:
        model = Comment
        fields = ('id', 'tweet_id', 'user', 'content', 'created_at',
                  'updated_at')
class CommentSerializer(serializers.ModelSerializer):
    # 如果此处不定义user的话,fields中的user会以user_id的形式显示
    # 使用了UserSerializer之后就会用UserSerializer的格式来显示user
    user = UserSerializerForComment()

    class Meta:
        model = Comment
        fields = (
            'id',
            'tweet_id',
            'user',
            'content',
            'created_at',
            'updated_at',
        )