微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

不确定 Django 自定义用户组和权限的方法

如何解决不确定 Django 自定义用户组和权限的方法

我正在创建我的第一个 Django(3.1 版)网站,它只是一个带有主页和商店页面博客。我想创建自定义用户组,为我的博客定义特定角色(具有独特权限)。

这些组是:

  • 读者 - 匿名查看者和新帐户;仅对所有内容具有读取权限
  • 作者 - 需要登录;具有读取和创建权限;仅对自己的内容进行编辑和删除权限
  • 版主 - 需要登录;拥有所有内容的所有 CRUD 权限
  • 管理员 - 需要登录,拥有所有权限(超级用户

认情况下,所有新用户都在 读者 组中。 作者 将手动分配或最终通过在线表格申请来确定资格。 版主管理员当然会被手动分配。

我正在通过可能的未来发展来解决这个问题,例如允许用户组轻松扩展到其他网站页面。例如,作者 用户可享受 5% 的折扣,适用于所有商店商品等。

哪种创建用户组的方法最适合我的情况?我已经在 Django 管理面板中看到它通过扩展 AbstractBaseUser 和 UserBaseManager 类来创建自定义用户模型。

解决方法

我认为扩展 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'),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"),#---------------------
                       )

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?