在Django模型中创建外键

Zac*_*ach 5 python django django-models

我的学生模型中有以下内容.我想跟踪给每个学生的每个点的日期.这个想法是这样我不仅可以看到每个学生有多少分,而且还可以看到每个学分的日期.在未来,我希望看到学生积分的趋势.我该怎么办呢?我应该在另一个班级使用外键吗?我是新手,所以感谢阅读.

class Student(models.Model): 
  CLASS_CHOICES = ( 
    (u'Yoga','Yoga'), 
    (u'Spanish', 'Spanish'), 
    (u'French', 'French'), 
    (u'Dance', 'Dance'), 
  ) 
  name = models.CharField(max_length=30) 
  points = models.IntegerField(max_length=4) 
  classname = models.CharField("Class Name",max_length=20, choices=CLASS_CHOICES) 
Run Code Online (Sandbox Code Playgroud)

ala*_*lan 11

我想你可能想把这两个课分开(我称之为'课程',以免与课堂上的Python思想发生冲突),以及跟踪获得的分数(即分数).

class Student(models.Model): 
    name = models.CharField(max_length=30)
    courses = models.ManyToManyField('Course')

class Course(models.Model):
    # Yoga, Spanish, French, etc.
    name = models.CharField(max_length=30)

class Score(models.Model):
    date = models.DateTimeField(auto_now_add=True)
    points = models.IntegerField(max_length=4)
    course = models.ForeignKey('Course', on_delete=models.CASCADE)
    student = models.ForeignKey('Student', on_delete=models.CASCADE)
Run Code Online (Sandbox Code Playgroud)

然后,学生可以参加许多课程,并获得每门课程的一系列分数(即考试分数?).