作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要创建超过 1 个管理员用户,他们只能管理他在 django 中创建的用户的角色/权限。这个管理员应该只能看到他创建的用户,而不是另一个用户创建的用户。简而言之,我希望将 django 用作我的客户的 SaaS 模型,他只能在其中管理他的员工/用户。这可能吗?具体如何实现?例如。管理员 A 可以为他的公司 A 创建用户并为他们设置角色,管理员 B 可以为他的公司 B 创建用户并设置他们的角色。但同时管理员 A 不应该能够看到管理员 B 创建的用户,反之亦然。
最佳答案
第一步。 django-admin 启动项目 twoadminproject
第二步。 cd twoadminproject
第 3 步。 python manage.py startapp twoadminapp
第四步。更改“twoadminapp”应用程序的 models.py:
from django.db import models
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
created_by = models.CharField(max_length=30, blank=True, null=True)
第 5 步。更改设置.py:
# Add you app in INSTALLED_APPS list
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'twoadminapp',
]
# Add one line at the end
AUTH_USER_MODEL = 'twoadminapp.User'
第 6 步。 python manage.py makemigrations
第七步。 python manage.py 迁移
第 8 步。 python manage.py createsuperuser
(执行此命令两次以创建两个管理员用户)
第 9 步。更改“twoadminapp”应用程序的 admin.py:
from django.contrib import admin
from .models import User
# Register your models here.
class UserAdmin(admin.ModelAdmin):
def get_queryset(self, request):
users = super(UserAdmin, self).get_queryset(request)
return users.filter(created_by=request.user.username)
admin.site.register(User, UserAdmin)
因此,无论何时您从管理面板添加用户,您都必须在“添加用户表单”的创建者字段中填写管理员用户名,或者您可以在 forms.py 中初始化它
关于django - 如何在 django 中创建 2 级管理员用户,每个用户将只管理他创建的用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58641952/
我是一名优秀的程序员,十分优秀!