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
需进行以下配置:
-
INSTALLED_APPS 添加:
INSTALLED_APPS = [ 'rest_framework', # 确保REST框架已添加 'guardian', # 添加guardian # 其他app... ]
-
AUTHENTICATION_BACKENDS 添加:
AUTHENTICATION_BACKENDS = [ 'django.contrib.auth.backends.ModelBackend', # 默认认证后端 'guardian.backends.ObjectPermissionBackend', # 添加对象权限后端 ]
-
对象权限的额外配置(非直接在
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增加细粒度的对象级权限控制。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考