django - Django rest-framework DjangoModelPermissions允许任何经过身份验证的用户的问题

标签 django django-rest-framework django-mongodb-engine

我正在尝试使用DjangoModelPermissions,它似乎无法正常工作。

这是代码:

class TestViewSet(viewsets.ModelViewSet):
    model = Test
    serializer_class = serializers.TestSerializer
    permission_classes = (permissions.DjangoModelPermissions,)

    def create(self, request):
        response_data = {}
        response_data['type'] = 'error'
        data=json.loads(request.raw_post_data)

        test = Test.objects.create(name=data['name'],\
                                            description=data['description'],\
                                            start_date=data['start_date'],\
                                            end_date=data['end_date'])          

        #save changes
        test.save()
        return Response({'status': 'ok', "result": test.id})


在这种情况下,我认为这没有什么区别,但是我正在使用django_mongodb_engine。

我有一个没有权限的用户,它能够创建Test实例。另一方面,如何阻止GET,以便只有具有正确权限的用户才能执行该操作?

谢谢

最佳答案

我的问题是一样的。尽管具有权限类,用户仍可以在数据库中创建新实例。我调查了django-guardian,发现该后端应该是默认的:

AUTHENTICATION_BACKENDS = (
    'django.contrib.auth.backends.ModelBackend',
)


因此,我将其添加到settings.py文件中,现在它可以工作了,并且没有权限的用户无法创建新实例。希望对您有所帮助。

关于django - Django rest-framework DjangoModelPermissions允许任何经过身份验证的用户的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25627806/

相关文章:

javascript - 如何从 Angular 表单返回 Django?

python - 从现有 MongoDB 数据库创建 Django 模型

python - Mongo引擎查询引用字段

python - 在 template.render 中关闭自动转义

django - 为什么这会给我一个 MRO 错误?

django-filebrowser 无法访问并抛出 404

python - Django Rest 框架 - 如果表包含响应中的数据,则显示服务器错误 (500)

python - Mongoengine、flask-MongoEngine 和 Django-MongoEngine 之间的区别?

django - 使用 django 和 mongoengine 时出现 NotUniqueError

javascript - Yahoo 未经授权的 JSONP 请求与 Django