DRF 객체 저장시 nested object 매핑 문제
258
작성한 질문수 2
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"
} 이런식으로 생각하고 있습니다
답변 0
진도미확인 (진도가 안 넘어감)
0
52
1
자료 화면 문의
0
54
1
(질문)KG이니시스 팝업차단 문제 발생(강의 13. 자바스크립트만으로 포트원 결제 구현하기, 7분18초)
1
212
2
강의에 나왔던 js 파일이 깃허브에 없습니다
1
79
1
RuntimeError: There is no current event loop in thread 'MainThread'
0
95
1
chapter 07-01 실행 오류
0
78
1
DOCKER 설치 관련 질문입니다
0
109
2
Chapter05-04 : sum_func의 합이 이중 출력됩니다.
0
90
2
안녕하세요.
0
62
1
asgi 를 elasticbeanstalk 으로 배포는 어떻게 할수 있을까요?
0
99
1
모바일 디버깅, 반응형 레이아웃 4분48초 질문
0
57
1
AI 도구 학습법 문의
0
107
2
45. 병렬성 2 - Futures(5-1) wait가 의도된 대로 동작하지 않습니다.
0
109
2
멀티스레딩 - 44. 병렬성 1 - Futures(4-2)
0
81
2
chapter05_02 클로저 질문사항 !
0
61
1
ConnectionRefusedError: [WinError 10061]
0
119
2
CSRF_COOKIE_NAME에러
0
95
2
Django의 View나 URL의 네이밍 컨벤션
0
75
1
Dockerfile 질문
0
91
2
decorator 관련질문입니다.
0
63
1
로그인 오류
0
88
2
PRINT_SQL=1 py manage.py shell 에러
0
81
2
08-14 FormView 관련 질문
0
90
1
07-01 IPv4AddressIntegerField 질문
0
100
1





