Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django中的不同用户级别_Python_Django_Django Models_Django Templates_Django Authentication - Fatal编程技术网

Python Django中的不同用户级别

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

我正在使用Django的auth

我想区分3种类型的用户,并为每种类型的用户提供不同的内容

我如何区分这三种类型?我应该添加一个指定用户类型的选项字段,还是创建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.contrib.auth
主要用于身份验证和授权

您应该做什么取决于
用户类型的确切含义

在<代码>类型< /代码>代表用户拥有不同级别的授权的典型情况下,那么您应该考虑使用权限系统(或者运行现有的系统,例如参见)。 如果

type
表示用户的固有属性(如男性/女性/其他),则使用自定义用户并向其添加新的ChoiceField


如果
type
表示更复杂的内容,可能与其他模型有关系,那么我会选择一个新的模型
UserType

如果您只需要为不同类型的用户分配不同的权限,请继续并创建一个用户组 这很简单 来自django.contrib.auth.models导入组

newgroup=Group.objects.create(name=Group\u name)

以下答案还将帮助您设置权限