예제 #1
0
class UserProfileSerializer(serializers.ModelSerializer):

    images = images_serializers.CountImageSerializer(many=True, read_only=True)
    # read_only? I'd use read_only when is a field that I will never ever ever update.
    """
    I'd use read_only when is a field that I will never ever ever update. 
    Required I will use when I will maybe update it but I don't have to do it with every request.
    For example the profile fields, many of them are optional 
    when I'm updating because sometimes I want to update the name only and not update the email, so I will leave it required=false. 
    What would be read only would be for example the 'file' field of and image 
    since I want to make sure that I will never modify it.
    """
    followers_count = serializers.ReadOnlyField()
    # -> https://www.django-rest-framework.org/api-guide/fields/#readonlyfield
    # -> 해당 필드는 수정하지 않겠움!!
    followings_count = serializers.ReadOnlyField()
    post_count = serializers.ReadOnlyField()

    class Meta:
        model = models.User
        fields = (
            'profile_image',
            'username',
            'name',
            'bio',
            'website',
            'post_count',
            'followers_count',
            'followings_count',
            'images',
        )
예제 #2
0
class UserProfileSerializer(serializers.ModelSerializer):

    images = images_serializers.CountImageSerializer(many=True, read_only=True)
    post_count = serializers.ReadOnlyField()
    followers_count = serializers.ReadOnlyField()
    following_count = serializers.ReadOnlyField()

    class Meta:
        model = models.User
        fields = ('profile_image', 'username', 'name', 'bio', 'website',
                  'post_count', 'followers_count', 'following_count', 'images')
예제 #3
0
class UserProfileSerializer(serializers.ModelSerializer):

    images = image_serizlizers.CountImageSerializer(many=True)

    class Meta:
        model = models.User
        fields = (
            'username',
            'name',
            'bio',
            'website',
            'post_count',
            'followers_count',
            'following_count',
            'images',
        )
예제 #4
0
class UserProfileSerializer(serializers.ModelSerializer):

    images = images_serializers.CountImageSerializer(many=True, read_only=True)
    post_count = serializers.ReadOnlyField()
    followers_count = serializers.ReadOnlyField()
    following_count = serializers.ReadOnlyField()
    is_self = serializers.SerializerMethodField()
    is_following = serializers.SerializerMethodField()

    class Meta:
        model = models.User
        fields = (
            'id',
            'profile_image',
            'username',
            'name',
            'bio',
            'website',
            'post_count',
            'followers_count',
            'following_count',
            'images',
            'is_self',
            'is_following'
        )

    def get_is_self(self, user):
        if 'request' in self.context:
            request = self.context['request']
            if user.id == request.user.id:
                return True
            else:
                return False
            
        return False
    
    def get_is_following(self, obj):
        if 'request' in self.context:
            request = self.context['request']
            if obj in request.user.following.all():
                return True
        return False
예제 #5
0
class UserProfileSerializer(serializers.ModelSerializer):
    images = images_serializers.CountImageSerializer(many=True, read_only=True)
    #부분적으로 업데이트하지 않을 필드가 있을 때 read_only를 사용한다.
    post_count = serializers.ReadOnlyField()
    followers_count = serializers.ReadOnlyField()
    following_count = serializers.ReadOnlyField(
    )  #ReadOnlyField는 수정하지 않고 읽기만 하겠다고 선언하는 것이다.

    class Meta:
        model = models.User
        fields = (
            'profile_image',
            'username',
            'name',
            'bio',
            'website',
            'post_count',
            'followers_count',
            'following_count',
            'images',
        )
예제 #6
0
class UserProfileSerializer(serializers.ModelSerializer):

    images = images_serialzers.CountImageSerializer(many=True, read_only=True)
    post_count = serializers.ReadOnlyField()
    followers_count = serializers.ReadOnlyField()
    following_count = serializers.ReadOnlyField()
    # ReadOnlyField는 Serializer 통해서 수정 불가능하게 해줌, 하지만 위의
    # *_count는 함수로 계산된 결과라서 이 속성 없어도 수정이 안되는 것 같아 보임

    class Meta:
        model = models.User
        fields = (
            'profile_image',
            'username',
            'name',
            'bio',
            'website',
            'post_count',
            'followers_count',
            'following_count',
            'images'
        )