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

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

김영빈님의 프로필 이미지
김영빈

작성한 질문수

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

JSON 직렬화

assertion error at /public/이 뜹니다

작성

·

833

0

안녕하세요? 강의 잘 듣고 잇습니다. 에러가 발생하는데, drf는 정말 생소해서 뭘 어떻게 건드려야 할지도 모르겠네요 ㅠㅠ
 
우선 다음과 같은 에러가 발생합니다
 
 
현재 view는 다음과 같습니다.
from rest_framework.serializers import ModelSerializer
from.models import Post
from rest_framework import serializers
from django.contrib.auth import get_user_model

class AuthorSerializer(serializers.ModelSerializer):
    class Meta:
        model = get_user_model()
        firelds = ['username','email']
   
class PostSerializer(serializers.ModelSerializer):
    # author_email = serializers.ReadOnlyField(source='author.email')
    author = AuthorSerializer()
    class Meta:
        model = Post
        fields = [
            'pk',
            # 'author_email',
            'author',
            'message',
            'created_at',
            'updated_at',
        ]
author serializer부분에 뭔가를 해줘야 하는 것 같은데 잘모르겠네요 ㅠㅠ
 
늘 좋은 강의와 답변 감사합니다.
 

답변 1

0

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

안녕하세요.

오류 메세지에 답이 있습니다.

Creating a ModelSerializer without either the 'fields' attribute or the 'exclude' attribute has been deprecated since 3.3.0, and is now disallowed. Add an explicit fields = '__all__' to the AuthorSerializer serializer.

ModelSerializer를 만드셨는 데 fields 속성이나 exclude 속성을 지정하지 않으셨다는 오류메세지입니다. 그런데 fields를 지정하셨잖아요. 그럼 거의 99% 오타이거나 들여쓰기(Indentation)를 잘못 지정하셨거나, Meta 클래스명을 META 등으로 잘못지정하셨거나 정도가 되겠습니다.

AuthorSerializer의 코드를 보시면 firelds라고 되어있습니다. 이는 오타죠. fields로 쓰셔야 합니다. :-)

화이팅입니다. :-)

 

김영빈님의 프로필 이미지
김영빈
질문자

아.. 참 부끄럽네요 ㅠㅠ 늘 빠른 답변 감사합니다~

김영빈님의 프로필 이미지
김영빈

작성한 질문수

질문하기