serializer에 ManyToMany Field를 등록할 때에는 속성값을 통해 Serializer에게 알려주어야한다.
아래는 ManyToManyField인 hobby를 serializer에 등록하는 예시이다.
<models.py>
class UserProfile(models.Model):
user = models.OneToOneField(
to=User, verbose_name="사용자", on_delete=models.CASCADE, primary_key=True)
hobby = models.ManyToManyField("Hobby", verbose_name="취미")
introduction = models.TextField("소개")
birthday = models.DateField("생일")
age = models.IntegerField("나이")
def __str__(self):
return f"{self.user.username} 님의 프로필"
<serializers.py>
class UserProfileSerializer(serializers.ModelSerializer):
hobby = HobbySerializer(many=True)
class Meta:
model = UserProfileModel
fields = [
"introduction",
"birthday",
"age",
"hobby",
]
ManyToMany임을 Serializer에게 알려주는 부분은 아래와 같다.
hobby = hobbySerializer(many=True)
<views.py>
class UserView(APIView):
def get(self, request):
all_users = UserModel.objects.all()
return Response(UserSerializer(
all_users, many=True
).data)
views.py에서도 many=True 속성을 사용해주어야한다.
return Response(UserSerializer(
all_users, many=True
).data)
'Backend > Django' 카테고리의 다른 글
[Django] Poetry - UnicodeDecodeError: 'cp949' codec can't decode byte 0xec in position 546: illegal multibyte sequence 에러 해결 (0) | 2022.07.02 |
---|---|
[Django] JsonResponse (0) | 2022.06.26 |
[Django] DRF - serializer에서 필드에 없는 변수 메서드로 생성 (0) | 2022.06.20 |
[파이썬] Django - args, kwargs, mutable, immutable, queryset, object, DB Field, Key (0) | 2022.06.19 |
[파이썬] Django - 프로젝트에 등록되어 있지 않은 파일에서 장고 사용 (0) | 2022.06.14 |