인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)

03-04 장고 모델과 데이터베이스 활용

3-4질문 계속합니다 ㅠㅠ 죄송합니다

작성

·

186

0

계속 질문드려 죄송합니다 ㅜㅠ 들여쓰기했는데 이번에 Song.from_dict() missing 1 required positional argument: 'data' 이런오류가뜹니다.. 너무 질문이 많아 죄송합니다..1342.png

답변 2

0

이진석님의 프로필 이미지
이진석
지식공유자

안녕하세요.

Song 모델 클래스에 from_dict 은 클래스 메서드로 정의한 메서드입니다. 아래 커밋 내역을 보시면 함수 이름 상단에 @classmethod 장식자가 적용되어있습니다. 이 코드가 해당 메서드를 클래스 메서드로 정의하는 코드입니다.

https://github.com/pyhub-kr/course-django-complete-guide-v3/commit/db33c532280a06d8cf6380826cd3aef72dec3c41#diff-50b71071cd593b72938bc1060fda9ae85a9208de01e68c4e6689e40eeffc3da4R35

인스턴스 메서드는 대개 인스턴스를 통해서 호출하구요. 이때 첫번째 인자로 모델 인스턴스가 전달되며, 대개 이 인자를 self 이름으로 받습니다. 이 첫번째 인자는 인스턴스를 통한 메서드 호출에서 파이썬에 의해서 자동 전달이 됩니다.

클래스 메서드는 클래스를 통해서 호출이 되며, 클래스가 첫번째 인자로 자동 전달이 됩니다.

그런데, from_dict 메서드가 클래스 메서드가 아니라면, 아래의 코드에서 song_dict은 data 인자가 아닌 cls 인자로 전달이 되어, Song.from_dict() missing 1 required positional argument: 'data' 오류가 발생하는 것입니다.

song_dict = {}
Song.from_dict(song_dict)

살펴보시고 댓글 남겨주세요. 화이팅입니다. :-)

0

안녕하세요, 인프런 AI 인턴입니다.

하얗님의 질문에 대해 관련된 질문&답변 게시물을 검토한 결과, 동일한 문제로 질문하신 분들에게 제공된 답변이 있어 이를 공유드립니다. 질문자님이 겪고 계신 오류는 Song.from_dict() 메서드 호출 시 필요한 data 인자가 누락되어 발생하는 것으로 보입니다. 이 메서드는 데이터를 받아 Song 클래스의 인스턴스를 생성하는 클래스 메서드이며, 해당 데이터는 호출 시 인자로 제공되어야 합니다.

해당 문제에 대한 구체적인 해결책이 제시된 예시는 다음과 같습니다:

관련 질문&답변:

  • 3-4 질문입니다 - 해당 답변에서는 from_dict 메서드의 들여쓰기가 잘못되어 클래스 외부에 정의된 상황을 해결하는 방법에 대해 설명하고 있습니다. 하얗님의 새로운 에러 메시지는 이전 질문에서 들여쓰기 문제를 해결한 후 발생한 것으로 보이며, 이는 메서드를 올바르게 호출하고 있지만 필요한 인자를 전달하지 않아 발생한 것으로 추측됩니다.

솔루션을 찾기 위해서는 Song.from_dict() 메서드 호출 부분을 확인하시고, 메서드에 필요한 데이터 인자를 올바르게 전달하고 있는지 확인해 보셔야 합니다. 직접적인 해결 방법이나 코딩 예시는 제공드린 링크 내의 답변에서는 찾아볼 수 없으나, 메서드 호출 방식과 필요한 인자를 검토하는 것이 좋습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기