是否可以将角色/组赋予管理员用户以仅删除他们创建的用户?
例如: admin1 创建了 user1, user2 admin2 创建了 user3, user4
admin1 应该只有删除 user1 和 user2 的权限,而没有对 user3 和 user4 的任何访问权限。
答案 0 :(得分:1)
在用户模型中,您可以将文件创建者 ForeignKey
添加到管理员:
class User(AbstractUser):
creator = models.ForeignKey(User, on_delete=models.CASCADE)
......
当管理员删除用户时检查创建者:
def userDelete(request, userId):
user = get_object_or_404(User, id=userId)
if user.creator == request.user: // have access
article.delete()
messages.success(request, 'User Delete')
return redirect('***:***')
答案 1 :(得分:1)
由于在项目中期更改用户模型可能会导致 complications,因此扩展现有用户模型的另一种方法可以是:
<option>
现在您可以使用@ming 在他们的回答中提到的 from django.db import models
from django.contrib.auth.models import User
class CustomUser(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='custom_user')
created_by = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
字段。