Python Django中的不同用户级别
我正在使用Django的auth 我想区分3种类型的用户,并为每种类型的用户提供不同的内容 我如何区分这三种类型?我应该添加一个指定用户类型的选项字段,还是创建3个组并将用户添加到正确的组Python Django中的不同用户级别,python,django,django-models,django-templates,django-authentication,Python,Django,Django Models,Django Templates,Django Authentication,我正在使用Django的auth 我想区分3种类型的用户,并为每种类型的用户提供不同的内容 我如何区分这三种类型?我应该添加一个指定用户类型的选项字段,还是创建3个组并将用户添加到正确的组 如何根据用户类型呈现不同的内容?创建三个不同的类: class Level1(models.model): member = models.ForeignKey(User) class Level2(models.model): member = models.ForeignKey(User
如何根据用户类型呈现不同的内容?创建三个不同的类:
class Level1(models.model):
member = models.ForeignKey(User)
class Level2(models.model):
member = models.ForeignKey(User)
class Level3(models.model):
member = models.ForeignKey(User)
要在视图中为不同级别的每个用户检查和显示不同的内容,请执行以下操作:
if Level1.objects.filter(memeber=user).count() > 0:
// present the content you want
else Level2.objects.filter(memeber=user).count() > 0:
// present the content you want
else Level3.objects.filter(memeber=user).count() > 0:
// present the content you want
请注意,
django.contrib.auth
主要用于身份验证和授权
您应该做什么取决于用户类型的确切含义
在<代码>类型< /代码>代表用户拥有不同级别的授权的典型情况下,那么您应该考虑使用权限系统(或者运行现有的系统,例如参见)。
如果
type
表示用户的固有属性(如男性/女性/其他),则使用自定义用户并向其添加新的ChoiceField
如果type
表示更复杂的内容,可能与其他模型有关系,那么我会选择一个新的模型UserType
如果您只需要为不同类型的用户分配不同的权限,请继续并创建一个用户组
这很简单
来自django.contrib.auth.models导入组
newgroup=Group.objects.create(name=Group\u name)
以下答案还将帮助您设置权限