본문 바로가기

BackEnd/Django

[Django] User Profile


다음과 같은 화면에 필요한 데이터를 모을거임!


path("<username>/",view=views.UserProfile.as_view(),name='user_profile')


일단 유저의 url을 추가하고!( <username>은 실제 유저의 이름!)


class UserProfile(APIView):

def get(self, request, username, format=None):

try :
found_user = models.User.objects.get(username=username)
except models.User.DoesNotExist:
return Response(status=status.HTTP_404_NOT_FOUND)

serializer = serializers.UserProfileSerializer(found_user)

return Response(data=serializer.data,status=status.HTTP_200_OK)


View단 생성


username이 있는지 확인하고


시리얼라이징한다!



class UserProfileSerializer(serializers.ModelSerializer):

images = images_serializers.UserProfileImageSerializer(many=True)

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


이 때 새로 시리얼라이징 할 것을 만들었음(기존의 것과 필요한 것이 너무 달라서!)


주목할 점은

post_count, follows_count, following_count와 같은 프로퍼티값!



@property
def post_count(self):
return self.images.all().count()


@property
def followers_count(self):
return self.followers.all().count()

@property
def following_count(self):
return self.following.all().count()


모델에 프로퍼티 형식으로 추가되어 있다!


다만 유저에서 어떻게 이미지를 불러오는지는 미지수


※여기서 self는 유저 본인을 가르킴

나 같은 경우는 Moon

'BackEnd > Django' 카테고리의 다른 글

[Django]해시태그 search 1  (0) 2018.11.05
[Django]Following&Follower List만들기!  (0) 2018.11.05
[Django] Follow and UnFollow API  (0) 2018.11.05
[Django]Refactoring to like and unlike  (0) 2018.11.05
[Django]ExploreUsers 생성(User View!)  (0) 2018.11.05