Django Rest框架:权限\类不工作

Django Rest框架:权限\类不工作,django,django-rest-framework,Django,Django Rest Framework,我需要创建一个嵌套路由。这看起来像是api//content/。我知道有创建嵌套路由的包(和)。我已经试过了,而且相当有限。所以我决定硬连接URL。URL和视图如下所示: 在URL.py # contents ## detail, update, remove url( r'^api/campaign/(?P<campaign>[a-z0-9-]+)/content/(?P<content>\d+)/$', ContentAPI.as_view({'get'

我需要创建一个嵌套路由。这看起来像是
api//content/
。我知道有创建嵌套路由的包(和)。我已经试过了,而且相当有限。所以我决定硬连接URL。URL和视图如下所示:

在URL.py

# contents
## detail, update, remove
url(
   r'^api/campaign/(?P<campaign>[a-z0-9-]+)/content/(?P<content>\d+)/$',
   ContentAPI.as_view({'get' : 'retrieve', 'put' : 'update', 'delete' : 'destroy'}),
   name = "content-detail"
),
## toggle content verification
url(
   r'^api/campaign/(?P<campaign>[a-z0-9-]+)/content/(?P<content>\d+)/toggle_status/$',
   ContentAPI.as_view(
      {'post' : 'toggle_status'},
      permission_classes = [Or(IsContentManager, IsContentModerator)]
      ),
      name = "content-toggle-status"
),

一切正常,但权限似乎不起作用。无需登录系统即可访问API。如何在我的场景中强制执行权限。

错误在我这边。当我使用
router.register('api/(?P[a-z0-9]+)/子域/(?P[a-z0-9]+),子域api)
生成嵌套路由时,我必须在子域api处过滤

所以我在
initial()
上做了这个:

self.\u get\u domain()
检查域是否存在并引发404错误。由于在权限检查之前引发404错误,我的测试失败

应该是:

def initial(self, request, *args, **kwargs):          
    super(SubdomainAPI, self).initial(request, *args, **kwargs) 
    self.domain = self._get_domain()       
希望这将有助于其他人发现类似的问题

def initial(self, request, *args, **kwargs):     
    self.domain = self._get_domain()
    super(SubdomainAPI, self).initial(request, *args, **kwargs)        
def initial(self, request, *args, **kwargs):          
    super(SubdomainAPI, self).initial(request, *args, **kwargs) 
    self.domain = self._get_domain()