我正在使用Django,Django Rest Framework和Mezzanine。
我在settings.py中为DRF设置了以下内容 -
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.SessionAuthentication',
),
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
),
如果没有登录,我无法访问这些页面。到目前为止这很好。
然后我对models.py -
进行了以下操作class Meta:
ordering = ["Date"]
permissions = (
( "view_tablename", "Can view tablename" ),
)
同样,一切正常。现在,当我进入我的应用程序中的用户和组的管理面板时,我现在可以看到该选项。
然后我将DjangoModelPermissions添加到我的settings.py
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.SessionAuthentication',
),
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
'rest_framework.permissions.DjangoModelPermissions',
),
即使我没有将用户设置为对该模型具有视图访问权限,我的views.py仍会继续拉页面。
class File_List(generics.ListAPIView):
model = tablename
serializer_class = tablename_compositesSerializer
def get_queryset(self):
"""
This view should return a list of all the purchases for
the user as determined by the username portion of the URL.
"""
filename = self.request.GET.get('filename')
model = get_model('database', filename)
filedate = self.request.GET.get('filedate')
queryset = model.objects.using('testdb').filter(Date__contains=filedate)
return queryset
如果能够限制用户的模型,我做错了什么?