django - 限制模型访问

时间:2014-07-31 02:37:49

标签: python django django-rest-framework mezzanine

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

如果能够限制用户的模型,我做错了什么?

0 个答案:

没有答案