Post

[Django] SerializerMethodField로 원하는 JSON 보내주기

Django에서 SerializerMethodField로 원하는 JSON을 보내주기

만약

  • 모델에 없는 Field인데 JSON에 추가에서 보내주고 싶거나
  • 모델에 있는 값을 변형해서 JSON으로 보내고 싶거나
  • 외래키로 연결되어 있는 값을 JSON으로 보내고 싶거나 (나의 경우는 여기 해당했었다)

하는 경우에는 SerializerMethodField를 사용하면 된다.

나의 경우엔 Question과 User가 외래키로 연결되어있었고, Question을 조회할 때 User의 first_name을 전달해주고 싶었다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# serializers.py

class QuestionSerializer(ModelSerializer):
    ...

    user_name = serializers.SerializerMethodField(method_name='get_user_name')

    ...

    def get_user_name(self, obj):
        user = obj.userid
        return user.first_name

    ...
This post is licensed under CC BY 4.0 by the author.

[Django] dj-rest-auth를 활용한 JWT 회원가입/로그인 구현

-