Django DRFで「TypeError: The `fields` option must be a list or tuple or “__all__”. Got str.」
今回はDjango REST frameworkで「TypeError: The fields
option must be a list or tuple or “__all__". Got str.」というエラーが起きたときの対処法についてご紹介いたします。
Django DRFで「TypeError: The fields
option must be a list or tuple or “__all__". Got str.」
Django REST frameworkを使用しているときに、上記のエラーが起きてしまいました。
エラーを見るに、serializerのMETAのfieldsが原因のようです。
私は、serializerのMETAのfieldsを次のように書いていました。
1 2 3 4 5 |
class TestSerializer(serializers.ModelSerializer): class Meta: model = User fields = ('username') |
fieldsが一つしかないserializerですね。
実は、上記のserializerだとエラーが出ます。
fieldsが一つのとき、serializerのMETAのfieldsは一つでもカンマをつけなければなりません。
例として、修正したコードは下記の通りです。
1 2 3 4 5 |
class TestSerializer(serializers.ModelSerializer): class Meta: model = User fields = ('username',) |
カンマをつけなければタプルとして認識されず、「TypeError: The fields
option must be a list or tuple or “__all__". Got str.」というエラーが起きてしまいます。
終わりに
今回はDjango REST frameworkで「TypeError: The fields
option must be a list or tuple or “__all__". Got str.」というエラーが起きたときの対処法についてご紹介いたしました。
ディスカッション
コメント一覧
まだ、コメントがありません