DRF自定义权限不会阻止视图

时间:2016-04-05 08:24:56

标签: python django django-rest-framework

因此,对于我的项目,我试图为视图实现自定义权限。我在String tipo = "type_1"; lista.addAll(personas.stream() .map(person -> new SimpleResultForm(tipo, person)) .collect(Collectors.toList())); 中创建了权限,如下所示:

permissions.py

非常简单,检查配置团队是否与您要求的团队页面匹配,如果不是这样,则检查用户是否阻止。

class TeamViewPermission(permissions.BasePermission): """ Global permission for viewing team pages """ def has_permission(self, request, view): team_id = self.kwargs.get('team_id') teamqs = MAIN_TEAMS.all() pk_list = [] for item in MAIN_TEAMS: pk_list.append(str(item.pk)) if team_id in pk_list: return True return False

views.py

我知道该页面应该返回True或False,因为我调试了它,虽然它没有阻止页面输出?它为页面返回False,但我仍然可以访问该页面,就像它返回True ..我在这里错过了什么?

1 个答案:

答案 0 :(得分:2)

看起来您正在混合基于djangos类的视图和DRF视图。 ListView是来自django而不是来自DRF的基于类的视图。因此,它不允许设置permission_classes

检查the docs以了解如何使用DRF API视图。