이 페이지를 위한 데이터를 시리얼라이징 해보자
일단
이미지
유저이미지, 유저아이디, 유저의 지역
댓글 유저 아이디, 댓글 내용, 날짜
좋아요 갯수가 될 것임
class FeedUserSerializer(serializers.ModelSerializer):
class Meta:
model = user_models.User
fields = (
'username',
'profile_image'
)
일단 시리얼라이즈단에 Feed를 위한 시리얼라이즈를 생성
필드는
유저의 이름과, 프로필 이미지이다.
class ImageSerializer(serializers.ModelSerializer) :
comments = CommentSerializer(many=True)
creator = FeedUserSerializer()
class Meta :
model = models.Image
fields = (
'id',
'file',
'location',
'caption',
'comments',
'creator',
'like_count',)
이미지 단에는
이것저것 있지만 여기서 눈여겨 봐야 할 것은
creator가 FeedUserSerializer를 참조 한다는 것과
like_count이다.
전자는 이미지를 올린 유저의 중복을 막기 위함이고
like_count는 많은 데이터가 아닌 좋아요를 한 숫자만을 원하기 때문에 related한 값이다.
@property
def like_count(self):
return self.likes.all().count()
실제로 모델.py에서 이미지 클래스에 추가되어 있다.
class Comment(TimeStampedModel) :
""" Comment Model """
message = models.TextField()
creator = models.ForeignKey(user_models.User,on_delete=models.CASCADE, null=True)
image = models.ForeignKey(Image, on_delete=models.CASCADE, null=True, related_name='comments')
def __str__(self):
return self.message
댓글 내용과
유저를 참조하였당.!
'BackEnd > Django' 카테고리의 다른 글
[Django] 코멘트 구현! _Image (0) | 2018.11.04 |
---|---|
[Django]Likey!! 좋아요 구현 _image (0) | 2018.11.04 |
[DJANGO] Feed View (Sorting) (0) | 2018.11.04 |
[DJANGO] NEST Serializer & Foreign Key (1) | 2018.11.04 |
[DJANGO] Serializer (0) | 2018.11.04 |