我查看了有关此问题的其他问题,他们的问题出在 settings.py 文件中的 REST_FRAMEWORK = ... 值中。我的有什么错误吗?
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'api_basic',# this is my app that uses authtokens
'rest_framework',
'rest_framework.authtoken',
]
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.TokenAuthentication',
],
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.IsAuthenticated',
],
}
查看:
@api_view(['GET', ])
@permission_classes(IsAuthenticated)
def api_hero(request, name):
try:
character = Hero.objects.get(name=name)
except:
return Response(status=status.HTTP_404_NOT_FOUND)
serializer = serializers.HeroSerializer(character)
return Response(serializer.data)
最佳答案
所以我自己找到了答案。问题就在眼前
@permission_classes(IsAuthenticated)
here permission classes arguments should be a tuple.
so:
@permission_classes((IsAuthenticated,))
这是要走的路。
关于django - 类型错误 : 'BasePermissionMetaclass' object is not iterable in django rest framework,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62556400/