django rest framework的基于操作的权限。

django-rest-action-permissions的Python项目详细描述


https://travis-ci.org/apirobot/django-rest-action-permissions.svg?branch=masterhttps://codecov.io/gh/apirobot/django-rest-action-permissions/branch/master/graph/badge.svghttps://badge.fury.io/py/django-rest-action-permissions.svg

django rest操作权限

django-rest-action-permissions允许您为viewset类提供的每个操作定义权限。

安装

使用pip安装:

$ pip install django-rest-action-permissions

使用量

此库允许您定义如下权限:

# permissions.pyfromrest_framework.permissionsimport(AllowAny,BasePermission,IsAdminUser,IsAuthenticated)fromrest_action_permissions.permissionsimportActionPermissionclassIsTweetOwner(BasePermission):defhas_object_permission(self,request,view,obj):returnobj.owner==request.userclassTweetPermission(ActionPermission):# The admin user has all permissions.enough_perms=IsAdminUser# Corresponding permissions for each action.create_perms=IsAuthenticatedretrieve_perms=AllowAnylist_perms=AllowAnyupdate_perms=IsTweetOwnerdelete_perms=IsTweetOwnerretweet_perms=IsAuthenticatedundo_retweet_perms=IsAuthenticated# General read/write permissions.# Used if corresponding action permission hasn't been specified.read_perms=AllowAnywrite_perms=IsAuthenticated&IsTweetOwner

上面定义的权限对应的视图集:

# views.pyfromrest_frameworkimportviewsetsfromrest_framework.decoratorsimportdetail_routefrom.modelsimportTweetfrom.permissionsimportTweetPermissionfrom.serializersimportTweetSerializerclassTweetViewSet(viewsets.ModelViewSet):queryset=Tweet.objects.all()serializer_class=TweetSerializerpermission_classes=(TweetPermission,)defperform_create(self,serializer):serializer.save(owner=self.request.user)@detail_route(methods=['POST'])defretweet(self,request,*args,**kwargs):...@detail_route(methods=['POST'])defundo_retweet(self,request,*args,**kwargs):...

学分

这个库的接口是受taiga项目启发的。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在java中的字符串字符下打印星号(*)   java在比较数据后得到错误的结果   java如何在使用JSP创建的网站中创建父子关系和处理?   java配置单元UDF:无法执行求值方法   java GAE项目Intellij远程调试在关闭时不释放端口   java按钮上的放大和缩小功能点击JfreeChart折线图?   java Selenium Chrome Web驱动程序SessionNotCreatedException   java由ADFactoryBuilder生成的线程工厂是线程安全的吗?   java将字符串[]传递给另一个类Android(使用intent)   我为什么要嘲笑java?   JavaLiferay门户不将对象从流程阶段发送到jsp   java我想在单击每个树节点时将要添加的信息放入jpanel jscrollpane中   在Java中模拟数组引用(即对引用的引用)的按引用传递   Jackson将JSON属性反序列化为不同的Java对象   java使用JSP/servlet在网页上显示Excel工作表?   仿射变换Java:使用仿射变换时游戏速度减慢   Servlet JBoss AS 7的java EJB注入   在Oracle数据库中使用Java的plsql   java管理Maven项目中的库依赖项   JavaEclipseLink(JPA)异常:复合主键@JoinColumn