TypeError:'BasePermissionMetaclass' 对象在 django rest 框架中不可迭代
Posted
技术标签:
【中文标题】TypeError:\'BasePermissionMetaclass\' 对象在 django rest 框架中不可迭代【英文标题】:TypeError: 'BasePermissionMetaclass' object is not iterable in django rest frameworkTypeError:'BasePermissionMetaclass' 对象在 django rest 框架中不可迭代 【发布时间】:2020-10-14 19:00:48 【问题描述】:我查看了有关此问题的其他问题,他们的问题在 REST_FRAMEWORK = ... settings.py 文件中的值中。我的有什么错误吗?
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)
【问题讨论】:
展示你的观点。 @Anonymous 完成。 【参考方案1】:所以我自己找到了答案。问题就在眼前
@permission_classes(IsAuthenticated)
here permission classes arguments should be a tuple.
so:
@permission_classes((IsAuthenticated,))
是要走的路。
【讨论】:
以上是关于TypeError:'BasePermissionMetaclass' 对象在 django rest 框架中不可迭代的主要内容,如果未能解决你的问题,请参考以下文章