Creating a ModelSerializer without either…の対応方法

Creating a ModelSerializer without either...の対応方法

djangoを使ってAPIを作っていたらエラーが出たので備忘録として残しておきたいと思います。

参考:Django REST framework でJSONをコンソール画面からGET/POST/PUT/DELETE

エラー内容

エラー内容は下記の通りです。


"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 xxx serializer."

原因

rest_framework3.3.0以降でModelSerializerにfields属性やexclude属性を追加していないために発生するそうです。

対応

serializers.pyに「fields='__all__'」を追記してあげます。


from rest_framework import serializers
from drf.models import Article, Writer

class WriterSerializer(serializers.ModelSerializer):
    class Meta:
        model = Writer
        fields='__all__' # 追加

class ArticleSerializer(serializers.ModelSerializer):
    class Meta:
        model = Article
        fields='__all__' #追加