-
[Django]외래키관계를 통해 정의된 모델의 필드 가져오기Django_BE 2023. 6. 6. 02:30
모델로 PlaceVisitorReview를 사용하고 있는 상황
PlaceVisitorReview에는
place = models.ForeignKey("Place", on_delete=models.CASCADE) visitor_name = models.ForeignKey( "users.User", on_delete=models.CASCADE) # 리뷰다는 사람 이름 contents = models.TextField( help_text="리뷰를 작성해주세요.", blank=False, null=False) # 내용 작성
이렇듯 세가지 필드만 있는데 나는 place_name이 가지고 오고 싶었다. (+추가적인 place에 관한 정보도..!)
현재 코드는 아래와 같다
class UserReviewedGetApi(APIView): class Pagination(PageNumberPagination): page_size = 6 page_size_query_param = 'page_size' class UserReviewedGetSerializer(serializers.ModelSerializer): place_id = serializers.IntegerField() class Meta: model = PlaceVisitorReview fields = ['place_id']
내가 얻은 답:
`UserReviewedGetApi` 뷰를 사용할 때 `place_name`을 가져오기 위해서는 `UserReviewedGetSerializer` 클래스를 다음과 같이 수정합니다:
class UserReviewedGetSerializer(serializers.ModelSerializer): place_name = serializers.CharField(source='place.place_name') class Meta: model = PlaceVisitorReview fields = ['place_id', 'place_name']
시리얼라이저에 `place_name = serializers.CharField(source='place.place_name')`을 추가함으로써, `PlaceVisitorReview` 모델에서 정의된 외래 키 관계를 통해 관련된 `Place` 모델의 `place_name` 필드를 가져올 수 있습니다.'Django_BE' 카테고리의 다른 글
[Django]StoryIncludedCurationAPI (0) 2023.07.21 [Django]다른 팀원의 코드를 pull 했을때 오류가 난다면? (0) 2023.06.07 [Django]에러 (0) 2023.06.05 [Django]로컬 db가 비었다 (0) 2023.06.01 [Django]모델의 모든 객체를 다 가져오기 (0) 2023.06.01