【问题标题】:How to add students to class in by teacher in one click in Django rest framework如何在Django rest框架中一键将学生添加到老师的课堂
【发布时间】: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

【问题讨论】:

    标签: django api django-models django-rest-framework m2m


    【解决方案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 的工作原理.

    【讨论】: