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

如何在前端创建Todo时从用户下拉框中移除Super Admin?

移除表单下拉框中的Super Admin用户

后端过滤推荐方案(更安全)

直接从数据源层面排除超级管理员,避免前端篡改提交非法数据:

  • 若使用Django ModelForm,重写表单初始化方法过滤用户:
from django import forms
from django.contrib.auth.models import User

class TodoForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        # 筛选出非超级管理员用户
        self.fields['assigned_to'].queryset = User.objects.filter(is_superuser=False)
  • 若通过视图传递用户列表到前端,在视图层过滤:
def create_todo(request):
    # 获取排除超级管理员的用户集合
    users = User.objects.filter(is_superuser=False)
    return render(request, 'create_todo.html', {'users': users})

前端过滤方案(仅用于展示,存在安全风险)

如果只能在前端处理,渲染下拉选项时跳过Super Admin:

  • Vue.js示例:
<select v-model="selectedUser">
  <option 
    v-for="user in users" 
    :key="user.id" 
    v-if="!user.is_superuser" 
    :value="user.id"
  >
    {{ user.username }}
  </option>
</select>
  • 原生JavaScript示例:
// 假设下拉框ID为userSelect
const userSelect = document.getElementById('userSelect');
Array.from(userSelect.options).forEach(option => {
    // 根据用户名判断并移除Super Admin选项
    if (option.textContent.trim() === 'Super Admin') {
        userSelect.removeChild(option);
    }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 19:01:05