DRF 객체 저장시 nested object 매핑 문제
미해결
안녕하세요. 현재 drf 를 사용하여 api 개발을 공부중입니다. 현재 1:n 관계인 두개의 테이블에서 N측 테이블의 데이터를 저장할 때 기존에 존재하던 1측 테이블의 레코드와 관계를 생성하여 매핑하고자 합니다. 이런 저런 방법을 계속 시도하였으나 참조하는 테이블의 객체를 알맞게 매핑하는데 자꾸 실패하여 질문을 남깁니다. class Company(models.Model): company_name = models.CharField(max_length=30) nationality = models.CharField(max_length=20) region = models.CharField(max_length=40) class Recruitment(models.Model): company = models.ForeignKey(Company, on_delete=models.CASCADE) position = models.CharField(max_length=20) reward = models.IntegerField() info = models.TextField() skill = models.CharField(max_length=30) Company 모델과 이를 참조하는 Recruitment 모델입니다 class CompanySerializer(serializers.ModelSerializer): class Meta: model = Company fields = '__all__' class RecruitmentSerializer(serializers.ModelSerializer): company = CompanySerializer() class Meta: model = Recruitment fields = '__all__' depth = 1 각 모델의 serializer입니다, class RecruitmentListView(APIView): def post(self, request): company_obj = Company.objects.get(pk=request.data.get('company')['id']) #1. 참조하는 company 객체를 찾아 새로운 Recruitment 객체를 생성하고, company 객체를 연결지어 serialize한다 #2. RecruitmentSerializer의 is_valid 혹은 다른 메소드를 오버라이딩하여 request를 serializer로 전달하여 저장한다 #기타 등등 if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(status=status.HTTP_400_BAD_REQUEST) 공식 문서, 유튜브 영상, 외국 사이트등을 찾아보았지만 기존에 존재하던 테이블을 참조하며 새로운 객체를 저장하는 방법이 있질 않더군요... 혹시 해결 방법을 아시면 답변 부탁드리겠습니다. 참고로 request는 { "company" : { "id" : 1 , "company_name" : "company1" , "nationality" : "korea" , "region" : "seoul" }, "position" : "백엔드" , "reward" : 100000 , "info" : "test" , "skill" : "django" } 이런식으로 생각하고 있습니다
- django
- drf
- 1:n





