Вот что у меня получилось, если кому нужно. Я все делал не правильно с самого начала, и когда понял все пошло нормально.
class GradeBook(models.Model):
group_id = models.ForeignKey(StudentsGroup, on_delete=models.CASCADE)
lesson = models.ForeignKey(Lesson, on_delete=models.CASCADE)
date = models.DateField(blank=False)
class Grade(models.Model):
value = models.CharField(max_length=3, blank=True, default='')
student_id = models.ForeignKey(Profile, blank=False, on_delete=models.CASCADE)
gradebook = models.ForeignKey(GradeBook, on_delete=models.CASCADE, blank=False)
@receiver(post_save, sender=GradeBook)
def create_grades(sender, instance, created, **kwargs):
if created:
get_students = Profile.objects.all().filter(student_group=instance.group_id)
for student in get_students:
new_grade = Grade(student_id=Profile.objects.get(id=student.id), gradebook=instance)
new_grade.save()