Django中不同的用户级别
Posted
技术标签:
【中文标题】Django中不同的用户级别【英文标题】:DIfferent user levels in Django 【发布时间】:2015-07-09 19:56:00 【问题描述】:我正在使用 Django 的身份验证。
我想区分3类用户,为每类用户呈现不同的内容。
如何区分这三种类型?我应该添加一个指定用户类型的选择字段还是创建 3 个组并将用户添加到正确的组?
如何根据用户类型呈现不同的内容?
【问题讨论】:
【参考方案1】:如果您只需要为不同类型的用户分配不同的权限,请继续创建用户组 它很简单 from django.contrib.auth.models 导入组
newgroup = Group.objects.create(name=group_name)
下面的答案也会帮助你设置权限
User groups and permissions
【讨论】:
【参考方案2】:请注意,django.contrib.auth
主要适用于身份验证和授权。
您应该做什么取决于type of user
的确切含义。
在type
代表用户拥有不同权限级别的典型情况下,您应该考虑使用权限系统(或运行现有的权限系统,例如here)。
如果type
表示用户的固有属性(如男/女/其他),则使用自定义用户并向其添加新的 ChoiceField。
如果type
代表更复杂的东西,可能会与其他模型有关系,那么我会选择一个新模型UserType
。
【讨论】:
【参考方案3】:创建三个不同的类:
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中不同的用户级别的主要内容,如果未能解决你的问题,请参考以下文章