You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django应用中仅超级用户或Staff可创建对象的实现及操作咨询

实现Django中仅允许超级用户/Staff创建对象的方案

我最近开发了一个Django应用,核心需求是限制Data对象的创建权限,仅允许超级用户(Superuser)或Staff成员操作,下面是我的具体实现和测试过程:

1. 模型定义

首先是Data模型的代码,仅包含一个存储内容的文本字段:

class Data(models.Model):
    content = models.TextField()

2. 视图权限控制

在创建视图中,我加入了身份校验逻辑,确保只有符合权限要求的用户才能执行创建操作:

def data_create(request):
    # 校验用户身份:必须是staff或超级用户
    if not request.user.is_staff and not request.user.is_superuser:
        raise Http404
    else:
        # 执行Data对象的创建逻辑
        # ...(此处省略具体对象创建的代码)

这里的逻辑很直接:如果当前请求的用户既不是Staff成员也不是超级用户,直接返回404错误;只有满足权限条件的用户,才能进入后续的对象创建流程。

3. 测试验证

完成代码实现后,我创建了两个测试用户来验证权限控制效果:

  • 超级用户:admin
  • 普通用户:test

之后我以超级用户admin的身份登录Django admin面板,顺利完成了Data对象的创建操作;而用普通用户test尝试访问data_create视图时,会直接触发404错误,完全符合预期的权限限制要求。

内容的提问来源于stack exchange,提问作者user9628701

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:31:57