티스토리 뷰
수정전
{
"username": "test1",
"followings_count": 0,
"followings": [],
"followers_count": 1,
"followers": [
6
],
"bookmarked_movies": [
11
]
}
수정후 - followings, followers, bookmakared_movies 의 내용 출력
어떻게? Primary Key 대신 밸류값을 보내기 위해 StringRelatedField를 사용한다. '__str__' 메서드가 내부에 있다고 한다.
현재 User 모델에서 다대다 관계, Movie 모델에서 일대다 관계를 설정해주고 있기 때문에 적용이 가능하다.
class User(AbstractUser):
followings = models.ManyToManyField('self', related_name='followers', symmetrical=False)
class Movie(models.Model):
# 1:N
year = models.ForeignKey(Year, on_delete=models.CASCADE, blank=True)
# M:N
genre_ids = models.ManyToManyField(Genre, related_name='movie_genre')
# 이 영화를 북마크 한 사람
bookmarked_users = models.ManyToManyField(settings.AUTH_USER_MODEL, related_name="bookmarked_movies")
def __str__(self):
return self.title
# 프로필 정보
# StringRelatedField
class ProfileSerializer(serializers.ModelSerializer):
bookmarked_movies = serializers.StringRelatedField(many=True)
followings = serializers.StringRelatedField(many=True)
followers = serializers.StringRelatedField(many=True)
followings_count = serializers.IntegerField(source='followings.count', read_only=True) # 유저 팔로워 수
followers_count = serializers.IntegerField(source='followers.count', read_only=True)
class Meta:
model = get_user_model()
fields = ('username', 'followings_count','followings','followers_count', 'followers','bookmarked_movies',)
{
"username": "test1",
"followings_count": 0,
"followings": [],
"followers_count": 1,
"followers": [
"test2"
],
"bookmarked_movies": [
"스타워즈: 에피소드 4 새로운 희망"
]
}
참고
https://www.django-rest-framework.org/api-guide/relations/#stringrelatedfield
'Django Framework' 카테고리의 다른 글
시리얼라이저가 왔을 때 id가 꽃이 되었다 (0) | 2021.11.24 |
---|---|
서로 다른 앱에서 모델 불러와서 시리얼라이저에 id값으로 모델의 상세정보 출력하기 (0) | 2021.11.24 |
[DRF] Nested Relationships Serializer (0) | 2021.11.23 |
Expected a `Response`, `HttpResponse` or `HttpStreamingResponse` to be returned from the view, but received a `<class 'NoneType'>` (0) | 2021.11.23 |
Django Movie 프로젝트 관련 QuerySet API (0) | 2021.11.19 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 폰트추천
- 브왈라
- ssafy6기
- 개발자로드맵
- 개발도서추천
- 깃허브계정
- 클린코더
- SSAFY
- 개발자
- 코딩도서
- 디즈니얼굴
- 깃허브계정2개
- 맥과윈도우로깃허브
- 개발언어추천
- 싸피6기
- 싸피
- 개발언어순위
- 무료폰트추천
- 폰트
- 한글무료폰트추천
- ssafy결과
- ssafy합격후기
- 임대차3법
- ssafy후기
- 개발자책추천
- 클린코드
- 개발자도서추천
- intj여자
- 개발자커리
- 상업용무료폰트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함