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を次のように書いていました。

fieldsが一つしかないserializerですね。

実は、上記のserializerだとエラーが出ます。
fieldsが一つのとき、serializerのMETAのfieldsは一つでもカンマをつけなければなりません。

例として、修正したコードは下記の通りです。

カンマをつけなければタプルとして認識されず、「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.」というエラーが起きたときの対処法についてご紹介いたしました。

最後までお読みいただきありがとうございます。
ブログやTwitterでのシェアOKです。
コメントもお待ちしております。
誤植や勘違いなどございましたらコメント欄にて教えていただけると幸いです。






DRF

Posted by ちこ