关于Django页面的特定级别访问

时间:2015-06-26 08:37:23

标签: django

我目前有一个拥有三种权限的网站:

  1. 有效
  2. 员工
  3. 超级用户
  4. 我想要做的是限制用户可以查看的内容,具体取决于他在驱动程序上的子访问级别,即驱动程序有三个子访问级别 - 100,200,300。我正在考虑这样做

        def email_check(user):
        return user.accesslevel
    
        @user_passes_test(accesslevel=100)
        def my_view(request):
           ...
    

    如何将子访问级别的附加属性添加到用户模型?有没有其他方法来实现这个?此外,由于这是一个已经存在的项目,因此已经有很多用户。我还需要为他们提供默认访问值。

1 个答案:

答案 0 :(得分:0)

user_passes_test一起使用的想法对我来说很好。

所以你的主要问题基本上是如何扩展用户模型。本主题在Django documentation: Customizing authentication下详细介绍。

总而言之,主要有两种方法可供选择。一个是extend your user model,其自定义模型与用户和任何自定义字段(如访问级别)具有一对一的关系。

或者,您可以提供自定义用户模型和substitute the Django User model,但这似乎不适合您的情况。