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

私募基金网站怎么做seo网站首页改版影响优化

私募基金网站怎么做seo,网站首页改版影响优化,seo 网站地图优化,番禺 大石网站建设【用户管理与权限 - 篇四】后端权限定义:模型与 API 实现 前言准备工作第一部分:设计并创建 `Permission` 模型第二部分:更新 `Role` 模型以关联 `Permission`第三部分:生成并应用数据库迁移第四部分:创建 Serializers第五部分:创建 ViewSets第六部分:注册 API 路由第七… 【用户管理与权限 - 篇四】后端权限定义:模型与 API 实现 前言准备工作第一部分:设计并创建 `Permission` 模型第二部分:更新 `Role` 模型以关联 `Permission`第三部分:生成并应用数据库迁移第四部分:创建 Serializers第五部分:创建 ViewSets第六部分:注册 API 路由第七部分:通过数据迁移预置基础权限数据第八部分:后端 API 初步测试 总结 前言 在用户管理与权限的前三篇文章中,我们已经成功搭建了用户和角色的管理基础,包括后端的模型、API 以及前端的用户管理和角色管理界面。现在,是时候为我们的系统引入真正的“权限”概念了,这是实现细粒度访问控制的核心。 本文将聚焦于后端权限的定义、模型设计以及相关的 API 实现,并确保我们有一些基础的权限数据可供后续使用。我们将: 设计并创建一个 Permission (权限) 模型,用于定义系统中各种可操作的权限点。更新 Role (角色) 模型,使其与 Permission 模型建立多对多关联,从而实现“角色拥有某些权限”的逻辑。创建相应的 Serializer 和 ViewSet,提供获取所有权限点列表以及更新角色所拥有权限的 API。通过数据迁移预置一些基础的权限数据,为后续前端的权限分配界面和后端的权限校验做好准备。什么是权限点 (Permission)? 权限点通常代表系统中一个具体的操作或对某个资源的访问许可。例如: view_project (查看项目)add_project (新建项目)manage_users (管理用户)我们将这些权限点定义好后,就可以将它们分配给不同的角色,用户通过继承其角色的权限来获得相应的操作能力。 准备工作 Django 后端项目已就绪: 确保你的 test-platform/backend 项目结构完整,用户和角色模型已创建。数据库迁移已同步。Postman 或其他 API 测试工具。基础模型 (BaseModel) 已定义 (假设包含 name, description, create_time, update_time 等通用字段)。第一部分:设计并创建 Permission 模型 我们需要一个模型来存储系统中的所有权限点。 在 api/models.py 中定义 Permission 模型: # test-platform/api/models.py import uuid from django.db import models from django.contrib.auth.models import User # ... (User, Role, UserProfile 等模型定义保持不变) ...class Permission(BaseModel):"""权限模型存储系统中的原子权限点。'name' 和 'description' 字段从 BaseModel 继承。"""# 权限编码/标识符,应该是唯一的,用于程序内部判断# 例如: 'project:view_list', 'project:create', 'user:manage'code = models.CharField(max_length=100, unique=True, verbose_name="权限编码")# 权限分组,方便管理,例如 "项目管理", "用户管理"group = models.CharField(max_length=50, null=True, blank=True, verbose_name="权限分组")class Meta:verbose_name = "权限"verbose_name_plural = "权限列表"ordering = ['group', 'name']def __str__(self):group_prefix = f"{self.group}: " if self.group else ""return f"{group_prefix}{self.name} ({self.code})"代码解释: code: 权限的唯一编码,这是程序进行权限判断时主要依据的字段。建议使用一种有层级或模块化的命名方式,如 resource:action (例如 project:create)。name: 权限的易读名称,用于在界面上展示给管理员 (继承自 BaseModel)。description: 权限的详细描述 (继承自 BaseModel)。group: 用于对权限进行逻辑分组,方便在权限分配界面展示。 第二部分:更新 Role 模型以关联 Permission 现在,我们需要修改 Role 模型,使其能够拥有多个权限。 在 api/models.py 中修改 Role 模型: # test-platform/api/models.py class Role(BaseModel):"""角色模型继承自 BaseModel 以获得 name, description, create_time, update_time 字段。"""permissions = models.ManyToManyField('Permission', # 关联到 Permission 模型blank=True, verbose_name="角色权限",related_name="roles" # 从 Permission 可以通过 .roles 反向查询拥有该权限的角色)class Meta:verbose_name = "角色"verbose_name_plural = "角色列表"ordering = ['name']def __str__(self):return self.name关键变更: permissions = models.ManyToManyField(Permission, ...): 在 Role 模型上添加了一个多对多字段,直接关联到 Permission 模型。这意味着一个角色可以拥有多个权限,一个权限也可以被多个角色所拥有。 第三部分:生成并应用数据库迁移 由于我们修改了 Role 模型并新增了 Permission 模型,需要进行数据库迁移。 在终端中运行: python manage.py makemigrations api python manage.py migrate api 第四部分:创建 Serializers 我们需要为 Permission 模型创建一个 Serializer,并更新 RoleSerializer 以处理权限的关联。 创建 PermissionSerializer (api/serializers.py): # test-platform/api/serializers.py from typing import List from rest_framework import serializers from django.contrib.auth.models import User from .models import Project, Module, TestCase, TestPlan, TestRun, TestCaseRun, Permission, Role, UserProfile, User # 确保导入 Permission # ... (其他 Serializer) ...class PermissionSerializer(serializers.ModelSerializer):class Meta:model = Permission# BaseModel 包含 name, description, create_time, update_time# 确保你的 BaseModel 确实有这些字段,或者在这里显式定义fields = ['id', 'name', 'code', 'description', 'group', 'create_time', 'update_time'
http://www.zqtcl.cn/news/869130/

相关文章:

  • 橙色企业网站源码网站下载软件
  • 满足客户的分销管理系统seo搜索引擎优化技术教程
  • 链接网站制作住房建设部官方网站专家注册
  • 北京保障性住房建设投资中心网站以网络营销为主题的论文
  • 数字火币交易网站开发网站建设设计图图片
  • 惠民建设局网站东莞公司建设网站
  • 网站建设与维护教学课件煤炭网站建设规划书
  • 北京建设网站有哪些公司黄陌陌网站怎么做
  • 视频网页制作教程网站优化防范
  • 做优化网站注意什么开发者模式开着好不好
  • 网站顾客评价网站中怎么做网站统计
  • 网站建设安全措施表白网站是怎么做的
  • 一个服务器可以做几个网站百度北京公司地址全部
  • 武侯区网站建设哪里好点个人社保缴费比例是多少
  • 创建属于自己的网站定制应用软件有哪些
  • 网站建设类岗位建设工程施工合同示范文本2023最新版
  • 建站设计公司wordpress 跨域 cros
  • 做网站的公司哪好工程设计东莞网站建设技术支持
  • 虹口网站开发开发公司设计管理部绩效考核
  • 网站改版升级通知国外服务器公司有哪些
  • 做网站的s标的软件深圳网站建设 湖南岚鸿
  • 设计网站建设的合同书公司装修合同范本
  • 门户网站的好处企业邮箱系统
  • 重庆企业建站公司有那些网站做结伴旅游的
  • 创意营销策划案例网站网页制作及优化
  • 网站上动画视频怎么做的建设兵团12师教育局网站
  • 博客网站开发思维导图app网站制作公司
  • 池州网站建设有哪些公司兴义网站seo
  • seo优化网站模板网站建设的七大优缺点
  • 天猫国际采取的跨境电商网络营销方式关键词排名优化公司推荐