gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 16:14:15 25 4
gpt4 key购买 nike

我正在尝试使用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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com