Serializer안에서 request.user을 사용하는 방법을 기록하기 위해 작성
Response를 보낼 때 context 안에 request를 담아서 보내면 된다.
아래는 예시이다.
<views.py>
def get(self, request):
return Response(UserSerializer(request.user,
context=request # context에 request담아서 Serializer에 전송
).data)
<serializers.py>
class HobbySerializer(serializers.ModelSerializer):
same_hobby_users = serializers.SerializerMethodField()
def get_same_hobby_users(self, obj):
user = self.context.user # context에서 user 호출
user_list = []
for user_profile in obj.userprofile_set.exclude(user=user):
user_list.append(user_profile.user.username)
return user_list
class Meta:
model = HobbyModel
fields = [
"name",
"same_hobby_users"
]
'Backend > Django' 카테고리의 다른 글
[Django] CORS 에러 해결 방법 (0) | 2022.07.02 |
---|---|
[Django] 터미널에서 venv 진입 (0) | 2022.07.02 |
[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 - ManyToMany Field의 Serializer (0) | 2022.06.26 |