타임어택 : 오늘은 도커 타임어택을 진행하였는데 탈탈 털렸다..😱😱 아직 방금을 잘 모르는 것 같다ㅠㅠ다음 프로젝트 진행하면서 배포연습 해봐야겠다.
텔레토비 팀 타임어택 : 팀끼리 진행하는 타임어택도 진행하였다!!오늘은 게시글 수정 및 삭제, 댓글 보이기&수정&삭제 등에 대해서 진행하였다! 프로젝트 시작 전에 이렇게 복습을 하니 기억도 더 잘 나고 좋은 것 같다😍
email을 로그인 아이디로 사용하고, like한 유저는 username으로 나오게 싶었는데 이것저것 바꿔보다 안바뀌어서 결국 튜터님께 질문을 했다.
class ArticleSerializer(serializers.ModelSerializer):
user = serializers.SerializerMethodField()
comment_set = CommentSerializer(many=True)
like = serializers.SerializerMethodField()
def get_user(self, obj):
return obj.user.username
def get_like(self, obj):
return list(obj.like.values_list('username',flat=True))
class Meta:
model = Article
fields = '__all__'
시리얼라이즈를 사용할 때 serializermethodField 함수를 이용해서 원하는 값을 불러올 수가 있는데 만약 가져오고 싶은 값이 외래키로 연관이 되어있거나 그 형태가 제이쿼리라면 아래 식처럼 불러올 수 있다.
list(obj.like.values_list('username',flat=True))
여기에서
values_list => 내가 원하는 것을 가져오겠다.
flat=True => 데이터를 가져오는 형식을 정해주는 것(이것 사용하지 않으면 이상한 형식으로 보인다!!)
serializdermethodField가 어떤 역할을 했었는지 잘 기억이 나지 않아 다시 공부하고 정리하려고 한다!
시리얼라이저로 객체를 직렬화한 JSON에
모델에 없는 필드를 추가
모델에 있는 값을 변형해서 새로운 필드의 값으로 넣기
를 하고싶을 때 SerializerMethodField 를 사용하면 된다!!