Skip to content

第五站:表单、认证、权限与 Admin ​

课程首页 | 路线映射

本站建立三道门:表单验证输入,认证确认身份,授权判断这个身份能否操作当前工单。Admin 只服务受信任的内部运营。

运行准备 ​

bash
python manage.py createsuperuser
python manage.py runserver

实现见表单、身份与后台边界和会话、对象权限与批量后台。

交付物 ​

  • TicketForm 使用字段白名单,不允许客户端指定负责人或关闭状态。
  • 创建和编辑视图要求登录;编辑还校验对象权限。
  • Admin 有搜索、过滤、只读审计字段和受限查询集。
  • 测试覆盖匿名、普通用户、对象所有者和管理员。

深水边界 ​

is_staff 只表示可进入 Admin,不等于可看所有业务数据。模型权限默认是按模型的,不是对象级。自定义用户模型必须尽早确定;课程沿用默认用户,避免中途迁移身份主键。

练习(先做) ​

  1. 让普通用户只能编辑分配给自己的工单。
  2. Admin 中禁止普通 staff 删除关闭工单。
  3. 写越权测试,确保猜到别人的主键仍然得到 404 或 403。

练习答案 | 下一站

用心记录每一步成长