django的高级用户和普通用户

ubbxdtey  于 2023-04-13  发布在  Go
关注(0)|答案(2)|浏览(151)

我想区分用户模型,有高级用户和普通用户。我如何在Django中实现它,应该在users类中还是有其他方法?

5kgi1eie

5kgi1eie1#

有两种相对简单的方法。第一种是groups -请参阅这里的groups文档:
可以为组分配权限,然后您可以检查。这样,您只需将用户添加到组,而不是为每个用户分配每个权限。当有许多不同的权限集时,这特别有用。然后您可以检查用户是否属于this question组,或检查特定权限。
如果没有太多的其他权限,你可能想简单地添加一个字段到Custom User,(文档建议总是使用自定义用户)例如:

from django.contrib.auth.models import AbstractUser

class CustomUser(AbstractUser):
    is_premium = models.BooleanField(default=False)

然后在您的www.example.com中添加以下内容settings.py

AUTH_USER_MODEL = '<myapp>.CustomUser'

AbstractUser是一个类,它允许你扩展普通用户而不破坏其他任何东西。有了这个字段,你可以很容易地测试,例如:

if request.user.is_premium:
l2osamch

l2osamch2#

你实际上已经可以通过可用的功能来做到这一点。Django已经有了组,你可以给组附加权限。
这意味着您可以定义一个名为“高级”的组,例如将非高级用户没有的权限附加到该高级组。然后您可以将用户添加到该组。
有关详细信息,请阅读文档的 * 权限和授权 * 部分。

相关问题