묻고 답해요
132만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결
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" } 이런식으로 생각하고 있습니다
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
Throttle 설정이 적용되지 않아요
안녕하세요! 강의 잘 듣고 있습니다. DRF 최대 호출 횟수 제한 강의를 보고 적용해보기 위해서 다음과 같이 settings.py를 수정하였는데 리퀘스트 제한이 걸리지 않습니다. 서버를 리스타트해봐도 해결이 안되는데 뭐가 문제일까요? settings.py 소스코드 일부 REST_FRAMEWORK = { 'PAGE_SIZE': 20, 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', 'DEFAULT_PERMISSION_CLASSES': [ 'rest_framework.permissions.IsAuthenticated', ], 'DEFAULT_THROTTLE_CLASSES': [ 'rest_framework.throttling.UserRateThrottle', # 'rest_framework.throttling.AnonRateThrottle', ], 'DEFAULT_THROTTLE_RATES': { 'user': '3/day', # 'anon': '3/day', },} httpie Response 메시지
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
실습 중 POST 의 경우에 에러 메세지가 출력됩니다
강사님 안녕하세요~~~ 다름이 아니라, 뒷 부분 실습을 따라서 진행하던 중에 첨부드린 사진과 같이 http --auth user2:1234 http://localhost:8000/post/1/ 는 잘 실행되는데 http --auth user2:1234 http://localhost:8000/post/1/ http --auth user2:1234 POST http://localhost:8000/ message="user 2가 생성하는 첫번째 포스팅" 이렇게 POST를 하면 에러가 발생을 하는 것을 볼 수 있었습니다. ...중략 (아주 긴 에러 메세지가 등장합니다.) 문제의 원인이 무엇인지 잘 모르겠어서 이렇게 질문을 남겨드립니다. ㅠㅠ !! 혹 강사님께서 보이시는 문제점을 알려주시면 감사할 것 같습니다. 그럼 정말 감사합니다.
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
진석님 안녕하세요! 질문이 있습니다!!
진석님 안녕하세요! 진석님이 올려주신 강의를 들으며 개발을 시작했고 django로 취업한 개발자 입니다ㅎ 다름이 아니라 재직중인 회사에서 DRF를 사용하고 있지 않아 도입을 해보자고 이야기하고 있는데 사용시 비용을 지불해야 한다는 말씀을 회사에서 하셔서 제가 알고 있는 정보와는 다른 부분이 있어 혹시 아시는 부분이 있는지 여쭤보려 합니다.! DRF는 BSD 라이센스인것으로 알고 있는데 혹시 제가 알고 있는 부분가 다른 정보가 있을까요..?? 강의와는 관련 없는 질문이라 죄송하지만.. 진석님이 올려주신 강의보고 DRF를 너무나도 사용하고 싶어 이렇게 질문은 남기게 됬습니다.!