不确定 Django 自定义用户组和权限的方法
Posted
技术标签:
【中文标题】不确定 Django 自定义用户组和权限的方法【英文标题】:Unsure of approach for Django custom user groups and permissions 【发布时间】:2021-05-25 23:20:32 【问题描述】:我正在创建我的第一个 Django (ver 3.1) 网站,它只是一个带有主页和商店页面的博客。我想创建自定义用户组,为我的博客定义特定角色(具有唯一权限)。
这些组是:
读者 - 匿名观众和新帐户;仅拥有所有内容的读取权限 作者 - 需要登录;具有读取和创建权限;仅限自己的内容的编辑和删除权限 版主 - 需要登录;拥有所有内容的所有 CRUD 权限 管理员 - 需要登录,拥有所有权限(超级用户)默认情况下,所有新用户都在 Reader 组中。 作者可以手动分配,也可以最终通过在线表格申请来确定资格。 Moderator 和 Admin 当然是手动分配的。
我正在通过可能的未来发展来解决这个问题,例如允许用户组轻松扩展到其他网站页面。例如,Author 用户适用于所有商店商品的 5% 折扣等
哪种创建用户组的方法最适合我的情况?我已经看到它在 Django 管理面板中完成,并通过扩展 AbstractBaseUser 和 UserBaseManager 类创建自定义用户模型。
【问题讨论】:
【参考方案1】:我认为扩展 AbstractUser 模型是一个好方法。这样的事情怎么样?
class CustomUser(AbstractUser):
"Define the extra fields related to User here"""
first_name = models.CharField(_('First Name of User'), blank=True, max_length=20)
last_name = models.CharField(_('Last Name of User'), blank=True, max_length=20)
# - - - Some more User fields according to your need s
class Meta:
permissions = (("can_read_content", "To provide read facility on all content"),
#---------------------
)
【讨论】:
在这种方法中,我是否会为每个用户类型定义 CustomUser 类,比如 CustomUserReader 类?或者我会为每个用户类型实例化这个 CustomUser 类吗?以上是关于不确定 Django 自定义用户组和权限的方法的主要内容,如果未能解决你的问题,请参考以下文章