Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.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
Django[创建具有特定权限的用户]_Django_Python 3.x - Fatal编程技术网

Django[创建具有特定权限的用户]

Django[创建具有特定权限的用户],django,python-3.x,Django,Python 3.x,我正在开发一个电子学习平台,但是,有一个特定的要求 首先,管理员可以创建2种类型的用户[教师-学生] 管理员: 只有管理员才能为特定课程创建课程和家庭作业 将教师分配到特定的课程,并且只能查看该课程,其他课程他都无法访问 为学生分配特定的家庭作业和/或课程 老师: 老师只能看到课程[它被分配到]和作业,并且可以要求学生重做 学生: 学生-只有在老师要求的情况下,才能查看作业并提交和重做 我尝试了枯燥的原则,但解决不了这个问题 任何帮助都是非常感谢的 谢谢你如果我正确理解你的问题,像这样的模型结构

我正在开发一个电子学习平台,但是,有一个特定的要求

首先,管理员可以创建2种类型的用户[教师-学生]

管理员:

只有管理员才能为特定课程创建课程和家庭作业

将教师分配到特定的课程,并且只能查看该课程,其他课程他都无法访问

为学生分配特定的家庭作业和/或课程

老师:

老师只能看到课程[它被分配到]和作业,并且可以要求学生重做

学生:

学生-只有在老师要求的情况下,才能查看作业并提交和重做

我尝试了枯燥的原则,但解决不了这个问题

任何帮助都是非常感谢的


谢谢你

如果我正确理解你的问题,像这样的模型结构应该会让你开始学习。我故意省略了进口商品等,因为它们应该是显而易见的,或者很容易被谷歌搜索到

class User(AbstractUser):  # This model should be set as the AUTH_USER_MODEL in the settings.
    # The views to create courses should check whether `request.user.is_teacher` is true.
    is_teacher = models.BooleanField(default=False)

    # Likewise, the views one uses to assign courses or homework to users should check
    # whether the target user's `is_student` value is true.
    is_student = models.BooleanField(default=False)


class Course(models.Model):
    teacher = models.ForeignKey(User, related_name='courses_as_teacher')
    students = models.ManyToManyField(User, related_name='courses_as_student')
    # Add a name field, etc.


class Homework(models.Model):
    course = models.ForeignKey(Course)
    assignees = models.ManyToManyField(User)  # (students)
    # Add a name field, etc.

您可能还需要一个
家庭作业回复
模型来为给定学生对家庭作业的“回复”建模。

您的具体问题是什么?无法在其权限下创建特定用户[教师-学生]。首先要扩展抽象用户并添加两个字段,
教师
学生
。使用
user=user.objects.get()
然后使用
如果user.is\u superuser=True:…
。不确定这里出现了什么问题?非常感谢,您为我节省了很多时间,因为我正试图将每一个都作为一个应用程序来完成。非常感谢。