Django-全球字典

时间:2018-09-01 14:15:35

标签: python django

我正在尝试建立一个教师/学生模型,其中每个学生有一个(或零个)老师,而老师有多个学生。老师应该能够看到学生列表,并且学生除了自己的老师以外,不需要看到其他任何东西。

老师和学生之间的区别很少供我使用。因此,我只创建了一个自定义模型用户,注册时可以选择您是学生还是管理员。如果您是管理员,则必须输入“班级代码”,学生可以使用您的姓名注册。

class User(AbstractBaseUser, PermissionsMixin):
    "username, password, email, etc.. goes here" 

    usertype = models.CharField(max_length=140, null=True)
    classcode = models.CharField(max_length=140, null = True, unique=True)
    teacher = models.ForeignKey(
                settings.AUTH_USER_MODEL,
                on_delete=models.CASCADE,
                null = True
                )
    objects = UserManager()
    USERNAME_FIELD = "username"
    REQUIRED_FIELDS = ['email', 'first_name', 'last_name']
    def __str__(self):
        return self.username

对于教师而言,教师字段为空,对于学生而言,显然存在与教师的链接。

我正在尝试管理注册。

def create_user(self, email, username, password, first_name, last_name):
    user = self.model(
         email = self.normalize_email(email),
         username = username, first_name = first_name, last_name = last_name)
    if user.usertype == "admin":  # user is a teacher 
        user.is_staff = True 

        ### put code here ###

    user.set_password(password)
    user.save()
    return user

我当时在想,当一名老师注册时,我会从{classCode:老师的用户名(或老师自己(?))}}中得到一个字典。我意识到制作一个全局变量来做到这一点很困难。有没有不使用字典就可以解决这个问题的简便方法?

0 个答案:

没有答案