Как сделать табличный ввод данных?

У меня есть описанные модели журнала, и мне нужно сделать ввод данных, но я не знаю как. Вот модели:

class Group(models.Model):
    name = models.CharField(max_length=10)
    curator = models.ForeignKey(User, blank=True, on_delete=models.CASCADE)

class StudentGroup(models.Model):
    group = models.ForeignKey(Group, on_delete=models.CASCADE)
    student = models.ForeignKey(User, on_delete=models.CASCADE)

    @classmethod
    def students_by_group(cls, group):
        students = cls.objects.all().filter(group=group)
        return students


class GradeBook(models.Model):
    group = models.ForeignKey(Group, on_delete=models.CASCADE)

    def add_new_column(self, date):
        new_column = BookColumn(gradebook=self, date=date)
        new_column.save()


class StudentGroupLesson(models.Model):
    lesson = models.ForeignKey(Lesson, blank=False, on_delete=models.CASCADE)
    student_group = models.ForeignKey(Group, blank=False, on_delete=models.CASCADE)
    gradebook = models.ForeignKey(GradeBook, blank=True, null=True, on_delete=models.CASCADE)


@receiver(pre_save, sender=StudentGroupLesson)
def create_gradebook(sender, instance, **kwargs):
    new_gradebook = GradeBook(group=instance.student_group)
    new_gradebook.save()
    instance.gradebook = new_gradebook


class BookColumn(models.Model):
    date = models.DateField(blank=False)
    gradebook = models.ForeignKey(GradeBook, blank=True, on_delete=models.CASCADE)


class Grade(models.Model):
    date = models.ForeignKey(BookColumn, on_delete=models.CASCADE)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    value = models.CharField(max_length=3, default='')


@receiver(post_save, sender=BookColumn)
def create_grade(sender, instance, created, **kwargs):
    if created:
       gradebook = instance.gradebook
       students = StudentGroup.students_by_group(group=gradebook.group)
       for student in students:
           new_grade = Grade(date=instance, user=User.objects.get(id=student.id))
           new_grade.save()

У меня данные должны вводиться с этих моделей. Первый столбец имена, первай строка даты, и далее не их пересечениях присвоить оценку конкретной дате и пользователю.

введите сюда описание изображения


Ответы (0 шт):