다음과 같은 화면에 필요한 데이터를 모을거임!
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 |