django - 类型错误 : 'BasePermissionMetaclass' object is not iterable in django rest framework

标签 django django-models django-rest-framework django-forms django-views

我查看了有关此问题的其他问题,他们的问题出在 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/

相关文章:

mysql - 使用mysql在django模型charfield中获取空白语句

python - 使用 Django 模型权限引发 DoesNotExist 错误

python - 如何使用非orm模型进行自定义分页

python - 如何使用 Django-Rest-Framework 序列化用户组

python - 如何以表格形式显示值,因为现在只显示表格标题

django - manage.py - 不在项目文件夹中?

python - 如何为 Django 的每个 HiddenInput 字段设置值?

python - Django Rest Framework 用户名/密码无效

python - 如何在模板内部确定图像是否已上传?

django - 在 Django REST framework 中对 ModelViewSet 中的不同操作使用不同的身份验证