DRF작업중 발생에러
TypeError
Object of type property is not JSON serializable
원인
해결방법
serializer = ArticleSerializer(articles, many=True)
이처럼 many=True
를 넣어준다
이는 drf에 쿼리세트에 여러항목이 포함되어 있으므로 drf는 각 serialzer
클래스로 직렬화
해야한다
이 인수를 설정하지 않으면 쿼리세트가 단일 인스턴스이고 serializer.data
단일 객체가 됨을 의미한다
출처 : https://stackoverflow.com/questions/51223456/what-does-many-true-do-in-django-rest-framework
잘 나오는걸 확인할수 있다.
AssertionError
Cannot call `.is_vlid()` as no `data=` keyword argument was passed when instanting the serializer instance.
serializer = ArticleSerializer(data=request.data)
이 줄에 꼭 data=
를 넣어주어야 한다
이는 serializer
인스턴스를 인스턴스화할 때 키워드 인수가 전달되지 않았으므로 호출할수 없다는 것이다
잘 나오는걸 볼 수 있다.
출처 : https://devpress.csdn.net/python/62fd99acc67703293080405a.html
,
로 구분해주지 않으면 위와 같다
만약 오타가 생긴다면 위와 같다(title이 아니니 없다고 함)
항상 오타에 주의하자
이처럼 사용하기 편하게 host를 잡아준다
이 빨간색으로 동그라미 친 부분에 local혹은 사용자가 지정한 환경을 잡아주지않으면 이처럼 에러가 발생한다
정상작동되는 모습
django
에서는 urls.py
에서 각 views.py
로 하여금 url
들을 관리하는데 만약 중간에 오타가 생겨서 필요없는 다른 문자가 들어가게 되면
이와같은 에러문구가 출력된다.