启用rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly时无法应用DjangoModelPermissions

时间:2014-07-18 13:10:15

标签: django django-rest-framework mongoengine

我正在努力让MongoEngine与Django REST框架一起工作。通过这个链接Getting mongoengine and django rest framework to play nice,我设法让一切正常,但必须在REST框架中禁用“PERMISSION CLASSES”,如下所示

'DEFAULT_PERMISSION_CLASSES': [ #'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly' ]

否则,我收到此错误“无法对没有.model.queryset属性的视图应用DjangoModelPermissions。”。原因似乎是“Collection.objects”或“Collection.objects.all()”返回的值无法在REST框架的permission.py中传递“has_permission”函数。

有人可以帮忙看看吗?

2 个答案:

答案 0 :(得分:4)

或者您可以添加:

from rest_framework import permissions

并在视图类中添加

permission_classes = (permissions.IsAuthenticatedOrReadOnly,)

答案 1 :(得分:3)

在views.py中导入以下模型:

from rest_framework.permissions import AllowAny
from rest_framework.decorators import api_view, permission_classes

在声明函数(视图函数)之前添加:

@api_view(['GET', 'POST'])
@permission_classes((AllowAny, ))

@api_view(['GET', 'PUT', 'DELETE'])
@permission_classes((AllowAny, ))