【Django REST framework/エラー】’BasePermissionMetaclass’ object is not iterable

Python

問題

Django REST frameworkを使用していて、作成したAPIにアクセスした際に、下記のエラーが発生していました。

'BasePermissionMetaclass' object is not iterable

解決方法

私の場合は、views.py内のpermission_classesの書き方が不適切だったことが原因でした。以下を見て頂ければ分かりますが、AllowAnyに「,」を付けてなかったのがエラー要因でした。

他の人の解決方法も見ましたが、文法やタイプミスが原因のことが多いようです。

...

# 適切なコード
class CreateUserView(generics.CreateAPIView):
    serializer_class = UserSerializer
    permission_classes = (AllowAny,)

# 不適切なコード
class CreateUserView(generics.CreateAPIView):
    serializer_class = UserSerializer
    permission_classes = (AllowAny)

...

タイトルとURLをコピーしました