我正在使用Django的身份验证。
我想区分3种类型的用户,并为每种类型的用户提供不同的内容。
如何区分这三种类型?我应该添加一个指定用户类型的选项字段,还是创建3个组并将用户添加到正确的组中?
如何根据用户类型显示不同的内容?
答案 0 :(得分:1)
创建三个不同的类:
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
答案 1 :(得分:1)
请注意,django.contrib.auth
主要适用于身份验证和授权。
你应该做什么取决于type of user
的确切含义。
在type
代表用户拥有的不同授权级别的典型情况下,您应该考虑使用权限系统(或运行现有系统,请参阅例如here)。
如果type
表示用户的固有属性(如男/女/其他),则使用自定义用户并向其添加新的ChoiceField。
如果type
表示更复杂的东西,可能与其他模型有关系,那么我会选择新模型UserType
。
答案 2 :(得分:0)
如果您只需要为不同类型的用户分配不同的权限,请继续创建用户组 它非常简单 来自django.contrib.auth.models导入组
newgroup = Group.objects.create(name = group_name)
以下答案也可以帮助您设置权限