【发布时间】:2022-08-10 09:04:23
【问题描述】:
所以在我的项目中,我有一个用户模型和一个学校模型。我的用户模型有一个 schools 字段,该字段与 School 模型具有 M2M 关系。现在我想知道的是,如何创建一个可以获取用户电子邮件和学校 ID 的视图,并从 user 所属的学校中添加或删除学校。
这是我的user model:
class User(AbstractBaseUser, PermissionsMixin):
username = models.CharField(max_length=255, unique=True, db_index=True)
email = models.EmailField(max_length=255, unique=True, db_index=True)
is_verified = models.BooleanField(default=False)
is_active = models.BooleanField(default=False)
is_staff = models.BooleanField(default=False)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now_add=True)
schools = models.ManyToManyField(\"School\", related_name=\"members\")
USERNAME_FIELD = \'email\'
REQUIRED_FIELDS = [\'username\']
objects = UserManager()
def __str__(self):
return self.email
def tokens(self):
refresh = RefreshToken.for_user(self)
return {
\'refresh\': str(refresh),
\'access\': str(refresh.access_token)
}
学校:
class School(models.Model):
name = models.CharField(max_length=300, verbose_name=\'school name\', )
principal = models.ForeignKey(\"User\", related_name=\"my_schools\", on_delete=CASCADE)
address = models.CharField(max_length=200)
class Type(models.IntegerChoices):
PUBLIC = 1, \"Public\"
PRIVATE = 2, \"Private\"
type = models.PositiveSmallIntegerField(choices=Type.choices, default=Type.PUBLIC)
class Level(models.IntegerChoices):
NATIONAL = 1, \"National\"
EXTRACOUNTY = 2, \"Extra County\"
COUNTY = 3, \"County\"
SUBCOUNTY = 4, \"Subcounty\"
level = models.PositiveSmallIntegerField(choices=Level.choices, default=Level.COUNTY)
def __str__(self):
return self.name
这是注册成员的序列化程序:
class EnrollSchoolMembersSerializer():
class Meta:
model = User
field = (\'email\')
标签: python django django-models django-rest-framework django-serializer