django-rest-framework-guardian安装与使用指南

django-rest-framework-guardian安装与使用指南

django-rest-framework-guardiandjango-guardian support for Django REST Framework项目地址:https://gitcode.com/gh_mirrors/dj/django-rest-framework-guardian

1. 目录结构及介绍

.
├── src/rest_framework_guardian      # 核心源代码模块
│   └── ...
├── tests                            # 测试套件
│   └── ...
├── gitignore                        # 忽略文件列表
├── CHANGELOG.md                     # 更新日志
├── LICENSE                          # 许可证文件,遵循BSD-3-Clause
├── MANIFEST.in                      # 包含打包时需要的额外文件清单
├── README.md                        # 项目简介和快速入门指导
├── manage.py                        # Django管理脚本,用于运行服务器等操作
├── setup.cfg                        # 配置Python包设置
├── setup.py                         # Python包的构建脚本
└── tox.ini                           # 用来自动化测试环境配置的文件

此结构展示了django-rest-framework-guardian的基础布局,其中src/rest_framework_guardian包含与Django REST Framework集成的关键代码;tests目录用于存放所有单元测试和集成测试;setup.py和相关文件确保了项目的安装和打包流程。

2. 项目的启动文件介绍

  • manage.py: 这是启动Django项目的入口点,它提供了一系列命令来管理和运作Django应用,如运行服务器(python manage.py runserver)、数据库迁移(python manage.py migrate)等。在整合django-rest-framework-guardian之前和之后,这个文件基本保持不变,重要的是确保项目设置中包含了必要的依赖和服务。

3. 项目的配置文件介绍

在Django中,核心的配置位于settings.py文件(通常位于你的Django app的根目录下),而集成django-rest-framework-guardian需进行以下配置:

  1. INSTALLED_APPS 添加:

    INSTALLED_APPS = [
        'rest_framework',         # 确保REST框架已添加
        'guardian',               # 添加guardian
        # 其他app...
    ]
    
  2. AUTHENTICATION_BACKENDS 添加:

    AUTHENTICATION_BACKENDS = [
        'django.contrib.auth.backends.ModelBackend', # 默认认证后端
        'guardian.backends.ObjectPermissionBackend', # 添加对象权限后端
    ]
    
  3. 对象权限的额外配置(非直接在settings.py,但属于应用配置范畴):

    • 若要启用基于视图的对象权限过滤,你需要在视图或全局配置中使用ObjectPermissionsFilter
    • 可以自定义权限类,例如扩展DjangoObjectPermissions,并修改perms_map以包括'view'权限:
    from guardian.shortcuts import get_objects_for_user
    from rest_framework.permissions import BasePermission
    
    class CustomDjangoObjectPermissions(DjangoObjectPermissions):
        perms_map = {
            **DjangoObjectPermissions.perms_map,
            'GET': ['%(app_label)s.view_%(model_name)s'],
        }
    

确保这些配置正确地加入到你的Django项目的settings.py中,这样才能实现django-rest-framework-guardian的功能,进而为你的API增加细粒度的对象级权限控制。

django-rest-framework-guardiandjango-guardian support for Django REST Framework项目地址:https://gitcode.com/gh_mirrors/dj/django-rest-framework-guardian

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吴年前Myrtle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值