当前位置: 首页 > news >正文

东莞建设网站推广公司地址详情页设计的原则

东莞建设网站推广公司地址,详情页设计的原则,做网站工作室找客户难,哈尔滨最新发布公告drf 对象级权限 Django REST Framework#xff08;DRF#xff09;提供了对象级别权限#xff08;Object-level permissions#xff09;来控制特定对象的访问权限。 简单来说#xff1a;通过视图类中的self.get_object(pk)得到一个obj对象(视图对象)#xff0c;在与requ…drf 对象级权限 Django REST FrameworkDRF提供了对象级别权限Object-level permissions来控制特定对象的访问权限。 简单来说通过视图类中的self.get_object(pk)得到一个obj对象(视图对象)在与request.user对象(请求对象)进行比较来判断该用户是否有权限。 def retrieve(self, request, pk):obj self.get_object(pk) #获取视图对象self.check_object_permissions(request, obj) #调用权限的has_object_permission方法来判断是否有权限用途因为要使用到self.get_object(pk)方法当然也可以重写一个该方法但该方法仅限于:获取单个对象(retrieve)删除单个对象(destroy)更新单个对象(update) 自动实现对象级权限 model.py class User(model.Model):username models.CharField(用户名, max_length32)password models.CharField(密码, max_length32)email models.EmailField(邮箱, max_length32, blankTrue)phone models.CharField(手机号, max_length11, blankTrue)created models.DateTimeField(创建时间, auto_now_addTrue)updated models.DateTimeField(更新时间, auto_nowTrue)class getArticlePermissions(BasePermission):def has_object_permission(self, request, view, obj):try:return obj.user request.userexcept:return obj request.userclass UserView(GenericAPIView):queryset User.objects.all() #这里一定要用户模型serializer_class categoryModelSerializerpermission_classes [getArticlePermissions,]def get(self,request,pk):pass#说明因为GenericAPIView中有queryset方法而get_object(pk)方法有能得到一个对象就可以自动的调用self.check_object_permissions(request, obj)进而实现对象级权限但这种有很强的局限性 1. 视图要包含queryset属性 2. queryset 对象模型 3. 仅限于获取pk属性的方法一般是单个对象 (put,delete,get) 4. pk的值一定只能跟queryset有关pk是对象的id 自定义对象级权限 当调用.get_object()时由REST框架的通用视图运行对象级权限检测。如果你正在编写自己的视图并希望强制执行对象级权限检测或者你想在通用视图中重写get_object方法那么你需要在检索对象的时候显式调用视图上的.check_object_permissions(request, obj)方法。 class getArticlePermissions(BasePermission):def has_object_permission(self, request, view, obj):try:return obj.user request.userexcept:return obj request.userclass articleView(GenericViewSet, mixins.ListModelMixin, mixins.UpdateModelMixin, mixins.CreateModelMixin,mixins.DestroyModelMixin, mixins.RetrieveModelMixin):queryset Category.objects.all()serializer_class categoryModelSerializerpermission_classes [IsAuthenticated, getArticlePermissions]def retrieve(self, request, pkNone, *args, **kwargs):user request.user #获取请求对象print(user)if user: #判断请求对象是否有值try:obj Category.objects.filter(useruser, pkpk).first() #获取视图对象except:return Response({message: 失败}) self.check_object_permissions(request, obj) #调用权限的has_object_permission进行对象级权限校验serializer categoryModelSerializer(instanceobj) #序列化return Response(serializer.data)return Response({status_code: 500, message: 违法登录})注意 ​ 如果你的用户对象是自定义对象的话并且又创建了超级用户这样的话就有两个模型类 ​ 并且你配置了如下设置 DEFAULT_AUTHENTICATION_CLASSES: (...rest_framework.authentication.SessionAuthentication,rest_framework.authentication.BasicAuthentication...),则你在未登录的情况下request.user会是你的超级用户而不是匿名对象而造成的一切的因素是你配置了rest_framework.authentication.SessionAuthentication,只需要将它注释即可
http://www.yayakq.cn/news/3835/

相关文章:

  • 网站游戏正规网站建设电子商务网站建设与管理感想
  • 广西南宁房产网站建设网页设计作品及代码
  • 做字幕网站有哪些dw软件下载官方网站
  • 在哪个网站做一照一码二手交易网站开发可参考文献
  • 网站空间合同黄页网络的推广网站有哪些
  • 网站可信认证怎么建设一个响应式网站
  • 辽源做网站wordpress 通讯录 插件
  • 宁夏住房和城乡建设厅网站首页管理系统网站
  • 网站登录页面网页制作需要学多久
  • 企业网站建设开发四个阶段网站备案主体域名
  • 手机网站建设免费鹰潭网站开发
  • dreamwearver怎么做静态网站南宁网站建设云尚网络
  • qt网站开发新电商运营与推广
  • 建个企业网站一年需要多少钱小程序推广运营的公司
  • 免费行情软件app网站mnw直免费下载安装app
  • 公司网站建设为什么不直接买模版wordpress软文文件
  • 浦东新区建设工程安全质量监督站网站工商年检网上申报系统
  • 网站图片大小建设申请网站首页
  • 自建企业网站教程wordpress 备份云盘
  • 网站广告下悬浮代码怎么做wordpress安全教程
  • 商城网站设计说明书视频网站做视频节目赚钱吗
  • 网站开发前台与后台的交互俄罗斯乌克兰最新战况
  • 青岛做网站推广公司哪家好自己做软件的网站
  • 电商网站开发流程图平台设计标准
  • 网站制作 成都祥云网站建设
  • 网站建设嗟商文件外贸免费开发网站模板
  • 线上投票怎么做苏州网站建设优化
  • 企业网站建设价钱做微课常用的网站
  • 网站搭建十大品牌公司网站空间租用费用
  • 谈谈对网站建设的认识站长收录平台