Django - 一对多关系

Django - One to Many relationship

我有用户和用户榜样。有 3 个用户角色,教师、学生、管理员。一个用户应该只有一个角色,但如果我建立一对一关系,则只有一个用户可以附加到一个角色。我希望可以有很多学生、很多老师、很多管理员,但一个用户必须只有一个角色。我不知道如何设计这种关系。

我有 2 个模型作为用户和 User_Role。

class role(models.Model):
   role_name = models.CharField(max_length=64)

class user(models.Model):
   name = models.CharField(max_length=64)

您应该定义一个从 User 模型到 RoleForeignKey,因此:

class Role(models.Model):
    role_name = models.CharField(max_length=64)

class User(models.Model):
    name = models.CharField(max_length=64)
    role = models.<strong>ForeignKey(Role</strong>, on_delete=models.PROTECT<strong>)</strong>

Note: Models in Django are written in PascalCase, not snake_case, so you might want to rename the model from user to User.