如何在Django rest框架中一键将学生添加到老师的课堂
Posted
技术标签:
【中文标题】如何在Django rest框架中一键将学生添加到老师的课堂【英文标题】:How to add students to class in by teacher in one click in Django rest framework 【发布时间】:2021-11-30 20:28:17 【问题描述】:我有名为 Student 和 Teacher 的模型。老师可以通过get api(学生姓名)查看所有学生。现在的要求是,只需单击学生姓名列表一侧的一个按钮,教师就应该能够将学生添加到他的班级。在这种情况下如何将学生与老师联系起来。因为其他老师也可以将相同的学生添加到其他班级。
class Student(TimeStampAbstractModel):
user = models.OneToOneField(User, related_name="student", on_delete=models.CASCADE)
college_name = models.CharField(max_length=255, default="", blank=True)
address = models.CharField(max_length=255, default="", blank=True)
def __str__(self):
return self.user.name
class Teacher(TimeStampAbstractModel):
user = models.OneToOneField(User, related_name="teacher", on_delete=models.CASCADE)
address = models.CharField(max_length=255, default="", blank=True)
def __str__(self):
return self.user.name
【问题讨论】:
【参考方案1】:我不能完全回答这个问题,只能回答一点。
如果Teacher
可以有多个学校班级,那么您应该添加第三个班级:
class SchoolClass(models.Model) # or TimeStampAbstractModel ?
teacher = models.ForeignKey(Teacher, on_delete=models.CASCADE)
students_in_class = models.ManyToManyField(Student)
如果Teacher
只能有一个类,那么您可以添加
students_in_class = models.ManyToManyField(Student)
到教师模型。
我建议您首先添加适合您应用程序需求的应用程序,然后进入 Django 管理页面并添加教师和一些学生并将它们链接在一起,您将了解 ManyToManyFields
的工作原理.
【讨论】:
以上是关于如何在Django rest框架中一键将学生添加到老师的课堂的主要内容,如果未能解决你的问题,请参考以下文章
将不在模型中的字段添加到 Django REST 框架中的序列化程序
使用 React 和 Django Rest 框架的多步表单处理
你如何在 django rest 框架中实现 CSRF 令牌?